idnits 2.17.1 draft-ietf-mmusic-sdp-cs-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? (You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Feb 2009 rather than one of the newer Notices. See https://trustee.ietf.org/license-info/.) 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 : ---------------------------------------------------------------------------- -- 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 date (October 22, 2009) is 5299 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 1003, but not defined ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) == Outdated reference: A later version (-13) exists of draft-ietf-mmusic-sdp-capability-negotiation-10 == Outdated reference: A later version (-17) exists of draft-ietf-mmusic-sdp-media-capabilities-08 Summary: 2 errors (**), 0 flaws (~~), 4 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: April 25, 2010 Nokia 6 October 22, 2009 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-02 13 Status of this Memo 15 This Internet-Draft is submitted to IETF in full conformance with the 16 provisions of BCP 78 and BCP 79. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as Internet- 21 Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on April 25, 2010. 36 Copyright Notice 38 Copyright (c) 2009 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents in effect on the date of 43 publication of this document (http://trustee.ietf.org/license-info). 44 Please review these documents carefully, as they describe your rights 45 and restrictions with respect to this document. 47 Abstract 49 This memo describes use cases, requirements, and protocol extensions 50 for using the Session Description Protocol (SDP) Offer/Answer model 51 for establishing audio and video media streams over circuit-switched 52 bearers in the Public Switched Telephone Network (PSTN). 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 57 2. Conventions Used in This Document . . . . . . . . . . . . . . 5 58 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 5 59 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 6 60 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 6 61 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 8 62 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 8 63 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 8 64 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 8 65 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 9 66 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 67 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 10 68 5.2.3.1. The "correlation" attribute . . . . . . . . . . . 11 69 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 11 70 5.2.3.3. User-User Information Element Correlation 71 Mechanism . . . . . . . . . . . . . . . . . . . . 12 72 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 13 73 5.2.3.5. Negotiating the used correlation mechanisms . . . 15 74 5.3. Considerations for Usage of Existing SDP . . . . . . . . . 17 75 5.3.1. Originator of the Session . . . . . . . . . . . . . . 17 76 5.3.2. Contact information . . . . . . . . . . . . . . . . . 17 77 5.3.3. Determining the Direction of the Circuit-Switched 78 Connection Setup . . . . . . . . . . . . . . . . . . . 17 79 5.4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 18 80 6. SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . . 19 81 6.1. Basic SDP example: Single Circuit-Switched Audio Stream . 19 82 6.2. Advanced SDP example: Alternative and IP 83 Circuit-Switched Audio and Video Streams . . . . . . . . . 20 84 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 85 7.1. Registration of new correlation SDP attribute . . . . . . 22 86 7.2. Registration of a new "nettype" value . . . . . . . . . . 22 87 7.3. Registration of new "addrtype" values . . . . . . . . . . 22 88 7.4. Registration of a new "proto" value . . . . . . . . . . . 22 89 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 90 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 91 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 92 10.1. Normative References . . . . . . . . . . . . . . . . . . . 23 93 10.2. Informative References . . . . . . . . . . . . . . . . . . 24 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 97 1. Introduction 99 The Session Description Protocol (SDP) [RFC4566] is intended for 100 describing multimedia sessions for the purposes of session 101 announcement, session invitation, and other forms of multimedia 102 session initiation. SDP is most commonly used for describing media 103 streams that are transported over the Real-Time Transport Protocol 104 (RTP) [RFC3550], using the profiles for audio and video media defined 105 in RTP Profile for Audio and Video Conferences with Minimal Control 106 [RFC3551]. 108 However, SDP can be used to describe other transport protocols than 109 RTP. Previous work includes SDP conventions for describing ATM 110 bearer connections [RFC3108] and the Message Session Relay Protocol 111 [RFC4975]. 113 SDP is commonly carried in Session Initiation Protocol (SIP) 114 [RFC3261] messages in order to agree on a common media description 115 among the endpoints. An Offer/Answer Model with Session Description 116 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 117 can exchange SDP media descriptions and come to an agreement as to 118 which media streams should be used, along with the media related 119 parameters. 121 In some scenarios it might be desirable to establish the media stream 122 over a circuit-switched bearer connection even if the signaling for 123 the session is carried over an IP bearer. An example of such a 124 scenario is illustrated with two mobile devices capable of both 125 circuit-switched and packet-switched communication over a low- 126 bandwidth radio bearer. The radio bearer may not be suitable for 127 carrying real-time audio or video media, and using a circuit-switched 128 bearer would offer, however, a better perceived quality of service. 129 So, according to this scenario, SDP and its higher layer session 130 control protocol (e.g., the Session Initiation Protocol (SIP) 131 [RFC3261]) are used over regular IP connectivity, while the audio or 132 video is received through the classical circuit-switched bearer. 134 Setting up a signaling relationship in the IP domain instead of just 135 setting up a circuit-switched call offers also the possibility of 136 negotiating in the same session other IP based media that is not 137 sensitive to jitter and delay, for example, text messaging or 138 presence information. 140 At a later point in time the mobile device might move to an area 141 where a high-bandwidth packet-switched bearer, for example a Wireless 142 Local Area Network (WLAN) connection, is available. At this point 143 the mobile device may perform a handover and move the audio or video 144 media streams over to the high-speed bearer. This implies a new 145 exchange of SDP offer/answer that lead to a re-negotiation of the 146 media streams. 148 Other use cases exists. For example, and endpoint might have at its 149 disposal circuit-switch and packet-switched connectivity, but the 150 audio or video codecs are not the same in both access networks. 151 Consider that the circuit-switched audio or video stream supports 152 narrow-bandwidth codecs, while the packet-switched access allows any 153 other audio or video codec implemented in the endpoint. In this 154 case, it might be beneficial for the endpoint to describe different 155 codecs for each access type and get an agreement on the bearer 156 together with the remote endpoint. 158 There are additional use cases related to third party call control 159 where the session setup time is improved when the circuit-switched 160 bearer in the PSTN is described together with one or more codecs. 162 The rest of the document is structured as follows: Section 2 provides 163 the document conventions, Section 3 introduces the requirements, 164 Section 4 presents an overview of the proposed solutions, and 165 Section 5 contains the protocol description. Section 6 provides a 166 few examples of descriptions of circuit-switched audio or video 167 streams in SDP. Section 7 and Section 8 contain the IANA and 168 Security considerations, respectively. 170 2. Conventions Used in This Document 172 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 173 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 174 document are to be interpreted as described in BCP 14, RFC 2119 175 [RFC2119] and indicate requirement levels for compliant 176 implementations. 178 3. Requirements 180 This section presents the general requirements that are specific for 181 the audio or video media stream over circuit-switched bearers. 183 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 184 or video media stream established over a circuit-switched 185 bearer MUST be available. 187 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 188 switched audio or video media streams with other 189 complementary media streams, for example, text messaging. 191 REQ-3: The mechanism MUST allow the endpoint to negotiate the 192 direction of the circuit-switched connection, i.e., which 193 endpoint is active when initiating the circuit-switched 194 connection. 196 REQ-4: The mechanism MUST be independent of the type of the circuit- 197 switched access (e.g., Integrated Services Digital Network 198 (ISDN), Global System for Mobile Communication (GSM), etc.) 200 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 201 an incoming circuit-switched bearer with the one negotiated 202 in SDP, as opposed to another incoming call that is not 203 related to that. 205 REQ-6: It must be possible for endpoints to advertise different list 206 of audio or video codecs in the circuit-switched audio or 207 video stream from those used in a packet-switched audio or 208 video stream. 210 REQ-7: It must be possible for endpoints to not advertise the list 211 of available codecs for circuit-switched audio or video 212 streams. 214 4. Overview of Operation 216 The mechanism defined in this memo extends SDP and allows describing 217 an audio or video media stream established over a circuit-switched 218 bearer. New tokens are registered in the "c=" and "m=" lines to be 219 able to describe a media stream over a circuit-switched bearer. 220 These SDP extensions are described in Section 5.2. Since circuit- 221 switched bearers are a sort of connection-oriented media streams, the 222 mechanism re-uses the connection-oriented extensions defined in RFC 223 4145 [RFC4145] to negotiate the active and passive sides of a 224 connection setup. This is further described in Section 5.3.3. 226 4.1. Example Call Flow 228 Consider the example presented in Figure 1. In this example, Alice 229 is located in an environment where she has access to both IP and 230 circuit-switched bearers for communicating with other endpoints. 231 Alice decides that the circuit-switched bearer offers a better 232 perceived quality of service for voice, and issues an SDP Offer 233 containing the description of an audio media stream over circuit- 234 switched bearer. 236 Alice Bob 237 | (1) SDP Offer (PSTN audio) | 238 |----------------------------------->| 239 | | 240 | (2) SDP Answer (PSTN audio) | 241 |<-----------------------------------| 242 | | 243 | PSTN call setup | 244 |<-----------------------------------| 245 | | 246 | | 247 |<===== media over PSTN bearer =====>| 248 | | 250 Figure 1: Example Flow 252 Bob receives the SDP offer and determines that he is located in an 253 environment where the IP based bearer is not suitable for real-time 254 audio media. However he also has PSTN circuit-switched bearer 255 available for audio. Bob generates an SDP answer containing a 256 description of the audio media stream over a circuit-switched bearer. 258 During the offer-answer exchange Alice and Bob also agree the 259 direction in which the circuit-switched connection should be 260 established. The exchange also contains identifiers or references 261 that can be used on the circuit-switched network for addressing the 262 other endpoint, as well as identifying that the incoming circuit- 263 switched bearer establishment is related to the ongoing session 264 between Alice and Bob. 266 Bob establishes a circuit-switched bearer towards Alice using 267 whatever mechanisms are defined for the network type in question. 268 When receiving the incoming circuit-switched connection attempt, 269 Alice is able to determine that the attempt is related to the session 270 she is just establishing with Bob. 272 Alice accepts the circuit-switched connection; the circuit-switched 273 bearer setup is completed. Bob and Alice can now use the circuit- 274 switched connection for two-way audio media. 276 If, for some reason, Bob would like to reject the offered stream, he 277 would set the port number of the specific stream to zero, as 278 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 279 some of the SDP attributes specified in this document, he would 280 ignore them, as specified in RFC4566 [RFC4566]. 282 5. Protocol Description 284 5.1. Level of Compliance 286 Implementations according to this specification MUST implement the 287 SDP extensions described in Section 5.2, and MUST implement the 288 considerations discussed in Section 5.3. 290 5.2. Extensions to SDP 292 This section provides the syntax and semantics of the extensions 293 required for providing a description of audio or video media streams 294 over circuit-switched bearers in SDP. 296 5.2.1. Connection Data 298 According to SDP [RFC4566], the connection data line in SDP has the 299 following syntax: 301 c= 303 where indicates the network type, indicates the 304 address type, and the is the connection address, 305 which is dependent on the address type. 307 At the moment, the only network type defined is "IN", which indicates 308 Internet network type. The address types "IP4" and "IP6" indicate 309 the type of IP addresses. 311 This memo defines a new network type for describing a circuit- 312 switched bearer network type in the PSTN. The mnemonic "PSTN" is 313 used for this network type. 315 For the address type, we initially consider the possibility of 316 describing E.164 telephone numbers. We define a new "E164" address 317 type. When used, the "E164" address type indicates that the 318 connection address contains a telephone number represented according 319 to the ITU-T E.164 [ITU.E164.1991] recommendation. 321 There are cases, though, when the endpoint is merely aware of a 322 circuit-switched bearer, without having further information about the 323 address type or the E.164 number allocated to it. In these cases a 324 dash "-" is used to indicate an unknown address type or connection 325 address. This makes the connection data line be according to the SDP 326 syntax. 328 Note that and/or should not be 329 omitted without being set to a "-" since this would violate basic 330 syntax of SDP [RFC4566]. 332 The following are examples of the extension to the connection data 333 line: 335 c=PSTN E164 +15551234 337 c=PSTN - - 339 5.2.2. Media Descriptions 341 According to SDP [RFC4566], the media descriptions line in SDP has 342 the following syntax: 344 m= ... 346 The sub-field carries the media type. For establishing an 347 audio bearer, the existing "audio" media type is used. For 348 establishing a video bearer, the existing "video" media type is used. 350 The sub-field is the transport port to which the media stream 351 is sent. Circuit-switched access lacks the concept of a port number, 352 and therefore the sub-field is set to the discard port "9". 354 According to RFC 3264 [RFC3264], a port number of zero in the offer 355 of a unicast stream indicates that the stream is offered but must not 356 be used. If a port number of zero is present in the answer of a 357 unicast stream, it indicates that the stream is rejected. These 358 rules are still valid when the media line in SDP represents a 359 circuit-switched bearer. 361 The sub-field is the transport protocol. The circuit- 362 switched bearer uses whatever transport protocol it has available. 363 This subfield SHOULD be set to the mnemonic "PSTN" to be 364 syntactically correct with SDP [RFC4566] and to indicate the usage of 365 circuit-switched protocols in the PSTN. 367 The sub-field is the media format description. In the 368 classical usage of SDP to describe RTP-based media streams, when the 369 sub-field is set to "RTP/AVP" or "RTP/SAVP", the sub- 370 field contains the payload types as defined in the RTP audio profile 371 [RFC3551]. 373 In the case of circuit-switched descriptions, RTP is not really used. 374 Rather than specifying the RTP audio/video profile payload type, we 375 use the sub-field to indicate the list of available media types 376 over the circuit-switched bearer. Therefore, the sub-field MAY 377 indicate one or more available audio or video codecs for a circuit- 378 switched audio or video stream. We use the classical RTP audio and 379 video media types, even when applied to PSTN circuit-switched 380 bearers, the media type merely represents an audio or video codec. 382 However, in some cases, the endpoint is not able to determine the 383 list of available codecs for circuit-switched media streams. In this 384 case, in order to be syntactically compliant with SDP [RFC4566], the 385 endpoint MUST include a single dash "-" in the sub-field. 387 As per RFC 4566 [RFC4566], the media format descriptions are listed 388 in priority order. 390 Example of a media description for circuit-switched audio streams is: 392 m=audio 9 PSTN 3 0 8 394 m=audio 9 PSTN - 396 Similarly, an example of a media description for circuit-switched 397 video stream is: 399 m=video 9 PSTN 34 401 m=video 9 PSTN - 403 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 405 The endpoints should be able to correlate the circuit-switched bearer 406 with the session negotiated with SDP to avoid ringing for an incoming 407 circuit-switched bearer that is related to the session controlled 408 with SDP (and SIP). 410 Several alternatives exist for performing this correlation. This 411 memo provides three mutually non-exclusive correlation mechanisms. 412 Other correlation mechanisms might exist as well, and their usage 413 will be specified when need arises. All mechanisms share the same 414 principles: some unique information is sent in the SDP and in the 415 circuit-switched signaling protocol. If these pieces of information 416 match, then the circuit-switched bearer is part of the session 417 described in the SDP exchange. Otherwise, there is no guarantee that 418 the circuit-switched bearer is related to such session. 420 The first mechanism is based on the exchange of PSTN caller-ID 421 between the endpoints. The caller-ID is also available as the 422 Calling Party ID in the circuit-switched signaling. 424 The second mechanism is based on the inclusion in SDP of a value that 425 is also sent in the User-to-User Information Element that is part of 426 the bearer setup signaling in the PSTN. 428 The third mechanism is based on sending in SDP a string that 429 represents Dual Tone MultiFrequency (DTMF) digits that will be later 430 sent right after the circuit-switched bearer is established. 431 Implementations MAY use any of these mechanisms and MAY use two or 432 more mechanisms simultaneously. 434 5.2.3.1. The "correlation" attribute 436 In order to provide support for the correlation mechanisms, we define 437 a new SDP attribute called "cs-correlation". This "cs-correlation" 438 attribute can include any of the "callerid", "uuie", or "dtmf" 439 parameters, which specify additional information required by the 440 Caller-ID, User to User Information, or DTMF correlation mechanisms, 441 respectively. 443 The following sections provide more detailed information of these 444 parameters. The "cs-correlation" attribute has the following format: 446 "a=cs-correlation: "callerid:" | 447 "uuie:" | 448 "dtmf:" 450 The values "callerid", "uuie" and "dtmf" refer to the correlation 451 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 452 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 453 Format (ABNF) syntax of the "cs-correlation" attribute is presented 454 in Section 5.4. 456 5.2.3.2. Caller-ID Correlation Mechanism 458 The Caller-ID correlation mechanisms consists of an exchange of the 459 calling party number in E.164 format in SDP, followed by the 460 availability of the Calling Party Number information element in the 461 call setup signaling of the circuit switched connection. If both 462 pieces of information match, the circuit-switched bearer is 463 correlated to the session described in SDP. 465 An endpoint that is feasible to become the active party for setting 466 up the circuit-switched bearer and is willing to send the Calling 467 Party Number in the PSTN signaling SHOULD add a "callerid" parameter 468 in the "cs-correlation" attribute of the SDP offer or answer, and 469 SHOULD include as the value the E.164 number that will be presented 470 in the Calling Party Number in the PSTN signaling. 472 An endpoint that acts as the passive party for setting up the 473 circuit-switch bearer SHOULD add a "callerid" parameter in the "cs- 474 correlation" attribute of the SDP if it supports the mechanism, and 475 MAY include the E.164 number that will be presented in the circuit- 476 switched bearer in the same corresponding lines, although these are 477 not used for correlation. 479 Example of inclusion of E.164 number in the "cs-correlation" 480 attribute is: 482 a=cs-correlation:callerid:+15551234 484 Please note that there are no warranties that this correlation 485 mechanism works or is even available, due a number of problems: 487 o The endpoint might not be aware of its own E.164 number, in which 488 case it cannot populate the SDP appropriately. 490 o The Calling Party Number information element in the circuit- 491 switched signaling might not be available, e.g., due to policy 492 restrictions of the network operator or caller restriction due to 493 privacy. 495 o The Calling Party Number information element in the circuit- 496 switched signaling might be available, but the digit 497 representation of the E.164 number might differ from the one 498 expressed in the SDP. For example, one can be represented in 499 international format and the other might only contain the 500 significant national digits. To mitigate this problem 501 implementations should consider only some of the rightmost digits 502 from the E.164 number for correlation. For example, the numbers 503 +358-1-555-12345 and 01-555-12345 could be considered as the same 504 number. This is also the behavior of some cellular phones, which 505 correlate the incoming calling party with a number stored in the 506 phone book, for the purpose of displaying the caller's name. 508 5.2.3.3. User-User Information Element Correlation Mechanism 510 A second correlation mechanism is based on indicating in SDP a string 511 that represents the User-User Information Element that is part of the 512 call setup signaling of the circuit-switched bearer. The User-User 513 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 514 3GPP TS 24.008 [3GPP.24.008], among others. The User-User 515 Information Element has a maximum size of 35 or 131 octets, depending 516 on the actual message of the PSTN protocol where it is included. 518 The mechanism works as follows: An endpoint creates a User-User 519 Information Element, according to the requirement of the call setup 520 signaling protocol. The same value is included in the SDP offer or 521 SDP answer, in a "cs-correlation:uuie" attribute. When the SDP 522 offer/answer exchange is completed, each endpoint has become aware of 523 the value that will be used in the User-User Information Element of 524 the call setup message of the PSTN protocol. The endpoint that 525 initiates the call setup attempt includes this value in the User-User 526 Information Element. The recipient of the call setup attempt can 527 extract the User-User Information Element and correlate it with the 528 value previously received in the SDP. If both values match, then the 529 call setup attempt corresponds to that indicated in the SDP. 531 Note that, for correlation purposes, the value of the User-User 532 Information Element is considered as a opaque string and only used 533 for correlation purposes. Typically call signaling protocols impose 534 requirements on the creation of User-User Information Element for 535 end-user protocol exchange. The details regarding the generation of 536 the User-User Information Element are outside the scope of this 537 specification. 539 An endpoint that is feasible to become the active party for setting 540 up the PSTN call and is willing to send the User-User Information 541 Element in the PSTN signaling SHOULD add a "uuie" parameter in the 542 "cs-correlation" attribute of the SDP offer or answer. This "uuie" 543 parameter SHOULD include the value of the User-User Information 544 Element that will be used in the call setup attempt. 546 An endpoint that takes the role of the passive party for setting up 547 the circuit-switched bearer SHOULD include include a "uuie" parameter 548 in the "cs-correlation" attribute in the SDP, if it supports the UUI 549 mechanism. It MAY also add a value for the "uuie" parameter although 550 it is not used for correlation purposes. 552 Please note that there are no warranties that this correlation 553 mechanism works. On one side, policy restrictions might not make the 554 User-User information available end to end in the PSTN. On the other 555 hand, the generation of the User-User Information Element is 556 controlled by the PSTN circuit-switched call protocol, which might 557 not offer enough freedom for generating different values from one 558 endpoint to another one, or from one call to another in the same 559 endpoint. This might result in the same value of the User-User 560 Information Element for all calls. 562 5.2.3.4. DTMF Correlation Mechanism 564 We introduce a third mechanism for correlating the circuit-switched 565 bearer with the session controlled with SDP. This is based in 566 agreeing on a sequence of digits that are negotiated in the SDP 567 Offer/Answer exchange and sent as Dual Tone Multifrequency 568 (DTMF)tones over the circuit-switched bearer once this bearer is 569 established. If the DTMF digit sequence received through the 570 circuit-switched bearer matches the digit string negotiated in the 571 SDP, the circuit-switched bearer is correlated with the session 572 described in the SDP. The mechanism is similar to many voice 573 conferencing systems which require the user to enter a PIN code using 574 DTMF tones in order to be accepted in a voice conference. 576 The mechanism works as follows: An endpoint selects a DTMF digit 577 sequence. The same sequence is included in the SDP offer or SDP 578 answer, in a "cs-correlation:dtmf" attribute. When the SDP offer/ 579 answer exchange is completed, each endpoint has become aware of the 580 DTMF sequence that will be sent right after the circuit-switched 581 bearer is set up. The endpoint that initiates the call setup attempt 582 sends the DTMF digits as per the procedures defined for the circuit- 583 switched bearer technology used. The recipient (passive side of the 584 bearer setup) of the call setup attempt collects the digits and 585 correlates them with the value previously received in the SDP. If 586 the digits match, then the call setup attempt corresponds to that 587 indicated in the SDP. 589 An endpoint that is feasible to become the active party for setting 590 up the PSTN call and is willing to send the DTMF digits after 591 circuit-switched bearer cut-through SHOULD include a "dtmf" parameter 592 in the "cs-correlation" attribute of the SDP offer or answer. The 593 value of the "dtmf" parameter SHOULD contain up to 32 randomly 594 selected DTMF digits (numbers 0-9, characters A-D, "#" and "*"). 596 Implementations are advised to select a number of DTMF digits that 597 provide enough assurance that the call is related, but on the 598 other hand do not prolong the bearer setup time unnecessarily. 600 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 601 would include a "cs-correlation" attribute line as follows: 603 a=cs-correlation:dtmf:14D*3 605 An endpoint that takes the role of the passive party for setting up 606 the circuit-switched bearer SHOULD include include a "dtmf" parameter 607 in the "cs-correlation" attribute in the SDP, if it supports the 608 mechanism. It MAY also add a value for the "dtmf" parameter although 609 it is not used for correlation purposes. 611 Once the circuit-switched bearer is successfully set up, the active 612 side MUST send DTMF digits according to the circuit-switched bearer 613 technology used. The values and number of the DTMF digits MUST match 614 those that were agreed during SDP negotiation. 616 The passive side of the circuit-switched connection setup MUST be 617 prepared to receive and collect DTMF digits once the circuit-switched 618 bearer is set up. The received DTMF digits are compared to the value 619 of the "dtmf" parameter of the "cs-correlation" attribute that the 620 the active side sent during SDP offer/answer exchange. If the 621 received DTMF digits match the value of the "dtmf" parameter in the 622 "cs-correlation" attribute, the call SHOULD be treated as correlated 623 to the ongoing session. 625 If the offerer and answerer successfully agree on the usage of the 626 DTMF digit correlation mechanism, but the passive side does not 627 receive any DTMF digits after successful circuit-switched bearer 628 setup, or receives a set of DTMF digits that do not match the value 629 of the "dtmf" attribute (including receving too many digits), the 630 passive side SHOULD treat the circuit-switched bearer as not 631 correlated to the ongoing session. 633 DTMF digits can only be sent once the circuit-switched bearer is 634 set up. In order to suppress alerting for an incoming circuit- 635 switched call, implementations may choose various mechanisms. For 636 example, alerting may be suppressed for a certain time period for 637 incoming call attempts that originate from the number that was 638 observed during the offer/answer negotiation. 640 5.2.3.5. Negotiating the used correlation mechanisms 642 The three correlation mechanisms presented above (based on called 643 party number, User-User Information Element and DTMF digit sending) 644 are non-exclusive, and can be used independently of each other. 646 In order to agree which correlation mechanisms are supported by each 647 endpoint, we define a negotiation mechanism similar to the one 648 defined for codec negotiation. 650 In some cases an endpoint may support the correlation mechanism, but 651 it is not willing to become the active party in the circuit-switched 652 bearer establishment. 654 If the offerer supports any of the correlation mechanisms defined in 655 this memo, it SHOULD include an attribute line "a=cs-correlation" in 656 the SDP offer. The "a=cs-correlation" line contains an enumeration 657 of the correlation mechanisms supported by the offerer, in the format 658 of parameters. The current list of parameters include "callerid", 659 "uuie" and "dtmf" and they refer to the correlation mechanisms 660 defined in Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, 661 respectively. For example, if an endpoint is willing to use the 662 User-User Information element and DTMF digit sending mechanisms, it 663 includes the following line to the SDP: 665 a=cs-correlation:uuie dtmf 667 The answerer, when generating the answer, SHOULD select those 668 correlation mechanisms it supports, and include an "a=cs-correlation" 669 attribute line in the answer containing those mechanisms it supports. 670 The answerer MUST NOT add any mechanism which was not included in the 671 offer. 673 If the answer does not contain an "a=cs-correlation" attribute line, 674 the offerer MUST interpret this as an indication that the anwerer 675 does not support any of the correlation mechanisms for this session. 677 If, in addition to supporting any of the correlation mechanisms, an 678 endpoint is willing to assume the role of the active party in 679 establishing the circuit-switched bearer, it MUST add a parameter 680 value to the supported mechanisms. For example, if the endpoint 681 supports and is willing to send the User-User Information element and 682 DTMF digits, it includes the following line to the SDP offer: 684 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 dtmf:14D*3 686 The answerer SHOULD select those correlation mechanisms it supports 687 and is willing to use, and include respective parameter values. If 688 the answerer supports but is not willing to use some of the 689 mechanisms (for example, due to not being able to become the active 690 endpoint when setting up the circuit-switched bearer), it SHOULD 691 include the respective parameter, but MUST NOT add a value to the 692 parameter. 694 Note that, as stated above, it cannot be guaranteed that any given 695 correlation mechanism will succeed even if the usage of those was 696 agreed beforehand. This is due to the fact that the correlation 697 mechanisms require support from the circuit-switched bearer 698 technology used. 700 Therefore, even a single positive indication using any of these 701 mechanisms SHOULD be interpreted by the passive endpoint so that the 702 circuit-switched bearer establishment is related to the ongoing 703 session, even if the other correlation mechanisms fail. 705 If, after negotiating one or more correlation mechanisms in the SDP 706 offer/answer exchange, an endpoint receives a circuit-switched call 707 with no correlation information present, the endpoint has two 708 choices: it can either treat the call as unrelated, or treat the call 709 as related to the ongoing session in the IP domain. 711 An endpoint may for example specify a time window after SDP offer/ 712 answer exchange during which received calls are treated as correlated 713 even if the signalling in the circuit-switched domain does not carry 714 any correlation information. In this case, there is a chance that 715 the call is erroneously treated as related to the ongoing session. 717 An endpoint may also choose to always treat an incoming call as 718 unrelated if the signalling in the circuit-switched domain does not 719 carry any correlation information. In this case, there is a chance 720 that the call is erroneously treated as unrelated. 722 Since, in these cases, no correlation information can be deduced from 723 the signalling, it is up to the implementation to decide how to 724 behave. One option is also to let the user decide whether to accept 725 the call as related, or to treat the call as unrelated. 727 5.3. Considerations for Usage of Existing SDP 729 5.3.1. Originator of the Session 731 According to SDP [RFC4566], the origin line in SDP has the following 732 syntax: 734 o= 735 737 Of interest here are the and fields, which 738 indicate the type of network and type of address, respectively. 739 Typically, this field carries the IP address of the originator of the 740 session. Even if the SDP was used to negotiate an audio or video 741 media stream transported over a circuit-switched bearer, the 742 originator is using SDP over an IP bearer. Therefore, and 743 fields in the "o=" line should be populated with the IP 744 address identifying the source of the signaling. 746 5.3.2. Contact information 748 SDP [RFC4566] defines the "p=" line which may include the phone 749 number of the person reponsible for the conference. Even though this 750 line can carry a phone number, it is not suited for the purpose of 751 defining a connection address for the media. Therefore, we have 752 selected to define the PSTN specific connection addresses in the "c=" 753 line. 755 5.3.3. Determining the Direction of the Circuit-Switched Connection 756 Setup 758 Either endpoint can initiate the establishment of the circuit- 759 switched bearer. In order to avoid a situation where both endpoints 760 attempt to initiate a connection simultaneously, the direction in 761 which the circuit-switched bearer is set up should be negotiated 762 during the Offer/Answer exchange. 764 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 765 agree which endpoint acts as the active endpoint when initiating a 766 TCP connection. While RFC 4145 [RFC4145] was originally designed for 767 establishing TCP connections, it is easily extrapolated to the 768 connection establishment of circuit-switched bearers. This 769 specification uses the concepts specified in RFC 4145 [RFC4145] for 770 agreeing on the direction of establishment of a circuit-switched 771 bearer. 773 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 774 "connection". The "setup" attribute indicates which of the endpoints 775 should initiate the connection establishment of the PSTN circuit- 776 switched bearer. Four values are defined in Section 4 of RFC 4145 777 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 778 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 779 attribute. 781 The "connection" attribute indicates whether a new connection is 782 needed or an existing connection is reused. The attribute can take 783 the values "new" or "existing". Please refer to Section 5 of RFC 784 4145 [RFC4145] for a detailed description of this attribute. 786 Implementations according to this specification MUST support the 787 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 788 but applied to circuit-switched bearers in the PSTN. 790 In order to establish a circuit-switched connection in the PSTN, the 791 initiating endpoint needs to know the address (E.164 number) of the 792 other endpoint. Therefore, if an endpoint wants to be able to 793 receive incoming circuit-switched calls, it must know its E.164 794 number and must indicate it in SDP. As a consequence, an endpoint 795 that is not aware of its own E.164 number cannot take the role of the 796 passive side with respect the establishment of the circuit-switched 797 connection. 799 5.4. Formal Syntax 801 The following is the formal Augmented Backus-Naur Form (ABNF) 802 [RFC5234] syntax that supports the extensions defined in this 803 specification. The syntax is built above the SDP [RFC4566] grammar. 804 Implementations according to this specification MUST be compliant 805 with this syntax. 807 Figure 2 shows the formal syntax of the extensions defined in this 808 memo. 810 ; extension to the connection field originally specified 811 ; in RFC 4566 813 connection-field = [%x63 "=" nettype SP addrtype SP 814 connection-address CRLF] 815 ;nettype and addrtype are defined in RFC 4566 817 connection-address /= e164-address / "-" 818 e164-address = ["+"] 1*15DIGIT 819 ; DIGIT is specified in RFC 5234 821 ;subrules for correlation attribute 822 attribute /= cs-correlation-attr 823 ; attribute defined in RFC 4566 824 cs-correlation-attr= "cs-correlation:" corr-mechanisms 825 corr-mechanisms = corr-mech *(SP corr-mech) 826 corr-mech = caller-id-mech / uuie-mech / dtmf-mech 827 caller-id-mech = "callerid" [":" caller-id-value] 828 caller-id-value = ["+"] 1*DIGIT 829 uuie-mech = "uuie" [":" uuie-value] 830 uuie-value = 1*32(ALPHA/DIGIT) 831 dtmf-mech = "dtmf" [":" dtmf-value] 832 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 833 ;0-9, A-D, '#' and '*' 835 Figure 2: Syntax of the SDP extensions 837 6. SDP Examples 839 6.1. Basic SDP example: Single Circuit-Switched Audio Stream 841 Alice Bob 842 | | 843 | (1) SDP Offer (PSTN audio) | 844 |--------------------------------->| 845 | | 846 | (2) SDP Answer (PSTN audio) | 847 |<---------------------------------| 848 | | 849 | PSTN call setup | 850 |<---------------------------------| 851 | | 852 |<==== media over PSTN bearer ====>| 853 | | 855 Figure 3: Basic flow 857 Figure 3 shows a basic example that describes a single audio media 858 stream over a circuit-switched bearer. The SDP offer is show in 859 Figure 4. The endpoint describes a PSTN circuit-switched bearer in 860 the "m=" and "c=" line where it also indicates its E.164 number. 861 Additionally, it expresses that it can initiate the circuit-switched 862 connection or be the recipient of it. The SDP offer also includes a 863 correlation identifier that this endpoint will be inserting the User- 864 User Information Element of the PSTN call setup if eventually this 865 endpoint initiates the PSTN call. 867 v=0 868 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 869 s= 870 t=0 0 871 m=audio 9 PSTN - 872 c=PSTN E164 +15551234 873 a=setup:actpass 874 a=connection:new 875 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 877 Figure 4: SDP offer (1) 879 6.2. Advanced SDP example: Alternative and IP Circuit-Switched Audio 880 and Video Streams 882 Alice Bob 883 | | 884 | (1) SDP Offer (IP and PSTN audio and video)| 885 |------------------------------------------->| 886 | | 887 | (2) SDP Answer (PSTN audio and video) | 888 |<-------------------------------------------| 889 | | 890 | PSTN call setup | 891 |<-------------------------------------------| 892 | | 893 |<======== media over PSTN bearer ==========>| 894 | | 896 Figure 5: Alternative media 898 Figure 5 shows an example of negotiating audio and video media 899 streams over IP or circuit-switched bearers. Using the mechanisms 900 described in SDP Capability Negotiation Framework 901 [I-D.ietf-mmusic-sdp-capability-negotiation] and extensions thereof 902 (SDP media capabilities Negotiation 903 [I-D.ietf-mmusic-sdp-media-capabilities] and SDP Miscellaneous 904 Capabilities [I-D.garcia-mmusic-sdp-misc-cap]) it is possible to 905 construct an SDP offer where audio and video media can be offered 906 alternatively over IP or circuit-switched bearer. 908 v=0 909 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 910 s= 911 t=0 0 912 c=IN IP4 192.0.2.5 913 a=sescap:1 1,3 914 a=sescap:2 2,4 915 a=creq:med-v0,ccap-v0 916 a=acap:1 cs-correlation:uuie:2890W284hAT452612908awudfjang908 917 a=acap:2 setup:actpass 918 a=acap:3 connection:new 919 a=tcap:1 PSTN 920 m=audio 49170 RTP/AVP 0 8 3 921 a=mcap:1 - 922 a=ccap:1 PSTN E164 +15551234 923 a=pcfg:1 924 a=pcfg:2 m=1 t=1 c=1 a=1,2,3 925 m=video 49174 RTP/AVP 34 926 a=mcap:2 - 927 a=ccap:2 PSTN E164 +15551234 928 a=pcfg:3 929 a=pcfg:4 m=2 t=1 c=2 a=1,2,3 931 Figure 6: SDP offer with alternative media (1) 933 Upon receiving the SDP offer descibed in Figure 6, Bob decided to 934 select the circuit-switched bearer and generates the answer described 935 in Figure 7 937 v=0 938 o=- 2890973824 2890987289 IN IP4 192.0.2.7 939 s= 940 t=0 0 941 a=setup:active 942 a=connection:new 943 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 944 m=audio - PSTN - 945 c= PSTN E164 +1551234 946 m=video - PSTN - 947 c=PSTN E164 +1551234 948 a=acfg:2 950 Figure 7: SDP answer with circuit-switched media (2) 952 7. IANA Considerations 954 This document instructs IANA to register a number of SDP tokens 955 according to the following data. 957 7.1. Registration of new correlation SDP attribute 959 Contact: Miguel Garcia 961 Attribute name: cs-correlation 963 Long-form attribute name: PSTN Correlation Identifier 965 Type of attribute: media level only 967 This attribute is subject to the charset attribute 969 Description: This attribute provides the Correlation Identifier 970 used in PSTN signaling 972 Specification: RFC XXXX 974 7.2. Registration of a new "nettype" value 976 This memo provides instructions to IANA to register a new "nettype" 977 in the Session Description Protocol Parameters registry [1]. The 978 registration data, according to RFC 4566 [RFC4566] follows. 980 Type SDP Name Reference 981 ---- ------------------ --------- 982 nettype PSTN [RFCxxxx] 984 7.3. Registration of new "addrtype" values 986 This memo provides instructions to IANA to register a new "addrtype" 987 in the Session Description Protocol Parameters registry [1]. The 988 registration data, according to RFC 4566 [RFC4566] follows. 990 Type SDP Name Reference 991 ---- ------------------ --------- 992 addrtype E164 [RFCxxxx] 993 - [RFCxxxx] 995 7.4. Registration of a new "proto" value 997 This memo provides instructions to IANA to register a new "proto" in 998 the Session Description Protocol Parameters registry [1]. The 999 registration data, according to RFC 4566 [RFC4566] follows. 1001 Type SDP Name Reference 1002 -------------- --------------------------- --------- 1003 proto PSTN [RFCxxxx] 1005 8. Security Considerations 1007 This document provides an extension on top of RFC 4566 [RFC4566], and 1008 RFC 3264 [RFC3264]. As such, the security considerations of those 1009 documents apply. 1011 This memo provides mechanisms to agree on a correlation identifier or 1012 identifiers that are used to evaluate whether an incoming circuit- 1013 switched call is related to an ongoing session in the IP domain. If 1014 an attacker replicates the correlation identifer and establishes a 1015 call within the time window the receiving endpoint is expecting a 1016 call, the attacker may be able to hijack the circuit-switched call. 1017 These types of attacks are not specific to the mechanisms presented 1018 in this memo. For example, caller ID spoofing is a well known attack 1019 in the PSTN. Users are advised to use the same caution before 1020 revealing sensitive information as they would on any other phone 1021 call. Furthermore, users are advised that mechanisms that may be in 1022 use in the IP domain for securing the media, like Secure RTP (SRTP) 1023 [RFC3711], are not available in the CS domain. 1025 9. Acknowledgments 1027 The authors want to thank Flemming Andreasen, Thomas Belling, John 1028 Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan Rosenberg, 1029 Ingemar Johansson, Christer Holmberg, and Alf Heidermark for 1030 providing their insight and comments on this document. 1032 10. References 1034 10.1. Normative References 1036 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1037 Requirement Levels", BCP 14, RFC 2119, March 1997. 1039 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1040 Session Description Protocol (SDP) for ATM Bearer 1041 Connections", RFC 3108, May 2001. 1043 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1044 with Session Description Protocol (SDP)", RFC 3264, 1045 June 2002. 1047 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1048 the Session Description Protocol (SDP)", RFC 4145, 1049 September 2005. 1051 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1052 Description Protocol", RFC 4566, July 2006. 1054 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1055 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1057 10.2. Informative References 1059 [3GPP.24.008] 1060 3GPP, "Mobile radio interface Layer 3 specification; Core 1061 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1062 December 2005. 1064 [I-D.garcia-mmusic-sdp-misc-cap] 1065 Garcia, M., Veikkolainen, S., and R. Gilman, 1066 "Miscellaneous Capabilities Negotiation in the Session 1067 Description Protocol (SDP)", 1068 draft-garcia-mmusic-sdp-misc-cap-01 (work in progress), 1069 July 2009. 1071 [I-D.ietf-mmusic-sdp-capability-negotiation] 1072 Andreasen, F., "SDP Capability Negotiation", 1073 draft-ietf-mmusic-sdp-capability-negotiation-10 (work in 1074 progress), May 2009. 1076 [I-D.ietf-mmusic-sdp-media-capabilities] 1077 Gilman, R., Even, R., and F. Andreasen, "SDP media 1078 capabilities Negotiation", 1079 draft-ietf-mmusic-sdp-media-capabilities-08 (work in 1080 progress), July 2009. 1082 [ITU.E164.1991] 1083 International Telecommunications Union, "The International 1084 Public Telecommunication Numbering Plan", ITU- 1085 T Recommendation E.164, 1991. 1087 [ITU.Q931.1998] 1088 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1089 User - Network Interface Layer 3 Specification for Basic 1090 Call Control", ISO Standard 9594-1, May 1998. 1092 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1093 A., Peterson, J., Sparks, R., Handley, M., and E. 1094 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1095 June 2002. 1097 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1098 Jacobson, "RTP: A Transport Protocol for Real-Time 1099 Applications", STD 64, RFC 3550, July 2003. 1101 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1102 Video Conferences with Minimal Control", STD 65, RFC 3551, 1103 July 2003. 1105 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1106 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1107 RFC 3711, March 2004. 1109 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1110 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1112 URIs 1114 [1] 1116 Authors' Addresses 1118 Miguel A. Garcia-Martin 1119 Ericsson 1120 Calle Via de los Poblados 13 1121 Madrid, ES 28033 1122 Spain 1124 Email: miguel.a.garcia@ericsson.com 1126 Simo Veikkolainen 1127 Nokia 1128 P.O. Box 407 1129 NOKIA GROUP, FI 00045 1130 Finland 1132 Phone: +358 50 486 4463 1133 Email: simo.veikkolainen@nokia.com