MMUSIC WGInternet Engineering Task Force (IETF) M. Garcia-MartinInternet-DraftRequest for Comments: 7195 EricssonIntended status:Category: Standards Track S. VeikkolainenExpires: August 15, 2014ISSN: 2070-1721 NokiaFebruary 11,April 2014 Session Description Protocol (SDP) ExtensionForfor Setting Audio and Video Media StreamsOverover Circuit-Switched BearersIn Thein the Public Switched Telephone Network (PSTN)draft-ietf-mmusic-sdp-cs-23Abstract This memo describes use cases, requirements, and protocol extensions for using the Session Description Protocol (SDP)Offer/Answeroffer/answer model for establishing audio and video media streams over circuit-switched bearers in the Public Switched Telephone Network (PSTN). Status of This Memo ThisInternet-Draftissubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsan Internet Standards Track document. 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 fora maximumpublication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in 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 August 15, 2014.http://www.rfc-editor.org/info/rfc7195. Copyright Notice Copyright (c) 2014 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. . . . . . . . . . . . . . . . . . . . . . . . 3....................................................3 2. Conventions Used in This Document. . . . . . . . . . . . . . 4...............................4 3. Requirements. . . . . . . . . . . . . . . . . . . . . . . . 5....................................................5 4. Overview of Operation. . . . . . . . . . . . . . . . . . . . 5...........................................5 4.1. Example Call Flow. . . . . . . . . . . . . . . . . . . . 6..........................................6 5. Protocol Description. . . . . . . . . . . . . . . . . . . . 7............................................7 5.1. Level of Compliance. . . . . . . . . . . . . . . . . . . 7........................................7 5.2. Extensions to SDP. . . . . . . . . . . . . . . . . . . . 7..........................................7 5.2.1. Connection Data. . . . . . . . . . . . . . . . . . . 7.....................................7 5.2.2. Media Descriptions. . . . . . . . . . . . . . . . . 9..................................9 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP10....................................10 5.2.3.1. The "cs-correlation"attribute . . . . . . . . . 11Attribute ............11 5.2.3.2.Caller-IDCaller ID Correlation Mechanism. . . . . . . . . 12...........12 5.2.3.3. User-User Information Element Correlation Mechanism. . . . . . . . . . . . . . . . . . . . 13.....................13 5.2.3.4. DTMF Correlation Mechanism. . . . . . . . . . . 14................14 5.2.3.5.The external correlation mechanism . . . . . . . 15External Correlation Mechanism ............15 5.2.3.6. Extensions tocorrelation mechanisms . . . . . . 16Correlation Mechanisms ......16 5.3. Negotiating thecorrelation mechanisms . . . . . . . . . 16Correlation Mechanisms ....................17 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup. . . . . . . . . . . . . . . . . . . . 17......................17 5.3.2. Populating thecs-correlation attribute . . . . . . . 17"cs-correlation" Attribute ..........18 5.3.3. Considerationson correlations . . . . . . . . . . . 18for Correlations ....................18 5.4. Considerations for Usage of Existing SDP. . . . . . . . 19..................19 5.4.1. Originator of the Session. . . . . . . . . . . . . . 19..........................19 5.4.2. Contactinformation . . . . . . . . . . . . . . . . . 19Information ................................20 5.5. Considerations for Usage of Third Party Call Control (3PCC). . . . . . . . . . . . . . . . . . . . . . . . . 20............................................20 5.6. Offer/Answermode extensions . . . . . . . . . . . . . . 20Mode Extensions ..............................20 5.6.1. Generating the Initial Offer. . . . . . . . . . . . 20.......................21 5.6.2. Generating the Answer. . . . . . . . . . . . . . . . 23..............................23 5.6.3. OffererprocessingProcessing the Answer. . . . . . . . . . . . 25......................26 5.6.4. Modifying thesession . . . . . . . . . . . . . . . . 27Session ..............................27 5.7. Formal Syntax. . . . . . . . . . . . . . . . . . . . . . 28.............................................28 6. Examples. . . . . . . . . . . . . . . . . . . . . . . . . . 29.......................................................30 6.1. Single PSTNaudio stream . . . . . . . . . . . . . . . . 30Audio Stream ..................................30 6.2. Advanced SDPexample:Example: Circuit-Switched Audio and Video Streams. . . . . . . . . . . . . . . . . . . . . . 32.............................................32 7. Security Considerations. . . . . . . . . . . . . . . . . . . 33........................................33 8. IANA Considerations. . . . . . . . . . . . . . . . . . . . . 34............................................35 8.1. Registration ofnew cs-correlationthe New "cs-correlation" SDPattribute . . . . 34Attribute ....35 8.2. Registration of anewNew "nettype"value . . . . . . . . . . 35Value .....................36 8.3. Registration ofnewa New "addrtype"value . . . . . . . . . . 35Value ....................36 8.4. Registration of anewNew "proto"value . . . . . . . . . . . 35Value .......................36 9. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . 36................................................37 10. References. . . . . . . . . . . . . . . . . . . . . . . . . 36....................................................37 10.1. Normative References. . . . . . . . . . . . . . . . . . 36.....................................37 10.2. Informative References. . . . . . . . . . . . . . . . . 37 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38...................................38 1. Introduction The Session Description Protocol (SDP) [RFC4566] is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. SDP is most commonly used for describing media streams that are transported over the Real-Time Transport Protocol (RTP) [RFC3550], using the profiles for audio and video media defined inRTP"RTP Profile for Audio and Video Conferences with MinimalControlControl" [RFC3551]. However, SDP can be used to describeothermedia transport protocols other than RTP. Previous work includes SDP conventions for describing ATM bearer connections [RFC3108] and the Message Session Relay Protocol [RFC4975]. SDP is commonly carried in Session Initiation Protocol (SIP) [RFC3261] messages in order to agree on a common media description among the endpoints.An"An Offer/Answer Model with the Session Description Protocol(SDP)(SDP)" [RFC3264] defines a framework by which two endpoints can exchange SDP media descriptions and come to an agreement as to which media streams should be used, along with themedia relatedmedia-related parameters. In somescenariosscenarios, it might be desirable to establish the media stream over a circuit-switched bearer connection even if the signaling for the session is carried over an IP bearer. An example of such a scenario is illustrated with two mobile devices capable of both circuit-switched and packet-switched communication over a low- bandwidth radio bearer. The radio bearer may not be suitable for carrying real-time audio or video media, and using a circuit-switched bearer would offer a better perceived quality of service. So, according to this scenario, SDP and itshigher layerhigher-layer session control protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are used over regular IP connectivity, while the audio or video is received through the classical circuit-switched bearer. This document addresses only the use of circuit-switched bearers in the PSTN, not a generic circuit-switched network. The mechanisms presented below require a call signaling protocol of the PSTN to be used (such as ITU-T Q.931 [ITU.Q931.1998] or 3GPP TS 24.008 [TS.24.008]). Setting up a signaling relationship in the IP domain instead of just setting up a circuit-switched calloffersalso offers the possibility ofnegotiatingnegotiating, in the samesessionsession, otherIP basedIP-based media that is not sensitive to jitter and delay, for example, text messaging or presence information. At a later point intimetime, the mobile device might move to an area where a high-bandwidth packet-switched bearer, forexampleexample, a Wireless Local Area Network (WLAN) connection, is available. At thispointpoint, the mobile device may perform a handover and move the audio or video media streams over to the high-speed bearer. This implies a new exchange of SDPOffer/Answeroffer/answer that leads to are-negotiationrenegotiation of the media streams. Other use cases exist. For example, an endpoint might have at its disposal circuit-switched and packet-switched connectivity, but the same audio or video codecs are not feasible for both access networks. For example, the circuit-switched audio or video stream supports narrow-bandwidth codecs, while the packet-switched access allows any other audio or video codec implemented in the endpoint. In this case, it might be beneficial for the endpoint to describe different codecs for each access type and get an agreement on the bearer together with the remote endpoint. There are additional use cases related to third party call control where the session setup time is improved when the circuit-switched bearer in the PSTN is described together with one or more codecs. The rest of the document is structured as follows: Section 2 provides the document conventions, Section 3 introduces the requirements, Section 4 presents an overview of the proposed solutions, and Section 5 contains the protocol description. Section 6 providesan example of descriptionsexamples of circuit-switched audio or video streams in SDP.SectionSections 7 andSection8 contain the Security and IANA considerations, respectively. 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119] and indicate requirement levels for compliant implementations. 3. Requirements This section presents the general requirements that are specific for the audio or video media streams over circuit-switched bearers. REQ-1: A mechanism for endpoints to negotiate and agree on an audio or video media stream established over a circuit-switched bearer MUST be available. REQ-2: The mechanism MUST allow the endpoints to combine circuit- switched audio or video media streams with other complementary media streams, for example, text messaging. REQ-3: The mechanism MUST allow the endpoint to negotiate the direction of the circuit-switched bearer, i.e., which endpoint is active when initiating the circuit-switched bearer. REQ-4: The mechanism MUST be independent of the type of the circuit- switched access (e.g., Integrated Services Digital Network (ISDN), Global System for Mobile Communication (GSM), etc.) REQ-5: There MUST be a mechanism that helps an endpoint to correlate an incoming circuit-switched bearer with the one negotiated in SDP, as opposed to another incoming call that is not related to that. In case correlation by programmatic means is not possible, correlation may also be performed by the human user. REQ-6: It MUST be possible for endpoints to advertise different lists of audio or video codecs in the circuit-switched audio or video stream from those used in a packet-switched audio or video stream. REQ-7: It MUST be possible for endpoints to not advertise the list of available codecs for circuit-switched audio or video streams. 4. Overview of Operation The mechanism defined in this memo extends SDP [RFC4566] and allows describing an audio or video media stream established over acircuit-switchedcircuit- switched bearer. A new network type ("PSTN") and a new protocol type ("PSTN") are defined for the "c=" and "m=" lines to be able to describe a media stream over a circuit-switched bearer. These SDP extensions are described in Section 5.2. Since circuit-switched bearers are connection-oriented media streams, the mechanismre-usesreuses the connection-oriented extensions defined in RFC 4145 [RFC4145] to negotiate the active and passive sides of a connection setup. This is further described in Section 5.3.1. 4.1. Example Call Flow Consider the example presented in Figure 1. In this example, Endpoint A is located in an environment where it has access to both IP and circuit-switched bearers for communicating with other endpoints. Endpoint A decides that the circuit-switched bearer offers a better perceived quality of service forvoice,voice and issues an SDPOfferoffer containing the description of an audio media stream over a circuit-switched bearer. Endpoint A Endpoint B | (1) SDPOfferoffer (PSTN audio) | |----------------------------------->| | | | (2) SDPAnsweranswer (PSTN audio) | |<-----------------------------------| | | | PSTN call setup | |<-----------------------------------| | | | | |<===== media over PSTN bearer =====>| | | Figure 1: Example Flow Endpoint B receives the SDP offer and determines that it is located in an environment where theIP basedIP-based bearer is not suitable for real- time audio media. However, Endpoint B also has a PSTNcircuit-switchedcircuit- switched bearer available for audio. Endpoint B generates an SDP answer containing a description of the audio media stream over acircuit- switchedcircuit-switched bearer. During theoffer-answer exchangeoffer/answer exchange, Endpoints A and B also agree upon the direction in which the circuit-switched bearer should be established. In this example, Endpoint B becomes the activeparty,party; in other words, it establishes the circuit-switched call to the other endpoint. TheOffer/Answeroffer/answer exchange contains identifiers or references that can be used on the circuit-switched network for addressing the other endpoint, as well as information that is used to determine that the incoming circuit-switched bearer establishment is related to the ongoing session between the two endpoints. Endpoint B establishes a circuit-switched bearer towards Endpoint A using whatever mechanisms are defined for the network type in question. When receiving the incoming circuit-switched connection attempt, Endpoint A is able to determine that the attempt is related to the session it is just establishing with B. Endpoint A accepts the circuit-switched connection; the circuit- switched bearer setup is completed. The two endpoints can now use the circuit-switched connection for two-way audio media. If, for some reason, Endpoint B would like to reject the offered stream, it would set the port number of the specific stream to zero, as specified inRFC3264RFC 3264 [RFC3264]. Also, if B does not understand some of the SDP attributes specified in this document, it would ignore them, as specified inRFC4566RFC 4566 [RFC4566]. 5. Protocol Description 5.1. Level of Compliance Implementationsaccording to thisthat are compliant with this specification MUST implement the SDP extensions described in Section5.2,5.2 and MUST implement the considerations discussed inSectionSections 5.3,Section 5.45.4, andSection5.6. 5.2. Extensions to SDP This section provides the syntax and semantics of the extensions required for providing a description of audio or video media streams over circuit-switched bearers in SDP. 5.2.1. Connection Data According to SDP [RFC4566], the connection data line in SDP has the following syntax: c=<nettype> <addrtype> <connection-address> where <nettype> indicates the network type, <addrtype> indicates the address type, andthe<connection-address> is the connection address, which is dependent on the address type. At the moment, the only network type defined is "IN", which indicates Internet network type. The address types "IP4" and "IP6" indicate the type of IP addresses. This memo defines a new network type for describing a circuit- switched bearer network type in the PSTN. The mnemonic "PSTN" is used for this network type. For the address type, we initiallyconsiderconsidered the possibility of describing E.164 telephone numbers. We define a new "E164" address type to be used within the context of a "PSTN" network type. The "E164" address type indicates that the connection address contains an E.164 number represented according to the ITU-T E.164[ITU.E164.1991][ITU.E164.2010] recommendation. It is a common convention that an international E.164 number contains a leading '+' sign. For consistency's sake, we also require the E.164 telephone is prepended with a '+', even if that is not necessary for routing of the call in the PSTN network. There are cases, though, when the endpoint is merely aware of a circuit-switched bearer, without having further information about the E.164 number allocated to it. In thesecasescases, a dash ("-") is used to indicate an unknown connection address. This makes the connection data linebe according to theconsistent with SDP syntax. Please note that the "E164" address type defined in this memo is exclusively defined to be used in conjunction with the "PSTN" network type in accordance with regularOffer/Answeroffer/answer procedures [RFC4566]. Note: RFC 3108 [RFC3108] also defines address type "E.164". This definition is distinct from the one defined by this memo and shall not be used with <nettype> "PSTN". This memo exclusively uses the international representation of E.164 numbers, i.e., those including a country code and, as describedaboveabove, prepended with a '+' sign. Implementations conforming to this specification and using the "E164" address type together with the "PSTN" network type MUST use the 'global-number-digits' construction specified in RFC 3966 [RFC3966] for representing international E.164 numbers. This representation requires the presence of the '+'sign,sign and additionally allows for the presence of one or more 'visual- separator' constructions for easier human readability (see Section 5.7). Note that <connection-address> MUST NOT be omitted when unknown since this would violate basic syntax of SDP [RFC4566]. In such cases, it MUST be set to a "-". The following are examples of the extension to the connection data line: c=PSTN E164 +441134960123 c=PSTN E164 - When the <addrtype> is E164, the connection address is defined as follows: o an international E.164 number (prepended with a '+' sign) o the value "-", signifying that the address is unknown o any other value resulting from the production rule of connection- address inRFC4566RFC 4566 [RFC4566], but in all cases any value encountered will be ignored. 5.2.2. Media Descriptions According to SDP [RFC4566], the media description line in SDP has the following syntax: m=<media> <port> <proto> <fmt> ... The <media> subfield carries the media type. For establishing an audio bearer, the existing "audio" media type is used. For establishing a video bearer, the existing "video" media type is used. The <port> subfield is the transport port to which the media stream is sent. Circuit-switched access lacks the concept of a portnumber, and thereforenumber; therefore, the <port> subfield does not carry any meaningful value. In order to be compliant with SDP syntax, implementations SHOULD set the <port> subfield to the discard port value "9" and MUST ignore it on reception. According to RFC 3264 [RFC3264], a port number of zero in the offer of a unicast stream indicates that the stream is offered but must not be used. If a port number of zero is present in the answer of a unicast stream, it indicates that the stream is rejected. These rules are still valid when the media line in SDP represents a circuit-switched bearer. The <proto> subfield is the transport protocol. The circuit-switched bearer uses whatever transport protocol it has available. This subfield SHOULD be set to the mnemonic "PSTN" to be syntactically correct with SDP [RFC4566] and to indicate the usage of circuit- switched protocols in the PSTN. The <fmt> subfield is the media format description. In the classical usage of SDP to describe RTP-based media streams, when the <proto> subfield is set to "RTP/AVP" or "RTP/SAVP", the <fmt> subfield contains the payload types as defined in the RTP audio profile [RFC3551]. When "RTP/AVP" is used in the <proto> field, the <fmt> subfield contains the RTP payload type numbers. We use the <fmt> subfield to indicate the list of available codecs over the circuit-switched bearer, byre-usingreusing the conventions and payload type numbers defined forRTP/AVP.RTP / AVP. The RTP audio and video media types, when applied to PSTN circuit-switched bearers, represent merely an audio or video codec. If the endpoint is able to determine the list of available codecs for circuit-switched media streams, it MUST use the corresponding payload type numbers in the <fmt> subfield. In some cases, the endpoint is not able to determine the list of available codecs for circuit-switched media streams. In this case, in order to be syntactically compliant with SDP [RFC4566], the endpoint MUST include a single dash ("-") in the <fmt> subfield. As per RFC 4566 [RFC4566], the media format descriptions are listed in priority order. Examples of media descriptions for circuit-switched audio streams are: m=audio 9 PSTN 3 0 8 m=audio 9 PSTN - Similarly, an example of a media description for circuit-switched video stream is: m=video 9 PSTN 34 m=video 9 PSTN - 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP The endpoints should be able to correlate the circuit-switched bearer with the session negotiated with SDP in order to avoid ringing for an incoming circuit-switched bearer that is related to the session controlled with SDP (and SIP). Several alternatives exist for performing this correlation. This memo provides three mutually non-exclusive correlation mechanisms. Additionally, we define a fourth mechanism where correlation may be performed by external means, typically by the human user, in case using other correlation mechanisms is not possible or does not succeed. Other correlation mechanisms may exist, and their usage will be specified when need arises. All mechanisms share the same principle: some unique information is sent in the SDP and in the circuit-switched signaling protocol. If these pieces of information match, then the circuit-switched bearer is part of the session described in the SDP exchange. Otherwise, there is no guarantee that the circuit-switched bearer is related to such session. The first mechanism is based on the exchange of PSTNcaller-IDCaller ID between the endpoints. Thecaller-IDCaller ID is also available as the Calling PartyIDNumber in the circuit-switched signaling. The second mechanism is based on the inclusion in SDP of a value that is also sent in theUser-to-UserUser-User Information Element that is part of the bearer setup signaling in the PSTN. The third mechanism is based on sending in SDP a string that represents Dual-Tone Multi-Frequency (DTMF) digits that will be later sent right after the circuit-switched bearer is established. The fourth correlation mechanism declares support for cases where correlation is done by external means.TypicallyTypically, this means that the decision is leftforto the human user. This isthe wayhow some current conferencing systems operate: after logging on to the conference, the system calls back to the user's phone number to establish audio communications, and it is up to the human user to accept or reject the incoming call. By declaring explicit support for thismechanismmechanism, endpoints can use it only when such a possibilityexist.exists. Endpoints may opt to implement any combination of the correlation mechanisms specified inSectionSections 5.2.3.2,Section5.2.3.3,Section5.2.3.4, andSection5.2.3.5, includinganthe optionof implementingto implement none at all. 5.2.3.1. The "cs-correlation"attributeAttribute In order to provide support for the correlation mechanisms, we define a new media-level SDP attribute called "cs-correlation". There MUST be at most one "cs-correlation" attribute per media description. This "cs-correlation" attribute MAY contain zero or moresubfields, eithersubfields -- "callerid", "uuie", "dtmf", or "external" to specify additional information required by theCaller-ID, User to User Information,Caller ID, User-User Information Element, DTMF, or external correlation mechanisms, respectively. The list of correlation mechanisms may be extended by otherspecifications,specifications; see Section 5.2.3.6 for more details. The following sections provide more detailed informationofabout these subfields. The values "callerid", "uuie","dtmf""dtmf", and "external" refer to the correlation mechanisms defined inSectionSections 5.2.3.2,Section5.2.3.3,Section 5.2.3.4 and, Section 5.2.3.55.2.3.4, and 5.2.3.5, respectively. The formal Augmented Backus-Naur Format (ABNF) syntax of the "cs-correlation" attribute is presented in Section 5.7. 5.2.3.2.Caller-IDCaller ID Correlation Mechanism TheCaller-IDCaller ID correlationmechanismsmechanism consists of an exchange of thecalling party numberCalling Party Number as an international E.164 number in SDP, followed by the availability of the Calling Party Numberinformation elementInformation Element in the call setup signaling of thecircuit switchedcircuit-switched connection. If both pieces of information match, the circuit- switched bearer is correlated to the session described in SDP.ExampleAn example of inclusion of an international E.164 number in the"cs- correlation""cs-correlation" attribute is: a=cs-correlation:callerid:+441134960123 The presence of the "callerid" subfield indicates that the endpoint supports use of thecalling party numberCalling Party Number as a means of correlating a PSTN call with the session being negotiated. The "callerid" subfield MAY be accompanied by the international E.164 number of the party inserting the parameter. Note that there are no guarantees that this correlation mechanism works or is even available, due a number of problems:o* The endpoint might not be aware of its own E.164 number, in which case it cannot populate the SDP appropriately.o* The Calling Party Numberinformation elementInformation Element in the circuit- switched signaling might not be available, e.g., due to policy restrictions of the network operator or caller restriction due to privacy.o* The Calling Party Numberinformation elementInformation Element in the circuit- switched signaling might be available, but the digit representation of the E.164 number might differ from the one expressed in the SDP, due to, e.g., lack of country code. To mitigate thisproblemproblem, implementations should consider only some of the rightmost digits from the E.164 number for correlation. For example, the numbers +44-113-496-0123 and 0113-496-0123 could be considered as the same number. This is also the behavior of some cellular phones, which correlate the incoming calling party with a number stored in the phone book, for the purpose of displaying the caller's name. Please refer to ITU-T E.164 recommendation[ITU.E164.1991][ITU.E164.2010] for consideration of the relevant number of digits to consider. 5.2.3.3. User-User Information Element Correlation Mechanism A second correlation mechanism is based on including in SDP a string that represents the User-User Information Element that is part of the call setup signaling of the circuit-switched bearer. The User-User Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 3GPP TS 24.008 [TS.24.008], among others. The User-User Information Element has a maximum size of 35 or 131 octets, depending on the actual message of the PSTN protocol where it is included and the network settings. The mechanism works asfollows:follows. An endpoint creates a User-User Information Element, according to the requirements of the call setup signaling protocol. The same value is included in the SDP offer or SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. When the SDPOffer/Answeroffer/answer exchange is completed, each endpoint has become aware of the value that will be used in the User-User Information Element of the call setup message of the PSTN protocol. The endpoint that initiates the call setup attempt includes this value in the User-User Information Element. The recipient of the call setup attempt can extract the User-User Information Element and correlate it with the value previously received in the SDP. If both values match, then the call setup attempt corresponds to that indicated in the SDP. According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information Element (UUIE) identifier is composed of a first octet identifying this as a User-User Information Element, a second octet containing theLengthlength of the user-user contents, a third octet containing a Protocol Discriminator, and a value of up to 32 or 128 octets (depending on network settings) containing the actual User Information (see Figure 4-36 inITU-T Q.931).[ITU.Q931.1998]). The first two octets of the UUIE MUST NOT be used forcorrelation,correlation; only the octets carrying the Protocol Discriminator and the User Information value are input to the creation of the value of the "uuie" subfield in the "cs-correlation" attribute. Therefore, the value of the "uuie" subfield in the "cs-correlation" attribute MUST start with the Protocol Discriminator octet, followed by the User Information octets. The value of the Protocol Discriminator octet is not specified in this document; it is expected that organizations using this technology will allocate a suitable value for the Protocol Discriminator. Once the binary value of the "uuie" subfield in the "cs-correlation" attribute is created, it MUST be base 16 (also known as "hex") encoded before it is inserted in SDP. Please refer to RFC 4648 [RFC4648] for a detailed description of base 16 encoding. The resulting encoded value needs to have an even number of hexadecimaldigits,digits and MUST be considered invalid if it has an odd number.Note that theNote: The encoding of the "uuie" subfield of the"cs- correlation""cs-correlation" attribute is largely inspired by the encoding of the same value in the User-to-User header field in SIP, according tothe document"A Mechanism for Transporting User to User Call Control Information in SIP"[I-D.ietf-cuss-sip-uui].[SIP-UUI]. As an example, an endpoint willing to send a UUIE containing aprotocol discriminatorProtocol Discriminator with the hexadecimal value of %x56 and an hexadecimal User Information value of %xA390F3D2B7310023 would includea "cs-correlation"an "a=cs-correlation" attribute line as follows: a=cs-correlation:uuie:56A390F3D2B7310023 Note that the value of the User-User Information Element is considered as an opaque string and only used for correlation purposes.TypicallyTypically, call signaling protocols impose requirements on the creation of a User-User Information Element for end-user protocol exchange. The details regarding the generation of the User-User Information Element are outside the scope of this specification. Please note that there are no guarantees that this correlation mechanism works. On one side, policy restrictions might not make the User-User information available end to end in the PSTN. On the other hand, the generation of the User-User Information Element is controlled by the PSTN circuit-switched call protocol, which might not offer enough freedom for generating different values from one endpoint to anotherone,one or from one call to another in the same endpoint. This might result in the same value of the User-User Information Element for all calls. 5.2.3.4. DTMF Correlation Mechanism We introduce a third mechanism for correlating the circuit-switched bearer with the session described with SDP. This is based on agreeing on a sequence of digits that are negotiated in the SDPOffer /Answeroffer /answer exchange and sent asDual-Tone Multi-Frequency (DTMF)DTMF tones as described in ITU-T Recommendation Q.23 [ITU.Q23.1988]tonesover the circuit-switched bearer once this bearer is established. If the DTMF digit sequence received through the circuit-switched bearer matches the digit string negotiated in the SDP, the circuit-switched bearer is correlated with the session described in the SDP. The mechanism is similar to many voice conferencing systemswhichthat require the user to enter a PIN code using DTMF tones in order to be accepted in a voice conference. The mechanism works asfollows:follows. An endpoint selects a DTMF digit sequence. The same sequence is included in the SDP offer or SDP answer, in a "dtmf" subfield of the "cs-correlation" attribute. When the SDPOffer/Answeroffer/answer exchange is completed, each endpoint has become aware of the DTMF sequence that will be sent right after the circuit- switched bearer is set up. The endpoint that initiates the call setup attempt sends the DTMF digits according to the procedures defined for the circuit-switched bearer technology used. The recipient (passive side of the bearer setup) of the call setup attempt collects the digits and compares them with the value previously received in the SDP. If the digits match, then the call setup attempt corresponds to that indicated in the SDP. Note: Implementations are advised to select a number of DTMF digits that provide enough assurance that the call isrelated,related buton the other handdo not prolong the bearer setup time unnecessarily. A number of 5 to 10 digits is a good compromise. As an example, an endpoint willing to send DTMF tone sequence "14D*3" would includea "cs-correlation"an "a=cs-correlation" attribute line as follows: a=cs-correlation:dtmf:14D*3 If the endpoints successfully agree on the usage of the DTMF digit correlationmechanism,mechanism but the passive side does not receive any DTMF digits after successful circuit-switched bearersetup,setup or receives a set of DTMF digits that do not match the value of the "dtmf" attribute (including receiving too many digits), the passive side SHOULD consider that this DTMF mechanism has failed to correlate the incoming call. 5.2.3.5.The external correlation mechanismExternal Correlation Mechanism The fourth correlation mechanism relies on external means for correlating the incoming call to the session. Since endpoints can select which correlation mechanisms they support, it may happen that no other common correlation mechanism isfound,found or that the selected correlation mechanism does not succeed due to the required feature not being supported by the underlying PSTN network. In these cases, the human user candomake the decisionof acceptingto accept orrejectingreject the incoming call, thus "correlating" the call with the session. Since not all endpoints are operated by a humanuser, or ifuser and since thereismay be no other external means implemented by the endpoint for the correlation function, we explicitly define support for such an external correlation mechanism. Endpoints wishing to use this external correlation mechanism would usea subfieldthe "external" subfield in the"a=cs-correlation""cs-correlation" attribute. Unlike thethreeother three correlationmechanism,mechanisms, the "external" subfield does not accept a value.AnThe following is an example ofaan "a=cs-correlation" attributeline would look like this:line: a=cs-correlation:external Endpointswhichthat are willing to only use the three explicit correlation mechanisms defined in this document ("callerid", "uuie", and/or "dtmf") would not include the "external" mechanism in theOffer/Answeroffer/ answer exchange. The external correlation mechanism typically relies on the human user todomake the decision on whether or not the call is related to the ongoingsession or not.session. After the user accepts the call, that bearer is considered as related to the session. There is a small chance that the user receives at the same time another circuit-switched callwhichthat is not related to the ongoing session. The user may reject this call if he is able to determine(e.g.(e.g., based on the calling line identification) that the call is not related to thesession,session and continue waiting for another call attempt. If the user accepts the incoming circuit-switched call, but it turns out to be not related to the session, the endpoints need to rely on the human user to take appropriate action (typically,theythe user would hang up). 5.2.3.6. Extensions tocorrelation mechanismsCorrelation Mechanisms New values for the "cs-correlation" attribute may be specified. The registration policy for new values is "SpecificationRequired",Required"; see Section 8. Any such specification MUST include a description of how the SDPOffer/Answeroffer/answer mechanism is used to negotiate the use of the new values, taking into account how endpoints determine which side will become active or passive (see Section 5.3 for more details). If, during theOffer/Answeroffer/answer negotiation, either endpoint encounters an unknown value in the "cs-correlation" attribute, it MUST consider that mechanism asunsupported,unsupported and MUST NOT include that value in subsequentOffer/Answeroffer/answer negotiation. 5.3. Negotiating thecorrelation mechanismsCorrelation Mechanisms The four correlation mechanisms presented above (based oncalled party number,Called Party Number, User-User Information Element, DTMF digit sending, and external) arenon-exclusive,non-exclusive and can be used independently of each other. In order to know how to populate the "cs-correlation" attribute, the endpoints need to agree which endpoint will become the active party, i.e., the one that will set up the circuit-switched bearer. 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup In order to avoid a situation where both endpoints attempt to initiate a connection simultaneously, the direction in which the circuit-switched bearer is set up MUST be negotiated during theOffer /Answeroffer /answer exchange. The framework defined in RFC 4145 [RFC4145] allows the endpoints to agree which endpoint acts as the active endpoint when initiating a TCP connection. While RFC 4145 [RFC4145] was originally designed for establishing TCP connections, it can be easily extrapolated to the connection establishment of circuit-switched bearers. This specification uses the concepts specified in RFC 4145 [RFC4145] for agreeing on the direction of establishment of a circuit-switched bearer. RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and "connection". The "setup" attribute indicates which of the endpoints should initiate the connection establishment of the PSTN circuit- switched bearer. Four values are defined in Section 4 of RFC 4145 [RFC4145]: "active", "passive", "actpass", and "holdconn". Please refer to Section 4 of RFC 4145 [RFC4145] for a detailed description of this attribute. The "connection" attribute indicates whether a new connection is needed or an existing connection is reused. The attribute can take the values "new" or "existing". Please refer to Section 5 of RFC 4145 [RFC4145] for a detailed description of this attribute. Implementationsaccording tothat are compliant with this specification MUST support the "setup" and "connection" attributes specified in RFC 4145 [RFC4145], but applied to circuit-switched bearers in the PSTN. We define the active party as the one that initiates the circuit- switched bearer after theOffer/Answeroffer/answer exchange. The passive party is the one receiving the circuit-switched bearer. Either party may indicate its desire to become the active or passive party during theOffer/Answeroffer/answer exchange using the procedures described in Section 5.6. 5.3.2. Populating thecs-correlation attribute"cs-correlation" Attribute By defining values for the subfields in the"a=cs-correlation""cs-correlation" attribute, the endpoint indicates that it is willing to become the activeparty,party and that it can use those values in the Callingparty number,Party Number, in the User-User Information Element, or as DTMF tones during the circuit-switched bearer setup. Thus, the following rules apply: o An endpoint that can only become the active party in the circuit- switched bearer setup MUST include all correlation mechanisms it supports in the"a=cs-correlation" attribute,"cs-correlation" attribute and MUST also specify values for the "callerid","uuie""uuie", and "dtmf" subfields. Notice that the "external" subfield does not accept a value. o An endpoint that can only become the passive party in the circuit- switched bearer setup MUST include all correlation mechanisms it supports in the"a=cs-correlation" attribute,"cs-correlation" attribute but MUST NOT specify values for the subfields. o An endpoint that is willing to become either the active or passive party (by including the "a=setup:actpass" attribute in theOffer),offer) MUST include all correlation mechanisms it supports in the"a=cs- correlation" attribute,"cs-correlation" attribute and MUST also specify values for the "callerid","uuie""uuie", and "dtmf" subfields. Notice that the "external" subfield does not accept a value. 5.3.3. Considerationson correlationsfor Correlations Passive endpoints should expect an incomingCScircuit-switched (CS) call for setting up the audio bearer. Passive endpoints MAY suppress the incoming CS alert duringacertain time periods. Additional restrictions can be applied, such as the passive endpoint not alerting incoming calls originated from the number that was observed during the offer/answer negotiation. There may be cases when an endpoint is not willing to include one or more correlation mechanisms in the "a=cs-correlation" attribute line even if it supports it. For example, some correlation mechanisms can be omitted if the endpoint is certain that the PSTN network does not support carrying the correlation identifier. Also, since using theDTMF basedDTMF-based correlation mechanism requires the call to be accepted before DTMF tonescanecan be sent, some endpoints may enforce a policy restricting this duetoto, forexampleexample, cost associated with received calls, making theDTMF basedDTMF-based mechanism unusable. Note that it cannot be guaranteed that the correlation mechanisms relying on caller identification, User-User InformationElementElement, and DTMF sending will succeed even if the usage of those was agreed beforehand. This is due to the fact thatthecorrelation mechanisms require support from the circuit-switched bearer technology used. Therefore, even a single positive indication using any of these mechanisms SHOULD be interpreted by the passive endpoint so that the circuit-switched bearer establishment is related to the ongoing session, even if the other correlation mechanisms fail. If, after successfully negotiating any of the "callerid","uuie""uuie", or "dtmf" correlation mechanisms in the SDP offer/answer exchange, an endpoint receives an incoming establishment of a circuit-switched bearer with no correlation information present, the endpoint first checks whether or not the offer/answer exchange was also used to successfully negotiatealsothe "external" correlation mechanism. If it was, the endpoint shouldleavelet the decisiontobe made bythisexternal means, typically the human user. If the "external" correlation mechanism was not successfully negotiated, the endpoint should treat the call as unrelated to the ongoing session in the IP domain. 5.4. Considerations for Usage of Existing SDP 5.4.1. Originator of the Session According to SDP [RFC4566], the origin line in SDP has the following syntax: o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address> Of interest here are the <nettype> and <addrtype> fields, which indicate the type of network and type of address, respectively. Typically, this field carries the IP address of the originator of the session. Even if the SDP was used to negotiate an audio or video media stream transported over a circuit-switched bearer, the originator is using SDP over an IP bearer. Therefore, <nettype> and <addrtype> fields in the "o=" line should be populated with the IP address identifying the source of the signaling. 5.4.2. ContactinformationInformation SDP [RFC4566] defines the "p="lineline, which may include the phone number of the person responsible for the conference. Even though this line can carry a phone number, it is not suited for the purpose of defining a connection address for the media. Therefore, we have selected to define thePSTN specificPSTN-specific connection addresses in the "c=" line. 5.5. Considerations for Usage of Third Party Call Control (3PCC)Best"Best Current Practices for Third Party Call Control(3pcc)(3PCC) in the Session Initiation Protocol(SIP)(SIP)" [RFC3725] outlines several flowswhichthat are possible in third party call control scenarios and recommends some flows for specific situations. One of the assumptions in [RFC3725] is that an SDPOfferoffer may include a "black hole" connection address, which has the property that packets sent to it will never leave the hostwhichthat sent them. For IPv4, this "black hole" connection address is0.0.0.0,0.0.0.0 or a domain name within the .invalid DNS top level domain. When using an E.164 address scheme in the context ofthird-partythird party call control, when the User Agent needs to indicate an unknown phone number, it MUST populate the <addrtype> of the SDP "c=" line with a "-" string.Note that thisNote: This may result in the recipient of the initial offer rejecting such offer if the recipient of the offer was not aware of its own E.164 number.ConsequentlyConsequently, it will not be possible to establish a circuit-switched bearer, since neither party is aware oftheirits E.164 number. 5.6. Offer/Answermode extensionsMode Extensions In this section, we define extensions to theOffer/Answeroffer/answer model defined inThe"An Offer/Answer Modelin SDPwith the Session Description Protocol (SDP)" [RFC3264] to allow for PSTN addresses to be used with theOffer/Answeroffer/answer model. 5.6.1. Generating the Initial Offer TheOfferer,offerer, wishing to use PSTN audio or video stream, MUST populate the "c=" and "m=" lines as follows. The endpoint MUST set the <nettype> in the "c=" line to"PSTN","PSTN" and the <addrtype> to "E164". Furthermore, the endpoint SHOULD set the <connection-address> field to its own international E.164 number (with a leading "+"). If the endpoint is not aware of its own E.164 number, it MUST set the <connection-address> to "-". In the "m=" line, the endpoint MUST set the <media> subfield to "audio" or "video", depending on the media type, and the <proto> subfield to "PSTN". The <port> subfield SHOULD be set to "9" (the discard port). The values "audio" or "video" in the <media> subfield MUST NOT be set by the endpoint unless it has knowledge that these bearer types are available on the circuit-switched network. The <fmt> subfield carries the payload type number(s) the endpoint is wishing to use. Payload type numbers in this case refer to the codecs that the endpoint wishes to use on the PSTN media stream. For example, if the endpoint wishes to use the GSM codec, it would add payload type number 3 in the list of codecs. The list of payload types MUST only contain those codecs the endpoint is able to use on the PSTN bearer. In case the endpoint is not aware of the codecs available for the circuit-switched media streams, it MUST include a dash ("-") in the <fmt> subfield. The mapping table of static payload types numbers to payload types is initially specified in [RFC3551] and maintained by IANA. For dynamic payload types, the endpoint MUST define the set of valid encoding names and related parameters using the "a=rtpmap" attribute line. See Section 6 of RFC 4566 [RFC4566] for details. When generating theOffer,offer, theOffererofferer MUST include an "a=cs-correlation" attribute line"a=cs-correlation"in the SDP offer. TheOffererofferer MUST NOT include more than one "cs-correlation" attribute per media description. The "a=cs-correlation" line SHOULD contain an enumeration of all the correlation mechanisms supported by theOfferer,offerer, in the format of subfields. See Section 5.3.3 for more information on usage of the correlation mechanisms. The current list of subfields include "callerid", "uuie", "dtmf", and"extenal","external", and they refer to the correlation mechanisms defined inSectionSections 5.2.3.2,Section5.2.3.3,Section5.2.3.4, andSection 5.2.3.55.2.3.5, respectively. If theOffererofferer supports any of the correlation mechanisms defined in thismemo,memo and is willing to become the active party, theOffererofferer MUST add the "callerid", "uuie","dtmf""dtmf", and/or"extern""external" subfields and MUST specify values for them as follows: otheThe international E.164 number as the value in the "callerid"subfield,subfield. otheThe contents of the User-Userinformation elementInformation Element as the value of the "uuie"subfield, and/orsubfield. otheThe DTMF tone string as the value of the "dtmf"subfieldsubfield. ofor the "external" subfield, theThe endpoint MUST NOT specify anyvalue.value for the "external" subfield. If theOffererofferer is only able to become the passive party in the circuit-switched bearer setup, it MUST add at least one of the possible correlationmechanisms,mechanisms but MUST NOT specify values for those subfields. For example, if theOffererofferer is willing to use the User-User InformationelementElement and DTMFdigit sendingdigit-sending mechanisms but can only become the passive party, and is also able to let the human user decide whether the correlation should be done or not, it includes the following lines in the SDP: a=cs-correlation:uuie dtmf external a=setup:passive If, on the other hand, theOffererofferer is willing to use the User-User InformationelementElement and the DTMF correlation mechanisms and is able to become the active or passive side, and is also able to let the human user decide whether the correlation should be done orno,not, it includes the following lines in the SDP: a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 external a=setup:actpass The negotiation of the value of the'setup'"setup" attribute takes place as defined in Section 4.1 ofRFC4145RFC 4145 [RFC4145]. TheOffererofferer states which role or roles it is willing to perform;andtheAnswerer,answerer, taking theOfferer'sofferer's willingness into consideration, chooses which roles both endpoints will actually perform during the circuit-switched bearer setup. By'active'"active" endpoint, we refer to an endpoint that will establish the circuit-switched bearer;andby'passive'"passive" endpoint, we refer to an endpoint that will receive a circuit-switched bearer. If anOffererofferer does not know its international E.164 number, it MUST set the'a=setup'"setup" attribute to the value'active'."active". If theOffererofferer knows its international E.164 number, it SHOULD set the value to either'actpass'"actpass" or'passive'."passive". Also'holdconn'"holdconn" is a permissible value in the'a=setup'"setup" attribute. It indicates that the connection should not be established for the time being. TheOffererofferer uses the"a=connection""connection" attribute to decide whether a new circuit-switched bearer is to be established or not. For the initialOffer,offer, theOffererofferer MUST use value'new'."new". 5.6.2. Generating the Answer If theOfferoffer contained a circuit-switched audio or video stream, theAnswereranswerer first determines whether it is able to accept and use such streams on the circuit-switched network. If theAnswereranswerer does not support or is not willing to use circuit-switched media for the session, it MUST construct anAnsweranswer where the port number for such media stream(s) is set to zero, according to Section 6 of [RFC3264]. If theAnswereranswerer is willing to use circuit-switched media for the session, it MUST ignore the received port number (unless the port number is set to zero). If theOfferoffer included a "-" as the payload type number, it indicates that theOffererofferer is not willing or able to define any specific payload type. Most often, a "-" is expected to be used instead of the payload type when the endpoint is not aware of or not willing to define the codecswhichthat will eventually be used on the circuit- switched bearer. The circuit-switched signaling protocols have their own means of negotiating or indicating thecodecs, thereforecodecs; therefore, anAnswereranswerer SHOULD accept suchOffers,offers and SHOULD set the payload type to "-"alsoin theAnswer.answer. If theAnswereranswerer explicitly wants to specify a codec for the circuit- switched media, it MAY set the respective payload numbers in the <fmt> subfield in the answer. This behavior, however, is NOT RECOMMENDED. When receiving theOffer,offer, theAnswereranswerer MUST determine whether it becomes the active or passive party. If the SDP in theOfferoffer indicates that theOffererofferer is only able to become the active party, theAnswereranswerer needs to determine whether it is able to become the passive party. If this is notpossible e.g.possible, e.g., due to theAnswereranswerer not knowing its international E.164 number, theAnswereranswerer MUST reject the circuit-switched media by setting the port number to zero on theAnswer.answer. If theAnswereranswerer is aware of its international E.164 number, it MUST include the"a=setup""setup" attribute in theAnsweranswer and set it to value "passive" or "holdconn". TheAnswereranswerer MUST also include its E.164 number in the "c=" line. If the SDP in theOfferoffer indicates that theOffererofferer is only able to become the passive party, theAnswereranswerer MUST verify that theOfferer'sofferer's E.164 number is included in the "c=" line of theOffer.offer. If the number is included, theAnswereranswerer MUST include the"a=setup""setup" attribute in theAnsweranswer and set it to value "active" or "holdconn". If the number is not included,orthe recipient of theOfferoffer is not willing to establish a connection the E.164 based on a priori knowledge of cost, or other reasons, call establishment is not possible, and theAnswereranswerer MUST reject the circuit-switched media by setting the port number to zero in theAnswer.answer. If the SDP in theOfferoffer indicates that theOffererofferer is able to become either the active or passive party, theAnswereranswerer determines which role it will take. If theOfferoffer includes an international E.164 number in the "c=" line, theAnswereranswerer SHOULD become the active party. If theAnswereranswerer does not become the activeparty,party and if theAnswereranswerer is aware of its E.164 number, it MUST become the passive party. If theAnswereranswerer does not become the active or the passive party, it MUST reject the circuit-switched media by setting the port number to zero in theAnswer.answer. For each media description where theOfferoffer includes a"a=cs- correlation""cs-correlation" attribute, theAnswereranswerer MUST select from theOfferoffer those correlation mechanisms itsupports,supports and include in theAnsweranswer one"a =cs-correlation""a=cs-correlation" attribute line containing those mechanisms it is willing to use. TheAnswereranswerer MUST only add one"a=cs-correlation""cs-correlation" attribute in those media descriptions where also theOfferoffer included a"a=cs-correlation""cs-correlation" attribute. TheAnswereranswerer MUST NOT add any mechanismswhichthat were not included in the offer. If thereareis more than one "cs-correlation"attributesattribute per media description in theOffer,offer, theAnswereranswerer MUST discard all but the first for any media description. Also, theAnswereranswerer MUST discard all unknown"cs- correlation""cs-correlation" attribute values. If theAnswereranswerer becomes the active party, it MUST add a value to any of the possible subfields. If theAnswereranswerer becomes the passive party, it MUST NOT add any values to the subfields in the "cs-correlation" attribute. After generating and sending theAnswer,answer, if theAnswereranswerer became the active party, it o MUST extract the E.164 number from the "c=" line of theOfferoffer and MUST establish a circuit-switched bearer to that address. o if the SDPAnsweranswer contained a value for the "callerid" subfield, MUST set the Calling Party Number Information Element to thatnumber,number. o if the SDPAnsweranswer contained a value for the "uuie" subfield, MUST send the User-User InformationelementElement according to the rules defined for the circuit-switched technologyused,used and set the value of the Information Element to that received in the SDPOffer,offer. o if the SDPAnsweranswer contained a value for the "dtmf" subfield, MUST send those DTMF digits according to the circuit-switched technology used. If, on the other hand, theAnswereranswerer became the passive party, it o MUST be prepared to receive a circuit-switched bearer, o if theOfferoffer contained a value for the "callerid" subfield, MUST compare that value to the Calling Party Number Information Element of the circuit-switched bearer. If the received Calling Party Number Information Element matches the value of the "callerid" subfield, the call SHOULD be treated as correlated to the ongoing session. o if theOfferoffer contained a value for the "dtmf" subfield, MUST be prepared to receive and collect DTMF digits once the circuit- switched bearer is set up. TheAnswereranswerer MUST compare the received DTMF digits to the value of the "dtmf" subfield. If the received DTMF digits match the value of the "dtmf" subfield in the"cs- correlation""cs-correlation" attribute, the call SHOULD be treated as correlated to the ongoing session. o if theOfferoffer contained a value for the "uuie" subfield, MUST be prepared to receive a User-User InformationelementElement once the circuit-switched bearer is set up. TheAnswereranswerer MUST compare the receivedUUIUUIE to the value of the "uuie" subfield. If the value of the receivedUUIUUIE matches the value of the "uuie" subfield, the call SHOULD be treated as correlated to the ongoing session. o if theOfferoffer containedaan "external" subfield, MUST be prepared to receive a circuit-switched call and use the external means(typically(typically, the human user) for accepting or rejecting the call. If theAnswereranswerer becomes the active party, generates an SDP answer, and then it finds out that the circuit-switched call cannot be established, then theAnswereranswerer MUST create a new SDP offer where the circuit-switched stream is removed from the session (actually, by setting the corresponding port in them="m=" line to zero) and send it to its counterpart. This is to synchronize both parties (and potential intermediaries) on the state of the session. 5.6.3. OffererprocessingProcessing the Answer When receiving theAnswer,answer, if the SDP does not contain"a=cs- correlation"an "a=cs-correlation" attribute line, theOffererofferer should take that as an indication that the other party does not support or is not willing to use the procedures defined in the document for thissession,session and MUST revert to normal processing of SDP. When receiving theAnswer,answer, theOffererofferer MUST first determine whether it becomes the active or passive party, as described in Section 5.3.1. If theOffererofferer becomes the active party, it o MUST extract the E.164 number from the "c=" line and MUST establish a circuit-switched bearer to that address. o if the SDPAnsweranswer contained a value for the "uuie" subfield, MUST send the User-User InformationelementElement according to the rules defined for the circuit-switched technologyused,used and set the value of the Information Element to that received in the SDPAnswer,answer. o if the SDPAnsweranswer contained a value for the "dtmf" subfield, MUST send those DTMF digits according to the circuit-switched technology used. If theOffererofferer becomes the passiveparty, itparty: o It MUST be prepared to receive a circuit-switchedbearer,bearer. o Note that if delivery of theAnsweranswer is delayed for some reason, the circuit-switched call attempt may arrive at theOffererofferer before theAnsweranswer has been processed. In this case, since the correlation mechanisms are negotiated as part of theOffer/Answeroffer/answer exchange, theAnswereranswerer cannot know whether or not the incoming circuit-switched call attempt is correlated with the session beingnegotiated,negotiated; thus, theOffererofferer SHOULD answer the circuit-switched call attempt only after it has received and processed theAnswer.answer. o If theAnsweranswer contained a value for the "dtmf" subfield, theOffererofferer MUST be prepared to receive and collect DTMF digits once the circuit-switched bearer is set up. TheOffererofferer SHOULD compare the received DTMF digits to the value of the "dtmf" subfield. If the received DTMF digits match the value of the "dtmf" subfield in the "cs-correlation" attribute, the call SHOULD be treated as correlated to the ongoing session. o If theAnsweranswer contained a value for the "uuie" subfield, theOffererofferer MUST be prepared to receive a User-User InformationelementElement once the circuit-switched bearer is set up. TheOffererofferer SHOULD compare the receivedUUIUUIE to the value of the "uuie" subfield. If the value of the receivedUUIUUIE matches the value of the "uuie" subfield, the call SHOULD be treated as correlated to the ongoing session. o If theAnsweranswer containedaan "external" subfield, theOffererofferer MUST be prepared to receive a circuit-switched call and use the external means(typically(typically, the human user) for accepting or rejecting the call. According the "An Offer/Answer Model withSDPthe Session Description Protocol (SDP)" [RFC3264], theOffererofferer needs to be ready to receive media as soon as theOfferoffer has been sent. It may happen that theAnswerer,answerer, if it became the active party, will initiate acircuit-switchedcircuit- switched bearer setupwhichthat will arrive at theOffererofferer before theAnsweranswer has arrived. However, theOffererofferer needs to receive theAnsweranswer and examine the information about the correlation mechanisms in order to successfully perform correlation of the circuit-switched call to the session. Therefore, if theOffererofferer receives an incomingcircuit-switchedcircuit- switched call, it MUST NOT accept the call before theAnsweranswer has been received. If noAnsweranswer is received during animplementation specificimplementation-specific time, theOffererofferer MUST either modify the session according to [RFC3264] or terminate it according to the session signaling procedures in question (for terminating a SIP session, see Section 15 of [RFC3261]). 5.6.4. Modifying thesessionSession If, at a later time, one of the parties wishes to modify the session, e.g., by adding a new mediastream,stream or by changing properties used on an existing stream, it may do so via the mechanisms definedfor Anin "An Offer/Answer Model withSDPthe Session Description Protocol (SDP)" [RFC3264]. If there is an existing circuit-switched bearer between theendpoints,endpoints and theOffererofferer wants to reuse that, theOffererofferer MUST set the value of the"a=connection""connection" attribute to'existing'."existing". If either party removes the circuit-switched media from the session (by setting the port number to zero), it MUST terminate the circuit- switched bearer using whatever mechanism is appropriate for the technology in question. If either party wishes to drop and reestablish an existing call, that party MUST first remove the circuit-switched media from the session by setting the port number tozero,zero and then use anotherOffer/Answeroffer/answer exchange where it MUST set the"a=connection""connection" attribute to'new'"."new". If the media types are different (for example, a different codec will be used for the circuit-switched bearer), the media descriptions for terminating the existing bearer and the new bearer can be in the sameOffer.offer. If either party would like to remove existingRTP basedRTP-based media from the session and replace that with a circuit-switched bearer, it would create a newOfferoffer to add the circuit-switched media as described in Section 5.6.1 above, replacing theRTP basedRTP-based media descriptionbywith the circuit-switched media description, as specified in RFC 3264 [RFC3264]. Once theOffer/Answeroffer/answer exchange is done, but the circuit-switched bearer is not yet established, there may be a period of time when no media is available. Also, it may happen that correlating the circuit-switched call fails for reasons discussed in Section 5.3.3. In this case, even if theOffer/Answeroffer/answer exchange was successful, endpoints are not able to receive or send media. It is up to the implementation to decide the behavior in this case; if nothing else is done, the user most likely hangs up after a while if therewasis no other media in the session. Note that this may also happen when switching from one RTP media to another RTP media (forexampleexample, when firewall blocks the new media stream). If either party would like to remove existing circuit-switched media from the session and replace that withRTP basedRTP-based media, it would modify the media description as per the procedures defined in RFC 3264 [RFC3264]. The endpoint MUST then terminate the circuit- switched bearer using whatever mechanism is appropriate for the technology in question. 5.7. Formal Syntax The following is the formal Augmented Backus-Naur Form (ABNF) [RFC5234] syntax that supports the extensions defined in this specification. The syntax is built above the SDP [RFC4566] and the tel URI [RFC3966] grammars. Implementationsaccording tothat are compliant with this specification MUST be compliant with this syntax. Figure 2 shows the formal syntax of the extensions defined in this memo. ; extension to the connection field originally specified ; inRFC4566RFC 4566 connection-field = [%x63 "=" nettype SP addrtype SP connection-address CRLF] ; CRLF defined inRFC5234RFC 5234 ;nettype and addrtype are defined in RFC 4566 connection-address /= global-number-digits / "-" ; global-number-digits specified inRFC3966RFC 3966 ;subrules for correlation attribute attribute /= cs-correlation-attr ; attribute defined inRFC4566RFC 4566 cs-correlation-attr = "cs-correlation:" corr-mechanisms corr-mechanisms = corr-mech *(SP corr-mech) corr-mech = caller-id-mech / uuie-mech / dtmf-mech / external-mech / ext-mech caller-id-mech = "callerid" [":" caller-id-value] caller-id-value = "+" 1*15DIGIT ; DIGIT defined in RFC5234 uuie-mech = "uuie" [":" uuie-value] uuie-value = 1*65(HEXDIG HEXDIG) ;This represents up to 130 HEXDIG ; (65 octets) ;HEXDIG defined inRFC5234RFC 5234 ;HEXDIG defined as 0-9, A-F dtmf-mech = "dtmf" [":" dtmf-value] dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) ;0-9, A-D, '#' and '*' external-mech = "external" ext-mech = ext-mech-name [":" ext-mech-value] ext-mech-name = token ext-mech-value = token ; token is specified inRFC4566RFC 4566 Figure 2: Syntax of the SDPextensionsExtensions 6. Examples In the examples below, where an SDP line is too long to be displayed as a single line, a breaking character "\" indicates continuation in the following line. Note that this character is included for display purposes only. Implementations MUST write a single line without breaks. 6.1. Single PSTNaudio streamAudio Stream Endpoint A Endpoint B | | | (1) SDPOfferoffer (PSTN audio) | |--------------------------------->| | | | (2) SDPAnsweranswer (PSTN audio) | |<---------------------------------| | | | PSTN call setup | |<---------------------------------| | | |<==== media over PSTN bearer ====>| | | Figure 3: BasicflowFlow Figure 3 shows a basic example that describes a single audio media stream over a circuit-switched bearer. Endpoint A generatesaan SDPOfferoffer, which is shown in Figure 4. TheOfferoffer describes a PSTN circuit-switched bearer in the "m=" and "c=" line where it also indicates its international E.164 number format. Additionally, Endpoint A expresses that it can initiate the circuit-switched bearer or be the recipient of it in the "a=setup" attribute line. The SDPOfferoffer also includes correlation identifiers that this endpoint will insert in the Calling Party Number and/or User-User Information Element of the PSTN call setup if eventually this endpoint initiates the PSTN call. Endpoint A also includesthe"external" as one correlationmechanismmechanism, indicating that it can use the human user to perform correlation in case other mechanisms fail. v=0 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 s= t=0 0 m=audio 9 PSTN - c=PSTN E164 +441134960123 a=setup:actpass a=connection:new a=cs-correlation:callerid:+441134960123 \ uuie:56A390F3D2B7310023 external Figure 4: SDPofferOffer (1) Endpoint B generatesaan SDPAnsweranswer (Figure 5), describing a PSTN audio media on port 9 without information on the mediasub-typesubtype on the "m=" line. The "c=" line contains B's international E.164 number. In the "a=setup"lineline, Endpoint B indicates that it is willing to become the active endpoint when establishing the PSTN call, and it also includes the "a=cs-correlation" attribute line containing the values it is going to include in the Calling Party Number andUser-User IEUser- User Information Element of the PSTN call establishment. Endpoint B is also able to perform correlation by external means, in case other correlation mechanisms fail. v=0 o=- 2890973824 2890987289 IN IP4 192.0.2.7 s= t=0 0 m=audio 9 PSTN - c=PSTN E164 +441134960124 a=setup:active a=connection:new a=cs-correlation:callerid:+441134960124 \ uuie:74B9027A869D7966A2 external Figure 5: SDP Answer withcircuit-switched mediaCircuit-Switched Media When Endpoint A receives theAnswer,answer, it examines that B is willing to become the active endpoint when setting up the PSTN call. Endpoint A temporarily stores B's E.164 number and the User-User IE value of the "cs-correlation"attribute,attribute and waits for a circuit-switched bearer establishment. Endpoint B initiates a circuit-switched bearer using whatever circuit-switched technology is available for it. Thecalled party numberCalled Party Number is set to A's number, andcalling party numberthe Calling Party Number is set to B's own number. Endpoint B also sets the User-User Information Element value to the one contained in the SDPAnswer.answer. When Endpoint A receives the circuit-switched bearer establishment, it examines the UUIE and thecalling party number, andCalling Party Number and, by comparing those received duringO/A exchangethe offer/answer exchange, determines that the call is related to the SDP session. It may also be that neither the UUIE nor thecalling party numberCalling Party Number is received by the called party, or the format of thecalling party numberCalling Party Number is changed by the PSTN. Implementations may still accept such call establishment attempts as being related to the session that was established in the IP network. As it cannot be guaranteed that the values used for correlation are always passed intact through the network, they should be treated as additional hints that the circuit- switched bearer is actually related to the session. 6.2. Advanced SDPexample:Example: Circuit-Switched Audio and Video Streams Endpoint A Endpoint B | | | (1) SDPOfferoffer (PSTN audio and video) | |------------------------------------------->| | | | (2) SDPAnsweranswer (PSTN audio) | |<-------------------------------------------| | | | PSTN call setup | |<-------------------------------------------| | | |<======== media over PSTN bearer ==========>| | | Figure 6: Circuit-Switched Audio and VideostreamsStreams Figure 6 shows an example of negotiating audio and video media streams over circuit-switched bearers. v=0 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 s= t=0 0 a=setup:actpass a=connection:new c=PSTN E164 +441134960123 m=audio 9 PSTN - a=cs-correlation:dtmf:1234536 m=video 9 PSTN 34 a=rtpmap:34 H263/90000 a=cs-correlation:callerid:+441134960123 Figure 7: SDPofferOffer withcircuit-switched audioCircuit-Switched Audio andvideoVideo (1) Upon receiving the SDP offer described in Figure 7, Endpoint B rejects the video stream as the device does not currently support video, but it accepts the circuit-switched audio stream. As Endpoint A indicated that it is able to become either the active or passive party, Endpoint B gets to select which role it would like to take. Since theOfferoffer contained the international E.164 number of Endpoint A, Endpoint B decides that it becomes the active party in setting up the circuit-switched bearer. B includes a new value in the "dtmf" subfield of the "cs-correlation" attribute, which it is going to send as DTMF tones once the bearer setup is complete. TheAnsweranswer is described in Figure88. v=0 o=- 2890973824 2890987289 IN IP4 192.0.2.7 s= t=0 0 a=setup:active a=connection:new c=PSTN E164 +441134960124 m=audio 9 PSTN - a=cs-correlation:dtmf:654321 m=video 0 PSTN 34 a=cs-correlation:callerid:+441134960124 Figure 8: SDPanswerAnswer withcircuit-switched audioCircuit-Switched Audio andvideoVideo (2) 7. Security Considerations This document provides an extensionon top ofto RFC 4566[RFC4566],[RFC4566] and RFC 3264 [RFC3264]. As such, the security considerations of those documents apply. This memo provides mechanisms to agree on a correlation identifier or identifiers that are used to evaluate whether an incoming circuit- switched bearer is related to an ongoing session in the IP domain. If an attacker replicates the correlation identifier and establishes a call within the time window the receiving endpoint is expecting a call, the attacker may be able to hijack the circuit-switched bearer. These types of attacks are not specific to the mechanisms presented in this memo. For example,callerCaller ID spoofing is a well-known attack in the PSTN. Users are advised to use the same caution before revealing sensitive information as they would on any other phone call. Furthermore, users are advised that mechanisms that may be in use in the IP domain for securing the media, like Secure RTP (SRTP) [RFC3711], are not available in the CS domain. For the purposes of establishing a circuit-switched bearer, the active endpoint needs to know the passive endpoint's phone number. Phone numbers are sensitive information, and some people may choose not to reveal their phone numbers when calling using supplementary services like Calling Line Identification Restriction (CLIR) in GSM. Implementations should take the caller's preferences regarding calling line identification into account if possible, by restricting the inclusion of the phone number in the SDP "c=" line if the caller has chosen to use CLIR. If this is not possible, implementations may present a prompt informing the user that their phone number may be transmitted to the other party.Similarly asAs with IP addresses, if there is a desire to protect the SDP containing phone numbers carried in SIP, implementers are advised to follow the security mechanisms defined in [RFC3261]. It is possible that an attacker creates a circuit-switched session whereby the attacked endpoint should dial a circuit-switched number, perhaps even a premium-rate telephone number. To mitigate the consequences of this attack, endpoints MUST authenticate and trust remote endpoints users who try to remain passive in the circuit- switched connection establishment. It is RECOMMENDED that endpoints have local policies precluding the active establishment ofcircuitcircuit- switched connections to certain numbers (e.g., international, premium, and long distance). Additionally, it is strongly RECOMMENDED that the end user is asked for consent prior to the endpoint initiating a circuit-switched connection. 8. IANA ConsiderationsThis document instructsIANAto registerhas registered a number of SDP tokens according to the following data. 8.1. Registration ofnew cs-correlationthe New "cs-correlation" SDPattributeAttribute Contact: Miguel Garcia <miguel.a.garcia@ericsson.com> Attribute name: cs-correlation Long-form attribute name: PSTN Correlation Identifier Type of attribute: media level only Subject to charset: No Description: This attribute provides the Correlation Identifier used in PSTN signaling Appropriatevalues:seevalues: see Section 5.2.3.1 Specification: RFCXXXX7195 The IANAis requested to createhas created a subregistry for'cs-correlation'the "cs-correlation" attribute under theSession"Session Description Protocol (SDP)ParametersParameters" registry. The initial values for the subregistry are presented in thefollowing, andfollowing; IANAis requested to add them into its database:has registered these values accordingly: Value of'cs-correlation'"cs-correlation" attribute Reference Description ----------------------------------- --------------------------------------- callerid RFCXXXX7195 Caller ID uuie RFCXXXX7195 User-User Information Element dtmf RFCXXXX Dual-tone7195 Dual-Tone Multi-Frequency external RFCXXXX7195 ExternalNote for the RFC Editor: 'RFC XXXX' above should be replaced by a reference to the RFC number of this draft.As per the terminology in [RFC5226], the registration policy for new values of'cs-correlation' parameterthe "cs-correlation" attribute is'Specification Required'."Specification Required". 8.2. Registration of anewNew "nettype"value This memo provides instructions toValue IANAto registerhas registered a new "nettype" in theSession"Session Description ProtocolParameters(SDP) Parameters" registry[1].[IANA]. The registration data, according to RFC 4566[RFC4566][RFC4566], is as follows. Type SDP Name Reference------------------ ------------------ --------- nettype PSTN[RFCxxxx]RFC 7195 8.3. Registration ofnewa New "addrtype"value This memo provides instructions toValue IANAto registerhas registered a new "addrtype" in theSession"Session Description ProtocolParameters(SDP) Parameters" registry[2].[IANA]. The registration data, according to RFC 4566[RFC4566][RFC4566], is as follows. Type SDP Name Reference------------------ ------------------ --------- addrtype E164[RFCxxxx] Note:RFCXXXX7195 Note: This document defines the "E164" addrtype in the context of the "PSTN" nettype only.Please refer to the relevantRFCfor a description of that representation.3108 [RFC3108] also defines address type "E.164". This definition is distinct from the one defined by this memo and shall not be used with <nettype> "PSTN". 8.4. Registration of anewNew "proto"value This memo provides instructions toValue IANAto registerhas registered a new "proto" in theSession"Session Description ProtocolParameters(SDP) Parameters" registry[3].[IANA]. The registration data, according to RFC 4566[RFC4566][RFC4566], is as follows. Type SDP Name Reference ----------------------------------------------------------- --------- proto PSTN[RFCxxxx]RFC 7195 The related "fmt" namespacere-usesreuses the conventions and payload type number defined for RTP/AVP. InRFC XXXX,this document, the RTP audio and video media types, when applied to PSTN circuit-switched bearers, represent merely an audio or video codec in its native format directly on top of a single PSTN bearer. Incomesome cases, the endpoint is not able to determine the list of available codecs for circuit-switched media streams. In this case, in order to be syntactically compliant with SDP [RFC4566], the endpoint MUST include a single dash ("-") in the <fmt> subfield. 9. Acknowledgments The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing their insight and comments on this document. 10. References 10.1. Normative References [ITU.Q931.1998] International Telecommunications Union, "Digital Subscriber Signalling System No. 1(DSS 1)- ISDNUser - NetworkUser-Network Interface Layer 3 Specification for Basic Call Control",ISO Standard 9594-1,ITU-T Recommendation Q931, May 1998. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004. [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in the Session Description Protocol (SDP)", RFC 4145, September 2005. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, October 2006. [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. 10.2. Informative References[I-D.ietf-cuss-sip-uui] Johnston, A. and J. Rafferty, "A Mechanism for Transporting User to User Call Control Information in SIP", draft-ietf-cuss-sip-uui-12 (work in progress), January 2014. [ITU.E164.1991][IANA] IANA, "Session Description Protocol (SDP) Parameters Registry", <http://www.iana.org/assignments/ sdp-parameters>. [ITU.E164.2010] International Telecommunications Union, "The International Public Telecommunication Numbering Plan", ITU-T Recommendation E.164,1991.2010. [ITU.Q23.1988] International Telecommunications Union, "Technical features of push-button telephone sets", ITU-T Technical Recommendation Q.23, 1988. [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the Session Description Protocol (SDP) for ATM Bearer Connections", RFC 3108, May 2001. [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. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, 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. [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. Camarillo, "Best Current Practices for Third Party Call Control (3pcc) in the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, April 2004. [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message Session Relay Protocol (MSRP)", RFC 4975, September 2007. [SIP-UUI] Johnston, A. and J. Rafferty, "A Mechanism for Transporting User to User Call Control Information in SIP", Work in Progress, April 2014. [TS.24.008] 3GPP, "Mobile radio interface Layer 3 specification; Core network protocols; Stage 3", 3GPP TS 24.008 3.20.0, December 2005.10.3. URIs [1] http://www.iana.org/assignments/sdp-parameters [2] http://www.iana.org/assignments/sdp-parameters [3] http://www.iana.org/assignments/sdp-parametersAuthors' Addresses Miguel A. Garcia-Martin Ericsson Calle Via de los Poblados 13 Madrid, ES 28033 SpainEmail:EMail: miguel.a.garcia@ericsson.com Simo Veikkolainen Nokia P.O. Box 226 NOKIA GROUP, FI 00045 Finland Phone: +358 50 486 4463Email:EMail: simo.veikkolainen@nokia.com