idnits 2.17.1 draft-ietf-mmusic-sdp-cs-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 6 characters in excess of 72. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 22, 2010) is 4967 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFCxxxx' is mentioned on line 939, but not defined ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MMUSIC WG M. Garcia-Martin 3 Internet-Draft Ericsson 4 Intended status: Standards Track S. Veikkolainen 5 Expires: February 23, 2011 Nokia 6 August 22, 2010 8 Session Description Protocol (SDP) Extension For Setting Up Audio and 9 Video Media Streams Over Circuit-Switched Bearers In The Public 10 Switched Telephone Network (PSTN) 11 draft-ietf-mmusic-sdp-cs-04 13 Abstract 15 This memo describes use cases, requirements, and protocol extensions 16 for using the Session Description Protocol (SDP) Offer/Answer model 17 for establishing audio and video media streams over circuit-switched 18 bearers in the Public Switched Telephone Network (PSTN). 20 Status of this Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on February 23, 2011. 37 Copyright Notice 39 Copyright (c) 2010 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 This document may contain material from IETF Documents or IETF 53 Contributions published or made publicly available before November 54 10, 2008. The person(s) controlling the copyright in some of this 55 material may not have granted the IETF Trust the right to allow 56 modifications of such material outside the IETF Standards Process. 57 Without obtaining an adequate license from the person(s) controlling 58 the copyright in such materials, this document may not be modified 59 outside the IETF Standards Process, and derivative works of it may 60 not be created outside the IETF Standards Process, except to format 61 it for publication as an RFC or to translate it into languages other 62 than English. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 67 2. Conventions Used in This Document . . . . . . . . . . . . . . 5 68 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 5 69 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 6 70 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 6 71 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 8 72 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 8 73 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 8 74 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 8 75 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 9 76 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 77 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 10 78 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 11 79 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 11 80 5.2.3.3. User-User Information Element Correlation 81 Mechanism . . . . . . . . . . . . . . . . . . . . 12 82 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 13 83 5.2.3.5. Negotiating the used correlation mechanisms . . . 15 84 5.3. Considerations for Usage of Existing SDP . . . . . . . . . 17 85 5.3.1. Originator of the Session . . . . . . . . . . . . . . 17 86 5.3.2. Contact information . . . . . . . . . . . . . . . . . 17 87 5.3.3. Determining the Direction of the Circuit-Switched 88 Connection Setup . . . . . . . . . . . . . . . . . . . 17 89 5.4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 18 90 6. SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . . 19 91 6.1. Basic SDP example: Single Circuit-Switched Audio Stream . 20 92 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 93 7.1. Registration of new correlation SDP attribute . . . . . . 21 94 7.2. Registration of a new "nettype" value . . . . . . . . . . 21 95 7.3. Registration of new "addrtype" values . . . . . . . . . . 21 96 7.4. Registration of a new "proto" value . . . . . . . . . . . 21 97 8. Security Considerations . . . . . . . . . . . . . . . . . . . 22 98 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 99 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22 100 10.1. Normative References . . . . . . . . . . . . . . . . . . . 22 101 10.2. Informative References . . . . . . . . . . . . . . . . . . 23 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 24 104 1. Introduction 106 The Session Description Protocol (SDP) [RFC4566] is intended for 107 describing multimedia sessions for the purposes of session 108 announcement, session invitation, and other forms of multimedia 109 session initiation. SDP is most commonly used for describing media 110 streams that are transported over the Real-Time Transport Protocol 111 (RTP) [RFC3550], using the profiles for audio and video media defined 112 in RTP Profile for Audio and Video Conferences with Minimal Control 113 [RFC3551]. 115 However, SDP can be used to describe other transport protocols than 116 RTP. Previous work includes SDP conventions for describing ATM 117 bearer connections [RFC3108] and the Message Session Relay Protocol 118 [RFC4975]. 120 SDP is commonly carried in Session Initiation Protocol (SIP) 121 [RFC3261] messages in order to agree on a common media description 122 among the endpoints. An Offer/Answer Model with Session Description 123 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 124 can exchange SDP media descriptions and come to an agreement as to 125 which media streams should be used, along with the media related 126 parameters. 128 In some scenarios it might be desirable to establish the media stream 129 over a circuit-switched bearer connection even if the signaling for 130 the session is carried over an IP bearer. An example of such a 131 scenario is illustrated with two mobile devices capable of both 132 circuit-switched and packet-switched communication over a low- 133 bandwidth radio bearer. The radio bearer may not be suitable for 134 carrying real-time audio or video media, and using a circuit-switched 135 bearer would offer, however, a better perceived quality of service. 136 So, according to this scenario, SDP and its higher layer session 137 control protocol (e.g., the Session Initiation Protocol (SIP) 138 [RFC3261]) are used over regular IP connectivity, while the audio or 139 video is received through the classical circuit-switched bearer. 141 Setting up a signaling relationship in the IP domain instead of just 142 setting up a circuit-switched call offers also the possibility of 143 negotiating in the same session other IP based media that is not 144 sensitive to jitter and delay, for example, text messaging or 145 presence information. 147 At a later point in time the mobile device might move to an area 148 where a high-bandwidth packet-switched bearer, for example a Wireless 149 Local Area Network (WLAN) connection, is available. At this point 150 the mobile device may perform a handover and move the audio or video 151 media streams over to the high-speed bearer. This implies a new 152 exchange of SDP offer/answer that lead to a re-negotiation of the 153 media streams. 155 Other use cases exists. For example, and endpoint might have at its 156 disposal circuit-switch and packet-switched connectivity, but the 157 audio or video codecs are not the same in both access networks. 158 Consider that the circuit-switched audio or video stream supports 159 narrow-bandwidth codecs, while the packet-switched access allows any 160 other audio or video codec implemented in the endpoint. In this 161 case, it might be beneficial for the endpoint to describe different 162 codecs for each access type and get an agreement on the bearer 163 together with the remote endpoint. 165 There are additional use cases related to third party call control 166 where the session setup time is improved when the circuit-switched 167 bearer in the PSTN is described together with one or more codecs. 169 The rest of the document is structured as follows: Section 2 provides 170 the document conventions, Section 3 introduces the requirements, 171 Section 4 presents an overview of the proposed solutions, and 172 Section 5 contains the protocol description. Section 6 provides an 173 example of descriptions of circuit-switched audio or video streams in 174 SDP. Section 7 and Section 8 contain the IANA and Security 175 considerations, respectively. 177 2. Conventions Used in This Document 179 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 180 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 181 document are to be interpreted as described in BCP 14, RFC 2119 182 [RFC2119] and indicate requirement levels for compliant 183 implementations. 185 3. Requirements 187 This section presents the general requirements that are specific for 188 the audio or video media stream over circuit-switched bearers. 190 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 191 or video media stream established over a circuit-switched 192 bearer MUST be available. 194 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 195 switched audio or video media streams with other 196 complementary media streams, for example, text messaging. 198 REQ-3: The mechanism MUST allow the endpoint to negotiate the 199 direction of the circuit-switched connection, i.e., which 200 endpoint is active when initiating the circuit-switched 201 connection. 203 REQ-4: The mechanism MUST be independent of the type of the circuit- 204 switched access (e.g., Integrated Services Digital Network 205 (ISDN), Global System for Mobile Communication (GSM), etc.) 207 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 208 an incoming circuit-switched bearer with the one negotiated 209 in SDP, as opposed to another incoming call that is not 210 related to that. 212 REQ-6: It must be possible for endpoints to advertise different list 213 of audio or video codecs in the circuit-switched audio or 214 video stream from those used in a packet-switched audio or 215 video stream. 217 REQ-7: It must be possible for endpoints to not advertise the list 218 of available codecs for circuit-switched audio or video 219 streams. 221 4. Overview of Operation 223 The mechanism defined in this memo extends SDP and allows describing 224 an audio or video media stream established over a circuit-switched 225 bearer. New tokens are registered in the "c=" and "m=" lines to be 226 able to describe a media stream over a circuit-switched bearer. 227 These SDP extensions are described in Section 5.2. Since circuit- 228 switched bearers are a sort of connection-oriented media streams, the 229 mechanism re-uses the connection-oriented extensions defined in RFC 230 4145 [RFC4145] to negotiate the active and passive sides of a 231 connection setup. This is further described in Section 5.3.3. 233 4.1. Example Call Flow 235 Consider the example presented in Figure 1. In this example, Alice 236 is located in an environment where she has access to both IP and 237 circuit-switched bearers for communicating with other endpoints. 238 Alice decides that the circuit-switched bearer offers a better 239 perceived quality of service for voice, and issues an SDP Offer 240 containing the description of an audio media stream over circuit- 241 switched bearer. 243 Alice Bob 244 | (1) SDP Offer (PSTN audio) | 245 |----------------------------------->| 246 | | 247 | (2) SDP Answer (PSTN audio) | 248 |<-----------------------------------| 249 | | 250 | PSTN call setup | 251 |<-----------------------------------| 252 | | 253 | | 254 |<===== media over PSTN bearer =====>| 255 | | 257 Figure 1: Example Flow 259 Bob receives the SDP offer and determines that he is located in an 260 environment where the IP based bearer is not suitable for real-time 261 audio media. However he also has PSTN circuit-switched bearer 262 available for audio. Bob generates an SDP answer containing a 263 description of the audio media stream over a circuit-switched bearer. 265 During the offer-answer exchange Alice and Bob also agree the 266 direction in which the circuit-switched connection should be 267 established. The exchange also contains identifiers or references 268 that can be used on the circuit-switched network for addressing the 269 other endpoint, as well as identifying that the incoming circuit- 270 switched bearer establishment is related to the ongoing session 271 between Alice and Bob. 273 Bob establishes a circuit-switched bearer towards Alice using 274 whatever mechanisms are defined for the network type in question. 275 When receiving the incoming circuit-switched connection attempt, 276 Alice is able to determine that the attempt is related to the session 277 she is just establishing with Bob. 279 Alice accepts the circuit-switched connection; the circuit-switched 280 bearer setup is completed. Bob and Alice can now use the circuit- 281 switched connection for two-way audio media. 283 If, for some reason, Bob would like to reject the offered stream, he 284 would set the port number of the specific stream to zero, as 285 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 286 some of the SDP attributes specified in this document, he would 287 ignore them, as specified in RFC4566 [RFC4566]. 289 5. Protocol Description 291 5.1. Level of Compliance 293 Implementations according to this specification MUST implement the 294 SDP extensions described in Section 5.2, and MUST implement the 295 considerations discussed in Section 5.3. 297 5.2. Extensions to SDP 299 This section provides the syntax and semantics of the extensions 300 required for providing a description of audio or video media streams 301 over circuit-switched bearers in SDP. 303 5.2.1. Connection Data 305 According to SDP [RFC4566], the connection data line in SDP has the 306 following syntax: 308 c= 310 where indicates the network type, indicates the 311 address type, and the is the connection address, 312 which is dependent on the address type. 314 At the moment, the only network type defined is "IN", which indicates 315 Internet network type. The address types "IP4" and "IP6" indicate 316 the type of IP addresses. 318 This memo defines a new network type for describing a circuit- 319 switched bearer network type in the PSTN. The mnemonic "PSTN" is 320 used for this network type. 322 For the address type, we initially consider the possibility of 323 describing E.164 telephone numbers. We define a new "E164" address 324 type. When used, the "E164" address type indicates that the 325 connection address contains a telephone number represented according 326 to the ITU-T E.164 [ITU.E164.1991] recommendation. 328 There are cases, though, when the endpoint is merely aware of a 329 circuit-switched bearer, without having further information about the 330 address type or the E.164 number allocated to it. In these cases a 331 dash "-" is used to indicate an unknown address type or connection 332 address. This makes the connection data line be according to the SDP 333 syntax. 335 Note that and/or should not be 336 omitted without being set to a "-" since this would violate basic 337 syntax of SDP [RFC4566]. 339 The following are examples of the extension to the connection data 340 line: 342 c=PSTN E164 +15551234 344 c=PSTN - - 346 5.2.2. Media Descriptions 348 According to SDP [RFC4566], the media descriptions line in SDP has 349 the following syntax: 351 m= ... 353 The sub-field carries the media type. For establishing an 354 audio bearer, the existing "audio" media type is used. For 355 establishing a video bearer, the existing "video" media type is used. 357 The sub-field is the transport port to which the media stream 358 is sent. Circuit-switched access lacks the concept of a port number, 359 and therefore the sub-field is set to the discard port "9". 361 According to RFC 3264 [RFC3264], a port number of zero in the offer 362 of a unicast stream indicates that the stream is offered but must not 363 be used. If a port number of zero is present in the answer of a 364 unicast stream, it indicates that the stream is rejected. These 365 rules are still valid when the media line in SDP represents a 366 circuit-switched bearer. 368 The sub-field is the transport protocol. The circuit- 369 switched bearer uses whatever transport protocol it has available. 370 This subfield SHOULD be set to the mnemonic "PSTN" to be 371 syntactically correct with SDP [RFC4566] and to indicate the usage of 372 circuit-switched protocols in the PSTN. 374 The sub-field is the media format description. In the 375 classical usage of SDP to describe RTP-based media streams, when the 376 sub-field is set to "RTP/AVP" or "RTP/SAVP", the sub- 377 field contains the payload types as defined in the RTP audio profile 378 [RFC3551]. 380 In the case of circuit-switched descriptions, RTP is not really used. 381 Rather than specifying the RTP audio/video profile payload type, we 382 use the sub-field to indicate the list of available media types 383 over the circuit-switched bearer. Therefore, the sub-field MAY 384 indicate one or more available audio or video codecs for a circuit- 385 switched audio or video stream. We use the classical RTP audio and 386 video media types, even when applied to PSTN circuit-switched 387 bearers, the media type merely represents an audio or video codec. 389 However, in some cases, the endpoint is not able to determine the 390 list of available codecs for circuit-switched media streams. In this 391 case, in order to be syntactically compliant with SDP [RFC4566], the 392 endpoint MUST include a single dash "-" in the sub-field. 394 As per RFC 4566 [RFC4566], the media format descriptions are listed 395 in priority order. 397 Example of a media description for circuit-switched audio streams is: 399 m=audio 9 PSTN 3 0 8 401 m=audio 9 PSTN - 403 Similarly, an example of a media description for circuit-switched 404 video stream is: 406 m=video 9 PSTN 34 408 m=video 9 PSTN - 410 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 412 The endpoints should be able to correlate the circuit-switched bearer 413 with the session negotiated with SDP to avoid ringing for an incoming 414 circuit-switched bearer that is related to the session controlled 415 with SDP (and SIP). 417 Several alternatives exist for performing this correlation. This 418 memo provides three mutually non-exclusive correlation mechanisms. 419 Other correlation mechanisms might exist as well, and their usage 420 will be specified when need arises. All mechanisms share the same 421 principles: some unique information is sent in the SDP and in the 422 circuit-switched signaling protocol. If these pieces of information 423 match, then the circuit-switched bearer is part of the session 424 described in the SDP exchange. Otherwise, there is no guarantee that 425 the circuit-switched bearer is related to such session. 427 The first mechanism is based on the exchange of PSTN caller-ID 428 between the endpoints. The caller-ID is also available as the 429 Calling Party ID in the circuit-switched signaling. 431 The second mechanism is based on the inclusion in SDP of a value that 432 is also sent in the User-to-User Information Element that is part of 433 the bearer setup signaling in the PSTN. 435 The third mechanism is based on sending in SDP a string that 436 represents Dual Tone MultiFrequency (DTMF) digits that will be later 437 sent right after the circuit-switched bearer is established. 438 Implementations MAY use any of these mechanisms and MAY use two or 439 more mechanisms simultaneously. 441 5.2.3.1. The "cs-correlation" attribute 443 In order to provide support for the correlation mechanisms, we define 444 a new SDP attribute called "cs-correlation". This "cs-correlation" 445 attribute can include any of the "callerid", "uuie", or "dtmf" 446 parameters, which specify additional information required by the 447 Caller-ID, User to User Information, or DTMF correlation mechanisms, 448 respectively. The list of correlation mechanisms may be extended by 449 other specifications. 451 The following sections provide more detailed information of these 452 parameters. The "cs-correlation" attribute has the following format: 454 "a=cs-correlation: "callerid:" | 455 "uuie:" | 456 "dtmf:" 458 The values "callerid", "uuie" and "dtmf" refer to the correlation 459 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 460 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 461 Format (ABNF) syntax of the "cs-correlation" attribute is presented 462 in Section 5.4. 464 5.2.3.2. Caller-ID Correlation Mechanism 466 The Caller-ID correlation mechanisms consists of an exchange of the 467 calling party number in E.164 format in SDP, followed by the 468 availability of the Calling Party Number information element in the 469 call setup signaling of the circuit switched connection. If both 470 pieces of information match, the circuit-switched bearer is 471 correlated to the session described in SDP. 473 An endpoint that is feasible to become the active party for setting 474 up the circuit-switched bearer and is willing to send the Calling 475 Party Number in the PSTN signaling SHOULD add a "callerid" parameter 476 in the "cs-correlation" attribute of the SDP offer or answer, and 477 SHOULD include as the value the E.164 number that will be presented 478 in the Calling Party Number in the PSTN signaling. 480 An endpoint that acts as the passive party for setting up the 481 circuit-switch bearer SHOULD add a "callerid" parameter in the "cs- 482 correlation" attribute of the SDP if it supports the mechanism, and 483 MAY include the E.164 number that will be presented in the circuit- 484 switched bearer in the same corresponding lines, although these are 485 not used for correlation. 487 Example of inclusion of E.164 number in the "cs-correlation" 488 attribute is: 490 a=cs-correlation:callerid:+15551234 492 Please note that there are no warranties that this correlation 493 mechanism works or is even available, due a number of problems: 495 o The endpoint might not be aware of its own E.164 number, in which 496 case it cannot populate the SDP appropriately. 498 o The Calling Party Number information element in the circuit- 499 switched signaling might not be available, e.g., due to policy 500 restrictions of the network operator or caller restriction due to 501 privacy. 503 o The Calling Party Number information element in the circuit- 504 switched signaling might be available, but the digit 505 representation of the E.164 number might differ from the one 506 expressed in the SDP. For example, one can be represented in 507 international format and the other might only contain the 508 significant national digits. To mitigate this problem 509 implementations should consider only some of the rightmost digits 510 from the E.164 number for correlation. For example, the numbers 511 +358-1-555-12345 and 01-555-12345 could be considered as the same 512 number. This is also the behavior of some cellular phones, which 513 correlate the incoming calling party with a number stored in the 514 phone book, for the purpose of displaying the caller's name. 516 5.2.3.3. User-User Information Element Correlation Mechanism 518 A second correlation mechanism is based on indicating in SDP a string 519 that represents the User-User Information Element that is part of the 520 call setup signaling of the circuit-switched bearer. The User-User 521 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 522 3GPP TS 24.008 [3GPP.24.008], among others. The User-User 523 Information Element has a maximum size of 35 or 131 octets, depending 524 on the actual message of the PSTN protocol where it is included. 526 The mechanism works as follows: An endpoint creates a User-User 527 Information Element, according to the requirements of the call setup 528 signaling protocol. The same value is included in the SDP offer or 529 SDP answer, in a "cs-correlation:uuie" attribute. When the SDP 530 offer/answer exchange is completed, each endpoint has become aware of 531 the value that will be used in the User-User Information Element of 532 the call setup message of the PSTN protocol. The endpoint that 533 initiates the call setup attempt includes this value in the User-User 534 Information Element. The recipient of the call setup attempt can 535 extract the User-User Information Element and correlate it with the 536 value previously received in the SDP. If both values match, then the 537 call setup attempt corresponds to that indicated in the SDP. 539 Note that, for correlation purposes, the value of the User-User 540 Information Element is considered as a opaque string and only used 541 for correlation purposes. Typically call signaling protocols impose 542 requirements on the creation of User-User Information Element for 543 end-user protocol exchange. The details regarding the generation of 544 the User-User Information Element are outside the scope of this 545 specification. 547 An endpoint that is feasible to become the active party for setting 548 up the PSTN call and is willing to send the User-User Information 549 Element in the PSTN signaling SHOULD add a "uuie" parameter in the 550 "cs-correlation" attribute of the SDP offer or answer. This "uuie" 551 parameter SHOULD include the value of the User-User Information 552 Element that will be used in the call setup attempt. 554 An endpoint that takes the role of the passive party for setting up 555 the circuit-switched bearer SHOULD include include a "uuie" parameter 556 in the "cs-correlation" attribute in the SDP, if it supports the UUI 557 mechanism. It MAY also add a value for the "uuie" parameter although 558 it is not used for correlation purposes. 560 Please note that there are no warranties that this correlation 561 mechanism works. On one side, policy restrictions might not make the 562 User-User information available end to end in the PSTN. On the other 563 hand, the generation of the User-User Information Element is 564 controlled by the PSTN circuit-switched call protocol, which might 565 not offer enough freedom for generating different values from one 566 endpoint to another one, or from one call to another in the same 567 endpoint. This might result in the same value of the User-User 568 Information Element for all calls. 570 5.2.3.4. DTMF Correlation Mechanism 572 We introduce a third mechanism for correlating the circuit-switched 573 bearer with the session controlled with SDP. This is based on 574 agreeing on a sequence of digits that are negotiated in the SDP 575 Offer/Answer exchange and sent as Dual Tone Multifrequency 576 (DTMF)tones over the circuit-switched bearer once this bearer is 577 established. If the DTMF digit sequence received through the 578 circuit-switched bearer matches the digit string negotiated in the 579 SDP, the circuit-switched bearer is correlated with the session 580 described in the SDP. The mechanism is similar to many voice 581 conferencing systems which require the user to enter a PIN code using 582 DTMF tones in order to be accepted in a voice conference. 584 The mechanism works as follows: An endpoint selects a DTMF digit 585 sequence. The same sequence is included in the SDP offer or SDP 586 answer, in a "cs-correlation:dtmf" attribute. When the SDP offer/ 587 answer exchange is completed, each endpoint has become aware of the 588 DTMF sequence that will be sent right after the circuit-switched 589 bearer is set up. The endpoint that initiates the call setup attempt 590 sends the DTMF digits as per the procedures defined for the circuit- 591 switched bearer technology used. The recipient (passive side of the 592 bearer setup) of the call setup attempt collects the digits and 593 correlates them with the value previously received in the SDP. If 594 the digits match, then the call setup attempt corresponds to that 595 indicated in the SDP. 597 An endpoint that is feasible to become the active party for setting 598 up the PSTN call and is willing to send the DTMF digits after 599 circuit-switched bearer cut-through SHOULD include a "dtmf" parameter 600 in the "cs-correlation" attribute of the SDP offer or answer. The 601 value of the "dtmf" parameter SHOULD contain up to 32 randomly 602 selected DTMF digits (numbers 0-9, characters A-D, "#" and "*"). 604 Implementations are advised to select a number of DTMF digits that 605 provide enough assurance that the call is related, but on the 606 other hand do not prolong the bearer setup time unnecessarily. 608 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 609 would include a "cs-correlation" attribute line as follows: 611 a=cs-correlation:dtmf:14D*3 613 An endpoint that takes the role of the passive party for setting up 614 the circuit-switched bearer SHOULD include include a "dtmf" parameter 615 in the "cs-correlation" attribute in the SDP, if it supports the 616 mechanism. It MAY also add a value for the "dtmf" parameter although 617 it is not used for correlation purposes. 619 Once the circuit-switched bearer is successfully set up, the active 620 side MUST send DTMF digits according to the circuit-switched bearer 621 technology used. The values and number of the DTMF digits MUST match 622 those that were agreed during SDP negotiation. 624 The passive side of the circuit-switched connection setup MUST be 625 prepared to receive and collect DTMF digits once the circuit-switched 626 bearer is set up. The received DTMF digits are compared to the value 627 of the "dtmf" parameter of the "cs-correlation" attribute that the 628 the active side sent during SDP offer/answer exchange. If the 629 received DTMF digits match the value of the "dtmf" parameter in the 630 "cs-correlation" attribute, the call SHOULD be treated as correlated 631 to the ongoing session. 633 If the offerer and answerer successfully agree on the usage of the 634 DTMF digit correlation mechanism, but the passive side does not 635 receive any DTMF digits after successful circuit-switched bearer 636 setup, or receives a set of DTMF digits that do not match the value 637 of the "dtmf" attribute (including receving too many digits), the 638 passive side SHOULD treat the circuit-switched bearer as not 639 correlated to the ongoing session. 641 DTMF digits can only be sent once the circuit-switched bearer is 642 set up. In order to suppress alerting for an incoming circuit- 643 switched call, implementations may choose various mechanisms. For 644 example, alerting may be suppressed for a certain time period for 645 incoming call attempts that originate from the number that was 646 observed during the offer/answer negotiation. 648 5.2.3.5. Negotiating the used correlation mechanisms 650 The three correlation mechanisms presented above (based on called 651 party number, User-User Information Element and DTMF digit sending) 652 are non-exclusive, and can be used independently of each other. 654 In order to agree which correlation mechanisms are supported by each 655 endpoint, we define a negotiation mechanism similar to the one 656 defined for codec negotiation. 658 In some cases an endpoint may support the correlation mechanism, but 659 it is not willing to become the active party in the circuit-switched 660 bearer establishment. 662 If the offerer supports any of the correlation mechanisms defined in 663 this memo, it SHOULD include an attribute line "a=cs-correlation" in 664 the SDP offer. The "a=cs-correlation" line contains an enumeration 665 of the correlation mechanisms supported by the offerer, in the format 666 of parameters. The current list of parameters include "callerid", 667 "uuie" and "dtmf" and they refer to the correlation mechanisms 668 defined in Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, 669 respectively. For example, if an endpoint is willing to use the 670 User-User Information element and DTMF digit sending mechanisms, it 671 includes the following line to the SDP: 673 a=cs-correlation:uuie dtmf 675 The answerer, when generating the answer, SHOULD select those 676 correlation mechanisms it supports, and include an "a=cs-correlation" 677 attribute line in the answer containing those mechanisms it supports. 678 The answerer MUST NOT add any mechanism which was not included in the 679 offer. 681 If the answer does not contain an "a=cs-correlation" attribute line, 682 the offerer MUST interpret this as an indication that the anwerer 683 does not support any of the correlation mechanisms for this session. 685 If, in addition to supporting any of the correlation mechanisms, an 686 endpoint is willing to assume the role of the active party in 687 establishing the circuit-switched bearer, it MUST add a parameter 688 value to the supported mechanisms. For example, if the endpoint 689 supports and is willing to send the User-User Information element and 690 DTMF digits, it includes the following line to the SDP offer: 692 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 dtmf:14D*3 694 The answerer SHOULD select those correlation mechanisms it supports 695 and is willing to use, and include respective parameter values. If 696 the answerer supports but is not willing to use some of the 697 mechanisms (for example, due to not being able to become the active 698 endpoint when setting up the circuit-switched bearer), it SHOULD 699 include the respective parameter, but MUST NOT add a value to the 700 parameter. 702 Note that, as stated above, it cannot be guaranteed that any given 703 correlation mechanism will succeed even if the usage of those was 704 agreed beforehand. This is due to the fact that the correlation 705 mechanisms require support from the circuit-switched bearer 706 technology used. 708 Therefore, even a single positive indication using any of these 709 mechanisms SHOULD be interpreted by the passive endpoint so that the 710 circuit-switched bearer establishment is related to the ongoing 711 session, even if the other correlation mechanisms fail. 713 If, after negotiating one or more correlation mechanisms in the SDP 714 offer/answer exchange, an endpoint receives a circuit-switched call 715 with no correlation information present, the endpoint has two 716 choices: it can either treat the call as unrelated, or treat the call 717 as related to the ongoing session in the IP domain. 719 An endpoint may for example specify a time window after SDP offer/ 720 answer exchange during which received calls are treated as correlated 721 even if the signalling in the circuit-switched domain does not carry 722 any correlation information. In this case, there is a chance that 723 the call is erroneously treated as related to the ongoing session. 725 An endpoint may also choose to always treat an incoming call as 726 unrelated if the signalling in the circuit-switched domain does not 727 carry any correlation information. In this case, there is a chance 728 that the call is erroneously treated as unrelated. 730 Since, in these cases, no correlation information can be deduced from 731 the signalling, it is up to the implementation to decide how to 732 behave. One option is also to let the user decide whether to accept 733 the call as related, or to treat the call as unrelated. 735 5.3. Considerations for Usage of Existing SDP 737 5.3.1. Originator of the Session 739 According to SDP [RFC4566], the origin line in SDP has the following 740 syntax: 742 o= 743 745 Of interest here are the and fields, which 746 indicate the type of network and type of address, respectively. 747 Typically, this field carries the IP address of the originator of the 748 session. Even if the SDP was used to negotiate an audio or video 749 media stream transported over a circuit-switched bearer, the 750 originator is using SDP over an IP bearer. Therefore, and 751 fields in the "o=" line should be populated with the IP 752 address identifying the source of the signaling. 754 5.3.2. Contact information 756 SDP [RFC4566] defines the "p=" line which may include the phone 757 number of the person reponsible for the conference. Even though this 758 line can carry a phone number, it is not suited for the purpose of 759 defining a connection address for the media. Therefore, we have 760 selected to define the PSTN specific connection addresses in the "c=" 761 line. 763 5.3.3. Determining the Direction of the Circuit-Switched Connection 764 Setup 766 Either endpoint can initiate the establishment of the circuit- 767 switched bearer. In order to avoid a situation where both endpoints 768 attempt to initiate a connection simultaneously, the direction in 769 which the circuit-switched bearer is set up should be negotiated 770 during the Offer/Answer exchange. 772 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 773 agree which endpoint acts as the active endpoint when initiating a 774 TCP connection. While RFC 4145 [RFC4145] was originally designed for 775 establishing TCP connections, it is easily extrapolated to the 776 connection establishment of circuit-switched bearers. This 777 specification uses the concepts specified in RFC 4145 [RFC4145] for 778 agreeing on the direction of establishment of a circuit-switched 779 bearer. 781 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 782 "connection". The "setup" attribute indicates which of the endpoints 783 should initiate the connection establishment of the PSTN circuit- 784 switched bearer. Four values are defined in Section 4 of RFC 4145 785 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 786 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 787 attribute. 789 The "connection" attribute indicates whether a new connection is 790 needed or an existing connection is reused. The attribute can take 791 the values "new" or "existing". Please refer to Section 5 of RFC 792 4145 [RFC4145] for a detailed description of this attribute. 794 Implementations according to this specification MUST support the 795 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 796 but applied to circuit-switched bearers in the PSTN. 798 In order to establish a circuit-switched connection in the PSTN, the 799 initiating endpoint needs to know the address (E.164 number) of the 800 other endpoint. Therefore, if an endpoint wants to be able to 801 receive incoming circuit-switched calls, it must know its E.164 802 number and must indicate it in SDP. As a consequence, an endpoint 803 that is not aware of its own E.164 number cannot take the role of the 804 passive side with respect the establishment of the circuit-switched 805 connection. 807 5.4. Formal Syntax 809 The following is the formal Augmented Backus-Naur Form (ABNF) 810 [RFC5234] syntax that supports the extensions defined in this 811 specification. The syntax is built above the SDP [RFC4566] grammar. 812 Implementations according to this specification MUST be compliant 813 with this syntax. 815 Figure 2 shows the formal syntax of the extensions defined in this 816 memo. 818 ; extension to the connection field originally specified 819 ; in RFC 4566 821 connection-field = [%x63 "=" nettype SP addrtype SP 822 connection-address CRLF] 823 ;nettype and addrtype are defined in RFC 4566 825 connection-address /= e164-address / "-" 826 e164-address = ["+"] 1*15DIGIT 827 ; DIGIT is specified in RFC 5234 829 ;subrules for correlation attribute 830 attribute /= cs-correlation-attr 831 ; attribute defined in RFC 4566 832 cs-correlation-attr= "cs-correlation:" corr-mechanisms 833 corr-mechanisms = corr-mech *(SP corr-mech) 834 corr-mech = caller-id-mech / uuie-mech / dtmf-mech / ext-mech 835 caller-id-mech = "callerid" [":" caller-id-value] 836 caller-id-value = ["+"] 1*DIGIT 837 uuie-mech = "uuie" [":" uuie-value] 838 uuie-value = 1*32(ALPHA/DIGIT) 839 dtmf-mech = "dtmf" [":" dtmf-value] 840 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 841 ;0-9, A-D, '#' and '*' 842 ext-mech = token 843 ; token is specified in RFC4566 845 Figure 2: Syntax of the SDP extensions 847 6. SDP Examples 848 6.1. Basic SDP example: Single Circuit-Switched Audio Stream 850 Alice Bob 851 | | 852 | (1) SDP Offer (PSTN audio) | 853 |--------------------------------->| 854 | | 855 | (2) SDP Answer (PSTN audio) | 856 |<---------------------------------| 857 | | 858 | PSTN call setup | 859 |<---------------------------------| 860 | | 861 |<==== media over PSTN bearer ====>| 862 | | 864 Figure 3: Basic flow 866 Figure 3 shows a basic example that describes a single audio media 867 stream over a circuit-switched bearer. The SDP offer is show in 868 Figure 4. The endpoint describes a PSTN circuit-switched bearer in 869 the "m=" and "c=" line where it also indicates its E.164 number. 870 Additionally, it expresses that it can initiate the circuit-switched 871 connection or be the recipient of it. The SDP offer also includes a 872 correlation identifier that this endpoint will be inserting the User- 873 User Information Element of the PSTN call setup if eventually this 874 endpoint initiates the PSTN call. 876 v=0 877 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 878 s= 879 t=0 0 880 m=audio 9 PSTN - 881 c=PSTN E164 +15551234 882 a=setup:actpass 883 a=connection:new 884 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 886 Figure 4: SDP offer (1) 888 7. IANA Considerations 890 This document instructs IANA to register a number of SDP tokens 891 according to the following data. 893 7.1. Registration of new correlation SDP attribute 895 Contact: Miguel Garcia 897 Attribute name: cs-correlation 899 Long-form attribute name: PSTN Correlation Identifier 901 Type of attribute: media level only 903 This attribute is subject to the charset attribute 905 Description: This attribute provides the Correlation Identifier 906 used in PSTN signaling 908 Specification: RFC XXXX 910 7.2. Registration of a new "nettype" value 912 This memo provides instructions to IANA to register a new "nettype" 913 in the Session Description Protocol Parameters registry [1]. The 914 registration data, according to RFC 4566 [RFC4566] follows. 916 Type SDP Name Reference 917 ---- ------------------ --------- 918 nettype PSTN [RFCxxxx] 920 7.3. Registration of new "addrtype" values 922 This memo provides instructions to IANA to register a new "addrtype" 923 in the Session Description Protocol Parameters registry [1]. The 924 registration data, according to RFC 4566 [RFC4566] follows. 926 Type SDP Name Reference 927 ---- ------------------ --------- 928 addrtype E164 [RFCxxxx] 929 - [RFCxxxx] 931 7.4. Registration of a new "proto" value 933 This memo provides instructions to IANA to register a new "proto" in 934 the Session Description Protocol Parameters registry [1]. The 935 registration data, according to RFC 4566 [RFC4566] follows. 937 Type SDP Name Reference 938 -------------- --------------------------- --------- 939 proto PSTN [RFCxxxx] 941 8. Security Considerations 943 This document provides an extension on top of RFC 4566 [RFC4566], and 944 RFC 3264 [RFC3264]. As such, the security considerations of those 945 documents apply. 947 This memo provides mechanisms to agree on a correlation identifier or 948 identifiers that are used to evaluate whether an incoming circuit- 949 switched call is related to an ongoing session in the IP domain. If 950 an attacker replicates the correlation identifer and establishes a 951 call within the time window the receiving endpoint is expecting a 952 call, the attacker may be able to hijack the circuit-switched call. 953 These types of attacks are not specific to the mechanisms presented 954 in this memo. For example, caller ID spoofing is a well known attack 955 in the PSTN. Users are advised to use the same caution before 956 revealing sensitive information as they would on any other phone 957 call. Furthermore, users are advised that mechanisms that may be in 958 use in the IP domain for securing the media, like Secure RTP (SRTP) 959 [RFC3711], are not available in the CS domain. 961 9. Acknowledgments 963 The authors want to thank Flemming Andreasen, Thomas Belling, John 964 Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan Rosenberg, 965 Ingemar Johansson, Christer Holmberg, and Alf Heidermark for 966 providing their insight and comments on this document. 968 10. References 970 10.1. Normative References 972 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 973 Requirement Levels", BCP 14, RFC 2119, March 1997. 975 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 976 Session Description Protocol (SDP) for ATM Bearer 977 Connections", RFC 3108, May 2001. 979 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 980 with Session Description Protocol (SDP)", RFC 3264, 981 June 2002. 983 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 984 the Session Description Protocol (SDP)", RFC 4145, 985 September 2005. 987 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 988 Description Protocol", RFC 4566, July 2006. 990 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 991 Specifications: ABNF", STD 68, RFC 5234, January 2008. 993 10.2. Informative References 995 [3GPP.24.008] 996 3GPP, "Mobile radio interface Layer 3 specification; Core 997 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 998 December 2005. 1000 [ITU.E164.1991] 1001 International Telecommunications Union, "The International 1002 Public Telecommunication Numbering Plan", ITU- 1003 T Recommendation E.164, 1991. 1005 [ITU.Q931.1998] 1006 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1007 User - Network Interface Layer 3 Specification for Basic 1008 Call Control", ISO Standard 9594-1, May 1998. 1010 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1011 A., Peterson, J., Sparks, R., Handley, M., and E. 1012 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1013 June 2002. 1015 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1016 Jacobson, "RTP: A Transport Protocol for Real-Time 1017 Applications", STD 64, RFC 3550, July 2003. 1019 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1020 Video Conferences with Minimal Control", STD 65, RFC 3551, 1021 July 2003. 1023 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1024 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1025 RFC 3711, March 2004. 1027 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1028 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1030 URIs 1032 [1] 1034 Authors' Addresses 1036 Miguel A. Garcia-Martin 1037 Ericsson 1038 Calle Via de los Poblados 13 1039 Madrid, ES 28033 1040 Spain 1042 Email: miguel.a.garcia@ericsson.com 1044 Simo Veikkolainen 1045 Nokia 1046 P.O. Box 407 1047 NOKIA GROUP, FI 00045 1048 Finland 1050 Phone: +358 50 486 4463 1051 Email: simo.veikkolainen@nokia.com