MMUSIC WG M. Garcia-Martin Internet-Draft S. Veikkolainen Intended status: Standards Track Nokia Siemens Networks Expires: October 17, 2008 April 15, 2008 Conventions for the Use of the Session Description Protocol (SDP) for Circuit-Switched Bearer Connections in the Public Switched Telephone Network (PSTN) draft-garcia-mmusic-sdp-cs-01 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on October 17, 2008. Abstract This memo describes use cases, requirements, and protocol conventions for using the Session Description Protocol (SDP) Offer/Answer model for establishing circuit-switched bearer connections in the Public Switched Telephone Network (PSTN). Additionally, this memo proposes conventions for using SDP and the SDP capability negotiation framework for expressing those circuit-switched bearer connections as alternatives to packet-switched streams. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 1] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 5 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 5 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 7 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 7 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 7 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 7 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 8 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2.3.1. Caller-ID Correlation Mechanism . . . . . . . . . 9 5.2.3.2. User-User Information Element Correlation Mechanism . . . . . . . . . . . . . . . . . . . . 10 5.3. Considerations for Usage of Existing SDP . . . . . . . . . 11 5.3.1. Originator of the Session . . . . . . . . . . . . . . 11 5.3.2. Determining the Direction of the Circuit-Switched Connection Setup . . . . . . . . . . . . . . . . . . . 12 5.4. Extensions to and Usage of the SDP Capability Negotiation Framework . . . . . . . . . . . . . . . . . . 13 5.4.1. Offering alternative media streams . . . . . . . . . . 13 5.4.2. Using Additional Attributes with the SDP Capability Negotiation Framework . . . . . . . . . . . 16 5.5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 17 6. SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.1. Basic SDP example: Single Circuit-Switched Audio Stream . 19 6.2. PSTN Circuit-Switched Audio Bearer as an Alternative to RTP . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 7.1. Registration of new corr-id SDP attribute . . . . . . . . 22 7.2. Registration of a new "nettype" value . . . . . . . . . . 22 7.3. Registration of new "addrtype" values . . . . . . . . . . 22 7.4. Registration of a new "proto" value . . . . . . . . . . . 22 7.5. Registration of a new Capability Negotiation Option Tag . 23 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 10.1. Normative References . . . . . . . . . . . . . . . . . . . 23 10.2. Informative References . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 Intellectual Property and Copyright Statements . . . . . . . . . . 26 Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 2] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 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 in RTP Profile for Audio and Video Conferences with Minimal Control [RFC3551]. However, SDP can be used to describe other transport protocols 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 Offer/Answer Model with Session Description Protocol (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 the media related parameters. In some scenarios 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 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 media, and using a circuit-switched bearer would offer a better perceived quality of service. So, according to this scenario, SDP and its higher layer session control protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are used over regular IP connectivity, while the audio is received through the classical circuit-switched bearer. Setting up a signaling relationship in the IP domain instead of just setting up a circuit-switched call offers also the possibility of negotiating in the same session other IP based media that is not constrained by jitter or delay, for example, text messaging or presence information. At a later point in time the mobile device might move to an area where a high-bandwidth packet-switched bearer, for example a Wireless Local Area Network (WLAN) connection, is available. At this point the mobile device may perform a handover and move the audio media streams over to the high-speed bearer. This implies a new exchange Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 3] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 of SDP offer/answer that lead to a re-negotiation of the media streams. 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 provides a few examples of descriptions of circuit-switched audio streams in SDP. Section 7 and Section 8 contain the IANA and Security considerations, respectively. 2. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD 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 circuit-switched audio media stream. REQ-1: A mechanism for endpoints to negotiate and agree on a circuit-switched bearer for audio media MUST be available. REQ-2: The mechanism MUST allow the endpoints to combine circuit- switched audio media streams with other complementary media streams, for example, text messaging. REQ-3: It MUST be possible for an endpoint to offer an audio stream where the circuit-switched bearer is an alternative to the IP bearer, and vice versa. REQ-4: The mechanism MUST allow the endpoint to negotiate the direction of the circuit-switched connection, i.e., which endpoint is active when initiating the circuit-switched connection. REQ-5: 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.) Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 4] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 REQ-6: The mechanism MUST be backwards compatible with SDP [RFC4566] and the SDP Offer/Answer Model [RFC3264] in the sense that if an endpoint offers a description of a circuit-switched audio stream in addition to a classical RTP-based audio stream, and the other endpoint supports only the classical RTP, then both endpoints can agree on the RTP-based audio stream, according to the rules in SDP offer/answer [RFC3264], and communication can still be possible. REQ-7: There MUST be a mechanism that helps an endpoint to correlate an incoming PSTN call with the one negotiated in SDP, as opposed to another incoming call that is not related to that. 4. Overview of Operation The mechanism defined in this memo extends SDP and allows describing a PSTN circuit-switched media stream in SDP. New tokens are registered in the "c=" and "m=" lines to be able to describe a PSTN circuit-switched bearer. These SDP extensions are described in Section 5.2. Since circuit-switched bearers are a sort of connection-oriented media streams, the mechanism re-uses 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.2. Additionally, this memo provides optional means for negotiating an audio stream that can be established over any of two separate bearers: a regular IP bearer using RTP [RFC3550] and a circuit- switched bearer. The endpoints agree on a given bearer and establish the media stream. This is achieved by using the SDP capability negotiation [I-D.ietf-mmusic-sdp-capability-negotiation] and the SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities], for which this memo also include an extension to express the "c=" line as a capability. This is further described in Section 5.4.1. 4.1. Example Call Flow Consider the example presented in Figure 1. In this example, Alice is located in an environment where she has access to both IP and circuit-switched bearers for communicating with other endpoints. Alice issues an SDP Offer containing two alternative audio media stream descriptions: one that uses a circuit-switched connection, and the other uses an IP bearer and RTP. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 5] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Alice Bob | (1) SDP Offer (RTP and PSTN audio) | |----------------------------------->| | | | (2) SDP Answer (PSTN audio) | |<-----------------------------------| | | | PSTN call setup | |<-----------------------------------| | | | | |<===== media over PSTN bearer =====>| | | Figure 1: Example Flow Bob receives the SDP Offer and determines that he is located in an environment where the IP based bearer is not suitable for real-time audio media, but he has PSTN circuit-switched bearer available for audio. Bob sends back an SDP Answer where he selects the circuit- switched media stream description. During the offer-answer exchange Alice and Bob also agree the direction in which the circuit-switched connection should be established. The exchange also contained identifiers or references that can be used on the circuit-switched network for addressing the other endpoint, as well as identifying that the incoming circuit- switched connection establishment is related to the ongoing session between Alice and Bob. Bob establishes a circuit-switched connection towards Alice using whatever mechanisms are defined for the network type in question. When receiving the incoming circuit-switched connection attempt, Alice is able to determine that the attempt is related to the session she has with Bob. Alice accepts the circuit-switched connection, and the circuit- switched connection setup is completed. Bob and Alice can now use the circuit-switched connection for two-way audio media. If, for some reason Bob would like to reject an offered stream, he would set the port number of the specific stream to zero, as specified in RFC3264 [RFC3264]. Also, if Bob does not understand some of the SDP attributes specified in this document, he should ignore such parameters, as specified in RFC4566 [RFC4566]. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 6] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 5. Protocol Description 5.1. Level of Compliance Implementations according to this specification MUST implement the SDP extensions described in Section 5.2, MUST implement the considerations discussed in Section 5.3, and MAY implement the mechanisms for offering alternative media streams discussed in Section 5.4.1. 5.2. Extensions to SDP This section provides the syntax and semantics of the extensions required for providing a description of circuit-switched streams in SDP. 5.2.1. Connection Data According to SDP [RFC4566], the connection data line in SDP has the following syntax: c= where indicates the network type, indicates the address type, and the 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 network type in the PSTN. The mnemonic "PSTN" is used for this network type. For the address type, we initially consider the possibility of describing E.164 telephone numbers. We define a new "E164" address type. When used, the "E164" address type indicates that the connection address contains a telephone number represented according to the ITU-T E.164 [ITU.E164.1991] specification. There are cases, though, when the endpoint is merely aware of a circuit-switched bearer, without having further information about the address type or the E.164 number allocated to it. In these cases a dash "-"is used to indicate an unknown address type or connection address. This makes the connection data line be according to the SDP syntax. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 7] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Note that and/or should not be omitted without being set to a "-" since this would violate basic syntax of SDP [RFC4566]. The following are examples of the extension to the connection data line: c=PSTN E164 +15551234 c=PSTN - - 5.2.2. Media Descriptions According to SDP [RFC4566], the media descriptions line in SDP has the following syntax: m= ... The sub-field carries the media type. Since this document deals with establishing an audio bearer, the currently defined "audio" media type is used. The sub-field is the transport port to which the media stream is sent. Circuit-switched access lacks the concept of a port number, and therefore the sub-field is set to a dash "-". The sub-field 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 sub-field is the media format description. In the classical usage of SDP to describe RTP-based media streams, when the sub-field is set to "RTP/AVP" or "RTP/SAVP", the sub- field contains the payload types as defined in the RTP audio profile [RFC3551]. In the case of circuit-switched descriptions in the PSTN, RTP is not really used. Normally, the sub-field carries the RTP payload numbers, but since the circuit-switched connection setup uses codec negotiation that is specific to used technology, listing the payload numbers or codecs is not required. Therefore, the endpoint MUST include a single dash "-" in the sub-field when describe a circuit-switched connection. Example of a media description for circuit-switched audio streams is: Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 8] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 m=audio - PSTN - 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP The endpoints should be able to correlate the circuit-switched connection with the session negotiated with SDP to avoid ringing for an incoming circuit-switched call that is related to the session controlled with SDP (and SIP). Several alternatives exist for performing this correlation. This memo provides two mutually non-exclusive correlation mechanisms. Other correlation mechanisms might exist as well, and their usage will be specified when need arises. The first mechanism is based on the exchange of PSTN caller-ID between the endpoints, which is also made available as the Calling Party ID in the circuit-switched signaling. The second mechanism is based on the inclusion in SDP of the value of the User-to-User Information Element that is part of the call setup signaling in the PSTN. Implementations MAY use any of these mechanisms and MAY use both mechanisms simultaneously. 5.2.3.1. Caller-ID Correlation Mechanism The caller-ID correlation mechanisms consists of an exchange of the calling party number in E.164 format in SDP, followed by the availability of the Calling Party Number information element in the call setup signaling of the circuit switched connection. An endpoint that is feasible to become the active party for setting up the circuit-switched bearer SHOULD include its E.164 number in the field of the "c=" line. If SDP capability negotiation framework is used, the endpoint SHOULD also include its E.164 number in the "a=ccap" capability line. The 'ccap' capability attribute and its usage in the SDP capability negotiation framework is defined in Section 5.4.1. An endpoint that acts as the passive party for setting up the circuit-switch bearer MAY include its E.164 number in the same corresponding lines, although these are not used for correlation. Examples of inclusion of E.164 numbers in the "c=" and "a=ccap" lines are: c=PSTN E164 +15551234 a=ccap:1 PSTN E164 +15551234 Please note that there are no warranties that this correlation mechanism works or is even available, due a number of problems: Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 9] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 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 Number information 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 Number information 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. For example, one can be represented in international format and the other might only contain the significant national digits. Therefore, an implementation may consider only some of the rightmost digits from the E.164 number for correlation. For example, the numbers +358-1-555-12345 and 01-555-12345 could be considered as one and the same number. This is also the behavior of some phones, which try to display the caller's name if it is stored in the phonebook. 5.2.3.2. User-User Information Element Correlation Mechanism A second correlation mechanism is based on indicating in SDP 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 [3GPP.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. The mechanism works as follows: An endpoint creates a User-User Information Element, according to the requirement of the call setup signaling protocol. The same value is included in the SDP offer or SDP answer, in a new attribute called 'corr-id', defined below. When the SDP offer/answer exchange is completed, each endpoint has become aware of the value that will be used in the User-User Information Element. 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 attempt corresponds to that indicated in the SDP. Note that, for correlation purposes, the value of the User-User Information Element is considered as a opaque string and only used for correlation purposes. Typically call signaling protocols impose requirements on the creation of User-User Information Element for end-user protocol exchange. The details regarding the generation of Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 10] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 the User-User Information Element are outside the scope of this specification. This specification defines a new SDP attribute, called 'corr-id', whose purpose is to include the User-User Information Element that the endpoint will include in the call setup attempt. The 'corr-id' attribute has the following format: a=corr-id:corr-token An endpoint that is feasible to become the active party for setting up the PSTN call SHOULD include in the 'corr-id' attribute the value of the User-User Information Element that will be used in the PSTN call setup attempt. If both the SDP offerer and the SDP answerer are able to become the active party, each one SHOULD include a correlation value. Then the party that becomes active in setting up the PSTN circuit-switched call includes this value in the User-User information element of the call signaling setup. The passive party is able to inspect the received value of User-User Information Element and correlate it with that received in the SDP in the 'corr-id' attribute. An endpoint that takes the role of the passive party for setting up the circuit-switched bearer MAY include a 'corr-id' attribute in the SDP, although it is not used for correlation purposes. Please not that there are no warranties 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 another 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.3. Considerations for Usage of Existing SDP 5.3.1. Originator of the Session According to SDP [RFC4566], the origin line in SDP has the following syntax: o= Of interest here are the and fields, which indicate the type of network and type of address, respectively. Typically, this field carries the IP address of the originator of the Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 11] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 session. Even if the SDP was used to negotiate a circuit-switched media stream, the originator is using SDP over an IP bearer. Therefore, and fields in the "o=" line should be populated with the IP address identifying the source of the signaling. 5.3.2. Determining the Direction of the Circuit-Switched Connection Setup The circuit-switched connection can typically be initiated by either endpoint. In order to avoid a situation where both endpoints attempt to initiate a connection simultaneously, the direction in which the circuit-switched connection is set up should be negotiated during the Offer/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, this specification uses the concepts in RFC 4145 [RFC4145] for establishing circuit-switched connections. 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", "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. Implementations according to this specification MUST support the 'setup' and 'connection' attributes specified in RFC 4145 [RFC4145], but applied to circuit-switched bearers in the PSTN. In order to establish a circuit-switched connection in the PSTN, the initiating endpoint needs to know the address (E.164 number) of the other endpoint. Therefore, if an endpoint wants to be able to receive incoming circuit-switched calls, it must know its E.164 number and must indicate it in SDP. As a consequence, an endpoint that is not aware of its own E.164 number cannot take the role of the passive side with respect the establishment of the circuit-switched connection. If the SDP capability negotiation mechanism is used the endpoint Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 12] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 SHOULD include the 'setup' and 'connection' attributes as capabilities of the PSTN circuit-switched bearer description, unless these two attributes are defined at session-level affecting all media-level descriptions. This implies that there would be "a=acap" lines that describe the 'setup' and 'connection' attributes. For example: a=acap:1 setup:active a=acap:2 connection:new 5.4. Extensions to and Usage of the SDP Capability Negotiation Framework 5.4.1. Offering alternative media streams In many cases where circuit-switched audio streams are described in SDP it is foreseen that circuit-switched bearers will be offered as an alternative to regular IP bearers for the same media stream. Therefore, it is reasonable to provide a mechanism to define circuit- switched bearers as an alternative to an RTP-based IP bearers. To offer an audio media stream using alternatively RTP or circuit- switched bearers, this specification reuses some of the capability attributes defined in SDP Capability Negotiation framework [I-D.ietf-mmusic-sdp-capability-negotiation] as well as in SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities]. Additionally, this memo defines a new capability attribute 'ccap' in SDP that allows to express a connection address as a capability. Section 5.4 describes the extensions to and usage of the SDP Capability Negotiation [I-D.ietf-mmusic-sdp-capability-negotiation] and SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities] for offering alternative PSTN circuit-switched media streams. Section 5.4.2 describes the usage of 'corr-id', 'setup', and 'connection' attributes in conjunction with the SDP Capability Negotiation framework [I-D.ietf-mmusic-sdp-capability-negotiation]. The 'mcap' media capability attribute defined in the SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities] lists media formats as capabilities in the form a media type and one or more subtypes. An example provided in [I-D.ietf-mmusic-sdp-media-capabilities] lists four audio media subtypes which are numbered consecutively (starting from 1 in this example). Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 13] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 a=mcap:1 audio g729 iLBC PCMU g729 Similarly, we can use the 'mcap' capability attribute to indicate media capabilities that correspond to the "m=" line defined in Section 5.2.2. a=mcap:1 audio - Here, we declare a media capability with no specific subtype. The media capability has nevertheless a number associated with it as specified in SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities]. In this example the associated number is 1. Transport Protocols can be expressed as capabilities with the 'tcap' capability attribute defined in SDP Capability Negotiation [I-D.ietf-mmusic-sdp-capability-negotiation]. The 'tcap' capability attribute lists one or more elements, defined in SDP [RFC4566]. An example of transport protocol capability indicating "PSTN" transport protocol defined in this document would thus be: a=tcap:1 PSTN In this document we define a new capability attribute: the connection address capability attribute, 'ccap'. The connection address capability lists connection addresses as capabilities, and is defined as follows: a=ccap: *[ ] where is an integer between 1 and 2^31-1 (both included) used to number the connection address capability attribute. The field consists of network type, address type and a connection address, as specified for a "c=" line in SDP [RFC4566]. As an example, to list value of "PSTN", value of "E164", and a value of "+15551234" as a connection capability attribute, we get: a=ccap:1 PSTN E164 +15551234 The 'pcfg' attribute is defined in the SDP Capabilities Negotiation [I-D.ietf-mmusic-sdp-capability-negotiation]. We extend this attribute to be able to convey one or more connection capability numbers. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 14] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 The 'pcfg' attribute has he following definition: a=pcfg: [] We extend the field to according to the following definition: pot-connection-config = connection-config-list connection-config-list = "c=" c-cap-list *(BAR c-cap-list) c-cap-list = c-cap-num *("," c-cap-num) c-cap-num = 1*DIGIT ; BAR defined in SDP capabilities ; negotiation Figure 2: Syntax of the pot-cfg-list Extension Each potential connection configuration is a comma-separated list of connection capability numbers where 'c-cap-num' refers to connection capability numbers defined explicitly by 'ccap' attributes and hence must be between 1 and 2^31-1 (both included). Alternative potential connection configurations are separated by a vertical bar ("|"). The SDP Capability Negotiation Framework provides a 'creq' attribute that lists the extensions to the framework that are required to be supported by the recipient of the SDP. The attribute lists one or more option tags that are required for the endpoints to do capabilities negotiation. SDP Capabilities Negotiation Framework [I-D.ietf-mmusic-sdp-capability-negotiation] defines the base option "cap-v0". SDP media capabilities negotiation [I-D.ietf-mmusic-sdp-media-capabilities] defines the "med-v0" option tag that indicates a requirement for media capabilities. This memo defines a new extension to the SDP Capabilities Negotiation Framework [I-D.ietf-mmusic-sdp-capability-negotiation]. Consequently, this memo defines a new option tag "pstn-v0" to the 'creq' attribute. Implementations according to this specification MUST include the "pstn-V0" and "med-v0" option tags in the 'creq' attribute when they use the SDP capability negotiation framework for negotiating circuit-switched media streams in the PSTN. Note that the base option tag "cap-v0" need not be signaled. An example SDP consisting of two alternative media stream is as follows: Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 15] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 m=audio 49170 RTP/AVP 0 8 3 c=IN IP4 192.0.2.1 a=creq:med-v0,pstn-v0 a=mcap:1 PCMU/8000/1 a=mcap:2 PCMA/8000/1 a=mcap:3 GSM/8000/1 a=mcap:4 - a=tcap:1 RTP/AVP PSTN a=ccap:1 IN IP4 192.0.2.1 a=ccap:2 PSTN E164 +15551234 a=pcfg:1 t=1 m=1,2,3 c=1 a=pcfg:2 t=2 m=4 c=2 Figure 3: Detail of SDP offer with alternative media streams In the example of Figure 3, the SDP defines a few media capabilities "a=mcap", numbered 1, 2, and 3, that specify PCMU, PCMA, and GSM format, respectively. A forth media capability "a=mcap" specifies an unknown format (used for the PSTN connection). A transport capability 1 that defines RTP/AVP, and the transport capability number 2 defines the PSTN protocol type. There are two connection capabilities "a=ccap" that define the IP and PSTN connection data, respectively. Two potential configurations are supplied, numbered 1 and 2. Potential configuration number 1, which has higher priority, defines the IP connectivity with RTP by selecting the same parameters that compose the definition in the classical "m=" and "c=" lines. Potential configuration number 2 defines a PSTN connectivity by selecting the appropriate transport, media, and connection capabilities. An example SDP answer to the offer presented in Figure 3 where PSTN audio has been selected as the actual configuration is as follows: m=audio - PSTN - c=PSTN E164 +15550987654 a=acfg:2 t=2 m=4 c=2 Figure 4: Detail of SDP answer with PSTN circuit-switched bearer selected The answer contains the "a=acfg" line selected configuration. The answer carries the accepted configuration in the "m=" and "c=" lines. 5.4.2. Using Additional Attributes with the SDP Capability Negotiation Framework Section 5.2.3.2 describes a correlation mechanism based on the usage of the User-User Information Element of the PSTN signaling protocol Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 16] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 together with a new 'corr-id' attribute. When the SDP capability negotiation framework is used in conjunction with the User-User Information Element, the endpoint MUST include the 'corr-id' attribute as a capability of the PSTN circuit-switched bearer description. This implies that there would be an "a=acap" line that describes the 'corr-id' attribute. For example: a=acap:1 corr-id:2890W284hAT452612908awudfjang908 Section 5.3.2 describes the usage of the connection-oriented media attributes 'setup' and 'connection'. When 'setup' and 'connection' attributes are used in conjunction with the SDP Capability Negotiation framework both attributes SHOULD be Included in the SDP as "a=acap" capability attributes. An exception to the rule is achieved when these attributes are equally applicable to the RTP and PSTN descriptions, in which case, they can be included in their regular format rather than as capability descriptions. 5.5. Formal Syntax The following is the formal Augmented Backus-Naur Form (ABNF) [RFC5234] syntax that supports the extensions defined in his specification. The syntax is built above the SDP [RFC4566] grammar and the SDP capability negotiation [I-D.ietf-mmusic-sdp-capability-negotiation]. Implementations according to this specification MUST implement this syntax. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 17] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 ;subrules for ccap and corr-id attribute attribute = corr-id-attr / ccap-attr ; attribute defined in RFC 4566 corr-id-attr = "corr-id:" corr-id-value corr-id-value = 1*32(ALPHA/DIGIT) ccap- attr = "ccap:" c-cap-num SP c-cap-attr c-cap-num = 1*DIGIT c-cap-attr = connection-field ; connection-field defined in RFC 4566 ; subrules for the potential configuration attribute ; according to SDP capability negotiation, included ; here to get into context (thus, commented) ; ; a=pcfg: [] ; pot-cfg-list = pot-config *(1*WSP pot-config) ; pot-config = attribute-config-list / ; transport-protocol-config-list / ; extension-config-list ; ; extension to the pot-config to include a "c=" line ; pot-config = pot-conn-config ; pot-config defined in SDP ; capability negotiation pot-conn-config = "c=" c-cap-list *(BAR c-cap-list) ; BAR defined in SDP ; capability negotiation c-cap-list = c-cap-num *("," c-cap-num) Figure 5: Syntax of the SDP extensions 6. SDP Examples Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 18] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 6.1. Basic SDP example: Single Circuit-Switched Audio Stream Alice Bob | (1) SDP Offer (PSTN audio) | |--------------------------------->| | | | (2) SDP Answer (PSTN audio) | |<---------------------------------| | | | PSTN call setup | |<---------------------------------| | | |<==== media over PSTN bearer ====>| | | Figure 6: Basic flow Figure 6 shows a basic example that describes a single audio stream over a circuit-switched bearer. The SDP offer is show in Figure 7. The endpoint describes a PSTN circuit-switched bearer in the "m=" and "c=" line where it also indicates its E.164 number. Additionally, it expresses that it can initiate the circuit-switched connection or be the recipient of it. The SDP offer also includes a correlation identifier that this endpoint will be inserting the User-User Information Element of the PSTN call setup if eventually this endpoint initiates the PSTN call. v=0 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 s= t=0 0 m=audio - PSTN - c=PSTN E164 +15551234 a=setup:actpass a=connection:new a=corr-id:2890W284hAT452612908awudfjang908 Figure 7: SDP offer (1) 6.2. PSTN Circuit-Switched Audio Bearer as an Alternative to RTP Figure 9 provides an example of SDP consisting of two alternative audio media streams, one using RTP over an IP bearer, the other using PSTN bearer. The SDP offerer describes the PCMU, PCMA, and GSM payload types for RTP usage. It also indicates that can initiate or receive the PSTN connection. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 19] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Alice Bob | (1) SDP Offer (PSTN and RTP audio) | |----------------------------------->| | | | (2) SDP Answer (PSTN audio) | |<-----------------------------------| | | | (3) SDP Offer (PSTN audio) | |----------------------------------->| | | | (4) SDP Answer (PSTN audio) | |<-----------------------------------| | | | PSTN call setup | |<-----------------------------------| | | |<===== media over PSTN bearer =====>| | | Figure 8: Flow describing alternative PSTN Circuit-Switched bearer and RTP bearer for an audio stream Figure 8 shows an example where the initial SDP offer (1) describes a single audio media stream that can be either setup over RTP or over the PSTN. This is done using the SDP capability negotiation [I-D.ietf-mmusic-sdp-capability-negotiation]. The SDP answerer (2) selects the PSTN bearer. According to SDP capability negotiation [I-D.ietf-mmusic-sdp-capability-negotiation], once an alternative media stream is selected, a new SDP offer (3) and SDP answer (4) are required ), mainly to help intermediaries which do not implement the capability negotiation mechanism. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 20] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 v=0 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 s= t=0 0 m=audio 49170 RTP/AVP 0 8 3 c=IN IP4 192.0.2.5 a=creq:med-v0,pstn-v0 a=mcap:1 PCMU/8000/1 a=mcap:2 PCMA/8000/1 a=mcap:3 GSM/8000/1 a=mcap:4 - a=tcap:1 RTP/AVP PSTN a=ccap:1 IN IP4 192.0.2.1 a=ccap:2 PSTN E164 +15551234 a=acap:1 corr-id:2890W284hAT452612908awudfjang908 a=acap:2 setup:actpass a=acap:3 connection:new a=pcfg:1 t=1 m=1,2,3 c=1 a=pcfg:2 t=2 m=4 c=2 a=1,2,3 Figure 9: Example of an SDP offer with alternative media streams The SDP answerer replies with the SDP of Figure 10 where the PSTN audio stream is selected. v=0 o=- 2890973824 2890987289 IN IP4 192.0.2.7 s= t=0 0 m=audio - PSTN - c=PSTN - - a=acfg:2 a=setup:active a=connection:new a=corr-id:2890W284hAT452612908awudfjang908 Figure 10: Example of an SDP answer with PSTN Circuit-Switched bearer selected 7. IANA Considerations This document instructs IANA to register a number of SDP tokens according to the following data. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 21] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 7.1. Registration of new corr-id SDP attribute Contact. Miguel Garcia Phone: +358 71400 4000 Attribute name: corr-id Long-form attribute name: PSTN Correlation Identifier Type of attribute: media level only This attribute is subject to the charset attribute Description: This attribute provides the Correlation Identifier used in PSTN signaling Specification: RFC XXXX 7.2. Registration of a new "nettype" value This memo provides instructions to IANA to register a new "nettype" in the Session Description Protocol Parameters registry [1]. The registration data, according to RFC 4566 [RFC4566] follows. Type SDP Name Reference ---- ------------------ --------- nettype PSTN [RFCxxxx] 7.3. Registration of new "addrtype" values This memo provides instructions to IANA to register a new "addrtype" in the Session Description Protocol Parameters registry [1]. The registration data, according to RFC 4566 [RFC4566] follows. Type SDP Name Reference ---- ------------------ --------- addrtype E164 [RFCxxxx] - [RFCxxxx] 7.4. Registration of a new "proto" value This memo provides instructions to IANA to register a new "proto" in the Session Description Protocol Parameters registry [1]. The registration data, according to RFC 4566 [RFC4566] follows. Type SDP Name Reference -------------- --------------------------- --------- Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 22] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 proto PSTN [RFCxxxx] 7.5. Registration of a new Capability Negotiation Option Tag This memo instructs IANA to register a new option tag in the SDP Capability Negotiation Option Tag registry, according to the following data:. Option Tag name: pstn-v0 Reference: [RFCxxxx] 8. Security Considerations This document provides an extension on top of RFC 4566 [RFC4566], RFC 3264 [RFC3264], SDP capability negotiation [I-D.ietf-mmusic-sdp-capability-negotiation], SDP Media Capabilities Negotiation [I-D.ietf-mmusic-sdp-media-capabilities]. As such, the security considerations of those documents apply. 9. Acknowledgments The authors want to thank Flemming Andreasen, Thomas Belling, Jari Mutikainen, Miikka Poikselka, Jonathan Rosenberg, and Ingemar Johansson for providing their insight and comments on this document. 10. References 10.1. Normative References [I-D.ietf-mmusic-sdp-capability-negotiation] Andreasen, F., "SDP Capability Negotiation", draft-ietf-mmusic-sdp-capability-negotiation-08 (work in progress), December 2007. [I-D.ietf-mmusic-sdp-media-capabilities] Gilman, R. and F. Andreasen, "SDP media capabilities Negotiation", draft-ietf-mmusic-sdp-media-capabilities-03 (work in progress), February 2008. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the Session Description Protocol (SDP) for ATM Bearer Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 23] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Connections", RFC 3108, May 2001. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [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. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. 10.2. Informative References [3GPP.24.008] 3GPP, "Mobile radio interface Layer 3 specification; Core network protocols; Stage 3", 3GPP TS 24.008 3.20.0, December 2005. [ITU.E164.1991] International Telecommunications Union, "The International Public Telecommunication Numbering Plan", ITU- T Recommendation E.164, 1991. [ITU.Q931.1998] "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN User - Network Interface Layer 3 Specification for Basic Call Control", ISO Standard 9594-1, May 1998. [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. [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message Session Relay Protocol (MSRP)", RFC 4975, September 2007. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 24] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 URIs [1] Authors' Addresses Miguel Garcia-Martin Nokia Siemens Networks P.O. Box 6 Nokia Siemens Networks, FIN 02022 Finland Phone: +358-71400-4000 Email: miguel.garcia@nsn.com Simo Veikkolainen Nokia Siemens Networks P.O. Box 6 Nokia Siemens Networks, FIN 02022 Finland Phone: +358 50 486 4463 Email: simo.veikkolainen@nsn.com Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 25] Internet-Draft PSTN Circuit-Switched Bearers in SDP April 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Garcia-Martin & Veikkolainen Expires October 17, 2008 [Page 26]