I've been reading some stuff SIP related, and I'm confused, about what is a SIP back-to-back user agent(B2BUA) and a 'normal' user agent?
Can anyone explain the differences?
From what I read I can't differentiate a B2BUA from a UA... For me a UA acts as a UAS (User Agent Server) when needs to answer a request, and as a UAC (User Agent Client) when needs to send a request..
But I can't understand how different a B2BUA is..
Sorry if this doesnt make sense, but I'm a little bit confused
The RFCs don't define what B2BUAs can or can't do, so my answer's a bit wooly, of necessity.
A B2BUA is anything is not a proxy but that does have calls flowing through it. For instance, you could use a B2BUA as a gateway between two SIP networks.
Hence the name: some connection running through the B2BUA results in a SIP call on one side (where the B2BUA acts as a UAS) and another SIP call on the other side (where the B2BUA acts as a UAC).
You may find an interesting article explaining B2BUAs here:
https://andrewjprokop.wordpress.com/2013/12/27/the-back-to-back-user-agent-b2bua/
In a few words, a B2BUA is a SIP entity which can "split" a call into two call legs: terminating a call leg on one side and creating a new one on the other side. Those two call legs could be unaware of one another, thus the B2BUA acts as a demarcation point. The term B2BUA also refers to a SIP entity's capability of manipulating SIP packets in terms of SIP headers and SDP body.
A B2BUA is a network element used in SIP applications. Its behavior depends on its role in a SIP signalling flow. It behaves as a UAS to the originator of the request, in the meantime, it behaves as a UAC to the destination of the request (from different legs) in a SIP signalling.
Its role is not defined as a stateless proxy, it can manipulate, change, delete or add header fields to SIP messages.
Alice ----------------> B2BUA -------------------> Bob
Alice <---------------- B2BUA <------------------- Bob
Considering a SIP signalling as above, Alice inviting Bob, all the dialog and transaction identifiers between Alice-B2BUA and B2BUA-Bob will be different. In the first INVITE request, B2BUA will appear as a UAS to Alice and as a UAC to Bob.