Back-to-back user agent
A back-to-back user agent (B2BUA) is a logical network element in Session Initiation Protocol (SIP) applications.[1] SIP is a signaling protocol to manage multimedia Voice over Internet Protocol (VoIP) telephone calls. A back-to-back user agent operates between both end points of a phone call or communications session and divides the communication channel into two call legs and mediates all SIP signaling between both ends of the call, from call establishment to termination. As all control messages for each call flow through the B2BUA, a service provider may implement value-added features available during the call.
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 signaling between end points back-to-back. A B2BUA maintains 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 may provide 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 implemented in media gateways to also bridge the media streams for full control over the session.
A signaling gateway, part of a session border controller, is an example of a B2BUA.
Call flow diagram
B2BUA Ann Server Bob | | | | | INVITE F1 | | | |------------------->| | | | 100 Trying F2 | | | |<-------------------| | INVITE F3 | | | |------------------->| | | | 100 Trying F4 | | | |<-------------------| | | | 180 Ringing F5 | | 180 Ringing F6 | |<-------------------| |<-------------------| | | | | | 200 OK F7 | | 200 OK F8 | |<-------------------| |<-------------------| | ACK F9 | | ACK F10 | |------------------->| |------------------->| | | | RTP Media | | RTP Media | |<==================>| |<==================>| | BYE F11 | | | |------------------->| | BYE F12 | | 200 OK F13 | |------------------->| |<-------------------| | 200 OK F14 | | | |<-------------------| | | | |