STRAW Working GroupInternet Engineering Task Force (IETF) H. KaplanInternet-DraftRequest for Comments: 7092 OracleIntended status:Category: Informational V. PascualExpires: April 21, 2014ISSN: 2070-1721 QuobisOctober 18,December 2013 A Taxonomy of Session Initiation Protocol (SIP) Back-to-Back User Agentsdraft-ietf-straw-b2bua-taxonomy-03Abstract In many SIP deployments, SIP entities exist in the SIP signaling path between the originating and final terminating endpoints, which go beyond the definition of a SIPProxy,proxy, performing functions not defined instandards-trackStandards Track RFCs. The only term for such devices provided in[RFC3261]RFC 3261 is for a Back-to-Back User Agent (B2BUA), which is defined as the logical concatenation of a SIP User Agent Server (UAS) and User Agent Client (UAC). There are numerous types of SIPBack-to-Back User Agents,B2BUAs performing different roles in differentways. For Example IP-PBXs,ways; for example, IP Private Branch Exchanges (IPBXs), Session Border Controllers(SBC) [RFC5853](SBCs), and Application Servers(AS).(ASs). This document identifies several commonBack-to-Back User Agent roles,B2BUA roles in order to provide taxonomy other documents can use and reference. Status of This Memo ThisInternet-Draftdocument issubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsnot an Internet Standards Track specification; it is published for informational purposes. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are amaximumcandidate for any level of Internet Standard; see Section 2 of RFC 5741. Information about the current status ofsix monthsthis document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 21, 2014.http://www.rfc-editor.org/info/rfc7092. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. B2BUA Role Types . . . . . . . . . . . . . . . . . . . . . . 3 3.1.Signaling-planeSignaling Plane B2BUA Roles . . . . . . . . . . . . . . . 3 3.1.1. Proxy-B2BUA . . . . . . . . . . . . . . . . . . . . .43 3.1.2. Signaling-only . . . . . . . . . . . . . . . . . . . 4 3.1.3. SDP-Modifying Signaling-only . . . . . . . . . . . . 4 3.2.Media-planeSignaling/Media Plane B2BUA Roles . . . . . . . . . . . .. . . . . 54 3.2.1.Media-relayMedia Relay . . . . . . . . . . . . . . . . . . . . . 5 3.2.2.Media-awareMedia Aware . . . . . . . . . . . . . . . . . . . . . 5 3.2.3.Media-terminationMedia Termination . . . . . . . . . . . . . . . . . . 6 4. Mapping SIP Device Types to B2BUA Roles . . . . . . . . . . . 6 4.1. SIP PBXs and Softswitches . . . . . . . . . . . . . . . . 6 4.2. Application Servers . . . . . . . . . . . . . . . . . . . 6 4.3. Session Border Controllers . . . . . . . . . . . . . . . 6 4.4. Transcoders . . . . . . . . . . . . . . . . . . . . . . . 7 4.5. Conference Servers . . . . . . . . . . . . . . . . . . . 7 4.6. P-CSCF and IBCF Functions . . . . . . . . . . . . . . . .78 4.7. S-CSCF Function . . . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 6.IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7.Informative References . . . . . . . . . . . . . . . . . . . 8Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 91. Introduction In current SIP deployments, there are numerous forms of Back-to-Back User Agents (B2BUAs), operating at various levels oftransparency,transparency and for various purposes,andwith widely varying behavior from a SIPprotocolperspective. Some act as pure SIPProxiesproxies and only change to the role of B2BUA in order to generate BYEs to terminate dead sessions. Some are full User Agent stacks with only high-level event and application logic binding the User Agent Server (UAS) and User Agent Client (UAC) sides. Some B2BUAs operate only in the SIP signaling plane, while others participate in the media plane as well. As more SIP domainsgetare deployed andinterconnectedinterconnected, the probability of a single SIP session crossing multipleB2BUA'sB2BUAs at both the signaling and media planes increases significantly. This document provides a taxonomy of several common B2BUAroles,roles so that other documents may refer to them using their given names withoutre-definingredefining them in each document. 2. Terminology The following terms are defined in [RFC3261], Section 6. B2BUA: a SIP Back-to-Back User Agent, which is the logical combination of a User Agent Server (UAS) and User Agent Client (UAC). UAS: a SIP User Agent Server. UAC: a SIP User Agent Client. 3. B2BUA Role Types Within the context of this document, the classification refers to a B2BUA role, not a particular system type. A given system type may change its role in the middle of a SIP session, forexampleexample, when aStateful Proxy tears-downstateful proxy tears down a session by generatingBYEs;BYEs orfor examplewhen an SBC [RFC5853] performs transcoding or REFER termination. Furthermore, this document defines'B2BUA'"B2BUA" following the definition provided in [RFC3261], which is the logical concatenation of a UAS and UAC. A typical centralized conference server, for example, is not a B2BUA because it is the target UAS of multiple UACs, whereby the UACs individually and independently initiate separate SIP sessions to the central conference server. Likewise, a third-party call controltranscodertranscoder, as described insectionSection 3.1 of[RFC5369][RFC5369], is not aB2BUA;B2BUA, whereas an inline (conference bridge) transcoder based on [RFC5370] is a B2BUA. 3.1.Signaling-planeSignaling Plane B2BUA Roles ASignaling-planesignaling plane B2BUA is one that operates only on the SIP message protocollayer,layer and only with SIP messages and headers but not with the media itself in any way. This implies that it does not modify the Session Description Protocol (SDP) bodies, although it may save them and/or operate on other MIME body types. This category is further subdivided into specific roles as described in this section. It should be noted that there is a large variety of modifications made by"Signaling-plane B2BUA's""signaling plane B2BUAs". 3.1.1. Proxy-B2BUA A Proxy-B2BUA is one that appears, from a SIPprotocolperspective, to be a SIPProxyproxy based on [RFC3261] and its extensions, except that it maintains a sufficient dialog state to generate in-dialog SIP messages on its own and does so in specific cases. The most common example of this is a SIPProxy whichproxy that can generate BYE requests totear-downtear down a dead session. A Proxy-B2BUA does not modify the received header fields such astheTo, From, or Contact, and it only modifies the Via and Record-Route header fields following the rules in [RFC3261] and its extensions. If a Proxy-B2BUA can generate in-dialog messages, then it will also need to modify the CSeqheader,header after it has generated its own. A Proxy-B2BUA neither modifies nor inspects MIME bodies (including SDP), does not have any awareness of media, will forward anyMethodmethod type, etc. 3.1.2. Signaling-only A Signaling-only B2BUA is one that operates at the SIP layer but in ways beyond those of [RFC3261]Proxies,proxies, even for normally forwarded requests. For example, such a B2BUA might replace the Contact URI, modify or remove all Via and Record-Route headers, modify the To and From header fields, modify or inspect specific MIME bodies, etc. No SIP header field is guaranteed to be copied from the received request on the UAS side to the generated request on the UAC side. An example of such a B2BUA would be some form of an Application Server and a PBX, such as a serverwhichthat locally processes REFER requests and generates new INVITEs on behalf of the REFER's target. Another example would beana privacy service proxy [RFC3323]Privacy Service Proxyperforming the 'header' privacy function. 3.1.3. SDP-Modifying Signaling-only An SDP-Modifying Signaling-only B2BUA is one that operates in the signaling plane only and is not in the media path, but it does modify SDP bodies and is thus aware of and understands SDP syntax and semantics.SomeIn some cases, some Application Servers and PBXs act in thisrole in some cases,role, forexampleexample, to remove certain codec choices or merge two media endpoints into one SDP offer. These B2BUAs don't do anything that changes the path that the media takes (in particular, they don't insert themselves on the media path), but they may make SDP changes that affect what is sent on the media plane. 3.2.Media-planeSignaling/Media Plane B2BUA Roles AMedia-planesignaling/media plane B2BUA is one that operates at both the SIP and mediaplanes,planes and not only on SIP messages but also on SDP and potentiallyReal- timethe Real-time Transport Protocol (RTP) /Real Timethe Real-Time Control Protocol (RTCP) [RFC3550] or other media. Such a B2BUA may or may not replace the Contact URI, modify or remove all Via and Record-Route headers, modify the To and From header fields, etc. No SIP header field is guaranteed to be copied from the received request on the UAS side to the generated request on the UAC side, and SDP will also be modified. An example of such a B2BUA would be a Session Border Controller (SBC) performing the functions defined in [RFC5853], a B2BUA transcoder as defined in [RFC5370], a rich-ringtone Application Server, or a recording system. Another example would beana privacy service proxy [RFC3323]Privacy Service Proxyperforming the 'session' privacy function. Note that aMedia-planesignaling/media plane B2BUA need not be instantiated in a single physical system, but it may be decomposed into separate signaling and media functions. TheMedia-planesignaling/media plane B2BUA category is further subdivided into specific roles as described in this section. 3.2.1.Media-relayMedia Relay A B2BUAwhichthat performs a media-relay role is one that terminates the media plane at the IP and transport (UDP/TCP) layers on its UAS and UAC sides, but neither modifies nor restricts which forms of payload are carried within the packets. Rather, the payload is transparently copied from one side to the other. Such a role mayonly support UDPor may not support onlyTCP or both,UDP, only TCP, both UDP and TCP, as well as other transporttypes or not. Such a roletypes. It may also involve policing the IP packets to fit within a bandwidthlimit,limit or converting from IPv4 toIPV6IPv6, orvice-versa.vice versa. This is typically similar toaNAT behavior, except a NAT operating in both directions on both the source and destination information; it is often found as the default behavior in SBCs. 3.2.2.Media-awareMedia Aware A B2BUAwhichthat performs a media-aware role is similar to amedia-media relay except that it inspects and potentially modifies the payload carried in UDP or TCP (as it could be[RFC3550]RTP orRTCP)RTCP [RFC3550]), but it does not at a codec or higher layer. An example of such a role isana Secure Real-time Transport Protocol (SRTP) [RFC3711]SRTPterminator, which does not need to care about the RTP payload but does care about the RTP header;oror, a devicewhichthat monitors RTCP for QoS information;oror, a devicewhich multiplexes/de- multiplexesthat multiplexes/demultiplexes RTP and RTCP packets on the same 5-tuple. 3.2.3.Media-terminationMedia Termination A B2BUAwhichthat performs a media-termination role is one that operates at the media payload layer, such as RTP/RTCP codec orMSRPthe Message Session Relay Protocol (MSRP) message layer and higher. Such a role may only terminate/generate specific RTP media, such as[RFC4733] DTMF packets,dual-tone multi-frequency (DTMF) packets [RFC4733], or it may convert between mediacodecs,codecs or act as aBack-To-Back [RFC4975]Back-to-Back MSRP [RFC4975] agent. This is the role performed by transcoders,[RFC5366] basedconferenceservers,servers based on [RFC5366], etc. 4. Mapping SIP Device Types to B2BUA Roles Although the B2BUA roles defined previously do not define system types, as discussed insectionSection 3, some discussion of what common system types perform which defined roles may be appropriate. This section provides such a 'mapping' for generalcases,cases to aid in understanding of the roles. 4.1. SIP PBXs and Softswitches SIP-enabled Private BrancheXchangesExchanges (SIP PBXs) andSoftswitchessoftswitches are market categoryterms,terms and are not specified in any standard. Ingeneralgeneral, they can perform every role described in this document at any giventime,time based on their architecture or local policy. Some are based on architectures that make them the equivalent of a SIP UAS and UAC connected with a logicalPRIPrimary Rate Interface (PRI) loopback; others are built as a SIPProxyproxy core with optional modules to "do more". 4.2. Application Servers Application Servers are a broad marketingterm,term and are not specified in any standard in general, although3GPPthe Third Generation Partnership Project (3GPP) and other organizations specify some specific Application Server functions and behaviors. Common examples of ApplicationServersServer functions are message-waitingindication (MWI), find-me-follow-meindicators (MWIs), Find Me/Follow Me services, privacy services,call-call center Automatic Call Distributor (ACD) services, call screening, and Voice Call Continuity (VCC) services. Some only operate in the signaling plane in either Proxy-B2BUA orSignaling- onlySignaling-only B2BUA roles; others operate as full Media-termination B2BUAs, such as when providing Interactive Voice Recognition (IVR),rich-ringtonerich ringtones, or integrated voicemail services. 4.3. Session Border Controllers Session Border Controllers (SBCs) are a market categoryterm,term and are not specified in any standard. Some of the common functions performed by SBCs are described in [RFC5853], but ingeneralgeneral, they can perform every role described in this document at any giventime,time based on local policy. By default, most SBCs are either Media-relay orMedia- aware B2BUAs,Media-aware B2BUAs and replace the ContactURI,URI; remove the Via andRecord- Route headers,Record-Route headers; modifytheCall-ID, To, From, and various otherheaders,headers; and modify SDP. Some SBCs remove all headers, all bodies, and reject allMethodmethod types unless explicitly allowed by local policy; other SBCs pass all such elements through unless explicitly forbidden by local policy. 4.4. Transcoders Transcoders perform the function of transcoding one audio or video media codec type to another, such as G.711 to G.729. Assuchsuch, they perform the Media-termination role, although they may only terminate media in specific cases of codec mismatch between the two ends. Although [RFC5369] and [RFC5370] define two types of SIPTranscoders,transcoders, inpracticepractice, a popular variant of the[RFC5370]inline conference bridge model [RFC5370] is to behave as a SIP B2BUA without using theresource- list mechanism,resource-list mechanism but rather simplyrouterouting a normal INVITE request through a B2BUA with a built-in transcoder. SIPTranscoderstranscoder architectures are based on everything from SIP mediaservers, to SBCs,servers and SBCs to looped-back Time Division Multiplexing (TDM) gateways, and thus run the gamut from replacing only specific headers/bodies and SDP content needed to perform theirfunction,function to replacing almost all SIP headers and SDP content. Some transcoders save and remove SDP offers in INVITEs from the UAC, and wait for an offer in the response from the UAS, similar to a3PCCThird Party Call Control (3PCC) model; others just insert additional codecs in SDP offers and only transcode if the inserted codec(s)areis selected in the answer. 4.5. Conference Servers Ingeneral Conference Serversgeneral, conference servers do not fall under the term'B2BUA'"B2BUA" as defined by this document, since typically they involve multiple SIP UACs initiating independent SIP sessions to the single conferenceserverUAS. However, a conference server supporting [RFC5366], whereby the received INVITE triggers the conference focus UAS to initiate multiple INVITEs as a UAC, would be in a Media-termination B2BUA role when performing that function. 4.6. P-CSCF and IBCF Functions The Proxy-Call Session Control Function (P-CSCF) and the Interconnection Border Control Function (IBCF) arefunctionsdefined by 3GPP [IMS] standards, and when coupled with theIMS media-planeIP Multimedia Subsystems (IMS) media plane gateways (IMS Access GatewayIMS-AGW,(AGW), Transition GatewayTrGW, etc.)(TrGW), etc.), they typically form a logical Media-relay or Media-aware B2BUA role. 4.7. S-CSCF Function The Serving-Call Session Control Function (S-CSCF) isa functiondefined by 3GPP [IMS]standards,standards and typically follows a Proxy-B2BUA role. 5. Security Considerations Security risks are specific to each type of B2BUA, so little can be said in general. Of course, adding extra systems in the communication path creates extra points of attack, reduces or eliminates the ability to performend to endend-to-end encryption, decreases the privacy of SIP communications, and complicates trust models. Thus, every B2BUA design requires particular attention to security analysis. A few general points can be made: 1. The B2BUA processing of SDP and media packets is an impediment to the deployment of end-to-endSRTP,SRTP and reduces the ability to deploy new, stronger forms of SRTP key exchange. 2. The ability for B2BUAs to modify any SIP header field value and body impacts the ability to deploy SIPIdentityidentity and message integrity. 3. The management and configuration mechanisms of B2BUAs are a tempting point ofattack,attack and must be strongly defended. Further security considerations related to the functionality described in this document are addressed in the relevant references. 6.IANA Considerations This document makes no request of IANA. 7.Informative References [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3323] Peterson, J., "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323, November 2002. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004. [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals", RFC 4733, December 2006. [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message Session Relay Protocol (MSRP)", RFC 4975, September 2007. [RFC5366] Camarillo, G. and A. Johnston, "Conference Establishment Using Request-Contained Lists in the Session Initiation Protocol (SIP)", RFC 5366, October 2008. [RFC5369] Camarillo, G., "Framework for Transcoding with the Session Initiation Protocol (SIP)", RFC 5369, October 2008. [RFC5370] Camarillo, G., "The Session Initiation Protocol (SIP) Conference Bridge Transcoding Model", RFC 5370, October 2008. [RFC5853] Hautakorpi, J., Camarillo, G., Penfield, R., Hawrylyshen, A., and M. Bhatia, "Requirements from Session Initiation Protocol (SIP) Session Border Control (SBC) Deployments", RFC 5853, April 2010. [IMS] 3GPP, "IP Multimedia Subsystem (IMS); Stage 2, 3GPP TS 23.228", Version 12.2.0, September 2013. Authors' Addresses Hadriel Kaplan OracleEmail:EMail: hadriel.kaplan@oracle.com Victor Pascual QuobisEmail:EMail: victor.pascual@quobis.com