A back-to-back user agent (B2BUA) is a logical network element in SIP applications. It is a type of SIP UA that receives a SIP request, then reformulates the request, and sends it out as a new request.
Unlike a proxy server, it maintains dialog state and must participate in all requests sent on the dialogs it has established. A B2BUA breaks the end-to-end nature of SIP.
A B2BUA agent operates between two endpoints of a phone call and divides the communication channel into two call legs. B2BUA is a concatenation of UAC and UAS. It participates in all SIP signalling between both ends of the call, it has established. As B2BUA available in a dialog service provider may implement some value-added features.
In the originating call leg, the B2BUA acts as a user agent server (UAS) and processes the request as a user agent client (UAC) to the destination end, handling the signalling between end points back-to-back.
A B2BUA maintains the complete state for the calls it handles. Each side of a B2BUA operates as a standard SIP network element as specified in RFC 3261.
A B2BUA provides the following functions −
Call management (billing, automatic call disconnection, call transfer, etc.)
Network interworking (perhaps with protocol adaptation)
Hiding of network internals (private addresses, network topology, etc.)
Often, B2BUAs are also implemented in media gateways to bridge the media streams for full control over the session.
Many private branch exchange (PBX) enterprise telephone systems incorporate B2BUA logic.
Some firewalls have built in with ALG (Application Layer Gateway) functionality, which allows a firewall to authorize SIP and media traffic while still maintaining a high level of security.
Another common type of B2BUA is known as a Session Border Controller (SBC).