idnits 2.17.1 draft-ietf-mmusic-sdp-cs-20.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 : ---------------------------------------------------------------------------- -- 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 (June 06, 2013) is 3974 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) -- Looks like a reference, but probably isn't: '1' on line 1511 == Missing Reference: 'RFCxxxx' is mentioned on line 1541, but not defined -- Looks like a reference, but probably isn't: '2' on line 1522 -- Looks like a reference, but probably isn't: '3' on line 1536 -- Possible downref: Non-RFC (?) normative reference: ref. 'ITU.Q931.1998' ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) == Outdated reference: A later version (-17) exists of draft-ietf-cuss-sip-uui-10 Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 6 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: December 08, 2013 Nokia 6 June 06, 2013 8 Session Description Protocol (SDP) Extension For Setting Audio and Video 9 Media Streams Over Circuit-Switched Bearers In The Public Switched 10 Telephone Network (PSTN) 11 draft-ietf-mmusic-sdp-cs-20 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 December 08, 2013. 37 Copyright Notice 39 Copyright (c) 2013 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 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 56 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 57 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 5 58 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 5 59 5. Protocol Description . . . . . . . . . . . . . . . . . . . . 7 60 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 7 61 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 7 62 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 7 63 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . 8 64 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 10 65 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . 11 66 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 11 67 5.2.3.3. User-User Information Element Correlation 68 Mechanism . . . . . . . . . . . . . . . . . . . . 12 69 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . 14 70 5.2.3.5. Extensions to correlation mechanisms . . . . . . 15 71 5.3. Negotiating the correlation mechanisms . . . . . . . . . 15 72 5.3.1. Determining the Direction of the Circuit-Switched 73 Bearer Setup . . . . . . . . . . . . . . . . . . . . 15 74 5.3.2. Populating the cs-correlation attribute . . . . . . . 16 75 5.3.3. Considerations on correlations . . . . . . . . . . . 17 76 5.4. Considerations for Usage of Existing SDP . . . . . . . . 18 77 5.4.1. Originator of the Session . . . . . . . . . . . . . . 18 78 5.4.2. Contact information . . . . . . . . . . . . . . . . . 18 79 5.5. Considerations for Usage of Third Party Call Control 80 (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . 19 81 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . 19 82 5.6.1. Generating the Initial Offer . . . . . . . . . . . . 19 83 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 21 84 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 24 85 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 26 86 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 26 87 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 27 88 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . 27 89 6.2. Advanced SDP example: Circuit-Switched Audio and 90 Video Streams . . . . . . . . . . . . . . . . . . . . . . 29 91 7. Security Considerations . . . . . . . . . . . . . . . . . . . 31 92 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 93 8.1. Registration of new cs-correlation SDP attribute . . . . 32 94 8.2. Registration of a new "nettype" value . . . . . . . . . . 33 95 8.3. Registration of new "addrtype" values . . . . . . . . . . 33 96 8.4. Registration of a new "proto" value . . . . . . . . . . . 33 98 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 99 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 100 10.1. Normative References . . . . . . . . . . . . . . . . . . 34 101 10.2. Informative References . . . . . . . . . . . . . . . . . 34 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 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 a better perceived quality of service. So, 136 according to this scenario, SDP and its higher layer session control 137 protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are 138 used over regular IP connectivity, while the audio or video is 139 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 leads to a re-negotiation of the 153 media streams. 155 Other use cases exist. For example, an endpoint might have at its 156 disposal circuit-switched and packet-switched connectivity, but the 157 same audio or video codecs are not feasible for both access networks. 158 For example, 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 Security and IANA 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", "NOT RECOMMENDED", "MAY", and 181 "OPTIONAL" in this document are to be interpreted as described in BCP 182 14, RFC 2119 [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 streams 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 bearer 192 MUST be available. 194 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 195 switched audio or video media streams with other complementary 196 media streams, for example, text messaging. 198 REQ-3: The mechanism MUST allow the endpoint to negotiate the 199 direction of the circuit-switched bearer, i.e., which endpoint is 200 active when initiating the circuit-switched bearer. 202 REQ-4: The mechanism MUST be independent of the type of the circuit- 203 switched access (e.g., Integrated Services Digital Network (ISDN), 204 Global System for Mobile Communication (GSM), etc.) 206 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 207 an incoming circuit-switched bearer with the one negotiated in 208 SDP, as opposed to another incoming call that is not related to 209 that. 211 REQ-6: It MUST be possible for endpoints to advertise different 212 lists of audio or video codecs in the circuit-switched audio or 213 video stream from those used in a packet-switched audio or video 214 stream. 216 REQ-7: It MUST be possible for endpoints to not advertise the list 217 of available codecs for circuit-switched audio or video streams. 219 4. Overview of Operation 221 The mechanism defined in this memo extends SDP and allows describing 222 an audio or video media stream established over a circuit-switched 223 bearer. A new network type ("PSTN") and a new protocol type ("PSTN") 224 are defined for the "c=" and "m=" lines to be able to describe a 225 media stream over a circuit-switched bearer. These SDP extensions 226 are described in Section 5.2. Since circuit-switched bearers are 227 connection-oriented media streams, the mechanism re-uses the 228 connection-oriented extensions defined in RFC 4145 [RFC4145] to 229 negotiate the active and passive sides of a connection setup. This 230 is further described in Section 5.3.1. 232 4.1. Example Call Flow 234 Consider the example presented in Figure 1. In this example, 235 Endpoint A is located in an environment where it has access to both 236 IP and circuit-switched bearers for communicating with other 237 endpoints. Endpoint A decides that the circuit-switched bearer 238 offers a better perceived quality of service for voice, and issues an 239 SDP Offer containing the description of an audio media stream over 240 circuit-switched bearer. 242 Endpoint A Endpoint B 243 | (1) SDP Offer (PSTN audio) | 244 |----------------------------------->| 245 | | 246 | (2) SDP Answer (PSTN audio) | 247 |<-----------------------------------| 248 | | 249 | PSTN call setup | 250 |<-----------------------------------| 251 | | 252 | | 253 |<===== media over PSTN bearer =====>| 254 | | 256 Figure 1: Example Flow 258 Endpoitn B receives the SDP offer and determines that it is located 259 in an environment where the IP based bearer is not suitable for real- 260 time audio media. However, Endpoint B also has PSTN circuit-switched 261 bearer available for audio. Endpoint B generates an SDP answer 262 containing a description of the audio media stream over a circuit- 263 switched bearer. 265 During the offer-answer exchange Endpoints A and B also agree the 266 direction in which the circuit-switched bearer should be established. 267 In this example, Endpoint B becomes the active party, in other words, 268 it establishes the circuit-switched call to the other endpoint. The 269 Offer/Answer exchange contains identifiers or references that can be 270 used on the circuit-switched network for addressing the other 271 endpoint, as well as information that is used to determine that the 272 incoming circuit-switched bearer establishment is related to the 273 ongoing session between the two endpoints. 275 Endpoint B establishes a circuit-switched bearer towards Endpoint A 276 using whatever mechanisms are defined for the network type in 277 question. When receiving the incoming circuit-switched connection 278 attempt, Endpoint A is able to determine that the attempt is related 279 to the session it is just establishing with B. 281 Endpoint A accepts the circuit-switched connection; the circuit- 282 switched bearer setup is completed. The two endpoints can now use 283 the circuit-switched connection for two-way audio media. 285 If, for some reason, Endpoint B would like to reject the offered 286 stream, it would set the port number of the specific stream to zero, 287 as specified in RFC3264 [RFC3264]. Also, if B does not understand 288 some of the SDP attributes specified in this document, it would 289 ignore them, as specified in RFC4566 [RFC4566]. 291 5. Protocol Description 293 5.1. Level of Compliance 295 Implementations according to this specification MUST implement the 296 SDP extensions described in Section 5.2, and MUST implement the 297 considerations discussed in Section 5.3, Section 5.4 and Section 5.6. 299 5.2. Extensions to SDP 301 This section provides the syntax and semantics of the extensions 302 required for providing a description of audio or video media streams 303 over circuit-switched bearers in SDP. 305 5.2.1. Connection Data 307 According to SDP [RFC4566], the connection data line in SDP has the 308 following syntax: 310 c= 312 where indicates the network type, indicates the 313 address type, and the is the connection address, 314 which is dependent on the address type. 316 At the moment, the only network type defined is "IN", which indicates 317 Internet network type. The address types "IP4" and "IP6" indicate 318 the type of IP addresses. 320 This memo defines a new network type for describing a circuit- 321 switched bearer network type in the PSTN. The mnemonic "PSTN" is 322 used for this network type. 324 For the address type, we initially consider the possibility of 325 describing E.164 telephone numbers. We define a new "E164" address 326 type to be used within the context of a "PSTN" network type. The 327 "E164" address type indicates that the connection address contains an 328 E.164 number represented according to the ITU-T E.164 [ITU.E164.1991] 329 recommendation. 331 It is a common convention that an international E.164 number contains 332 a leading '+' sign. For consistency's sake, we also require the 333 E.164 telephone is prepended with a '+', even if that is not 334 necessary for routing of the call in the PSTN network. 336 There are cases, though, when the endpoint is merely aware of a 337 circuit-switched bearer, without having further information about the 338 address type or the E.164 number allocated to it. In these cases a 339 dash ("-") is used to indicate an unknown address type or connection 340 address. This makes the connection data line be according to the SDP 341 syntax. 343 Please note that these "E164" and "-" address types defined in this 344 memo are exclusively defined to be used in conjunction with the 345 "PSTN" network type in accordance with [RFC4566]. Usage of "E164" or 346 "-" address types in conjunction with other network types may be 347 defined elsewhere. 349 This memo exclusively uses the international representation of E.164 350 numbers, i.e., those including a country code and, as described above 351 prepended with a '+' sign. Implementations conforming to this 352 specification and using the "E164" address type together with the 353 "PSTN" network type MUST use the 'global-number-digits' construction 354 specified in RFC 3966 [RFC3966] for representing international E.164 355 numbers. This representation requires the presence of the '+' sign, 356 and additionally allows for the presence of one or more 'visual- 357 separator' constructions for easier human readability (see 358 Section 5.7). 360 Note that and/or MUST NOT be omitted 361 when unknown since this would violate basic syntax of SDP [RFC4566]. 362 In such cases, they MUST be set to a "-". 364 The following are examples of the extension to the connection data 365 line: 367 c=PSTN E164 +441134960123 369 c=PSTN - - 371 When the is E164, the connection address is defined as 372 follows: 374 o an international E.164 number 376 When the is "-", the connection address is defined as 377 follows: 379 o the value "-", signifying that the address is unknown 381 o any value resulting from the production rule of connection-address 382 in RFC4566 [RFC4566], but in all cases any value encountered will 383 be ignored. 385 5.2.2. Media Descriptions 386 According to SDP [RFC4566], the media description line in SDP has the 387 following syntax: 389 m= ... 391 The subfield carries the media type. For establishing an 392 audio bearer, the existing "audio" media type is used. For 393 establishing a video bearer, the existing "video" media type is used. 395 The subfield is the transport port to which the media stream 396 is sent. Circuit-switched access lacks the concept of a port number, 397 and therefore the subfield does not carry any meaningful 398 value. In order to be compliant with SDP syntax, implementations 399 SHOULD set the subfield to the discard port value "9" and MUST 400 ignore it on reception. 402 According to RFC 3264 [RFC3264], a port number of zero in the offer 403 of a unicast stream indicates that the stream is offered but must not 404 be used. If a port number of zero is present in the answer of a 405 unicast stream, it indicates that the stream is rejected. These 406 rules are still valid when the media line in SDP represents a 407 circuit-switched bearer. 409 The subfield is the transport protocol. The circuit-switched 410 bearer uses whatever transport protocol it has available. This 411 subfield SHOULD be set to the mnemonic "PSTN" to be syntactically 412 correct with SDP [RFC4566] and to indicate the usage of circuit- 413 switched protocols in the PSTN. 415 The subfield is the media format description. In the classical 416 usage of SDP to describe RTP-based media streams, when the 417 subfield is set to "RTP/AVP" or "RTP/SAVP", the subfield 418 contains the payload types as defined in the RTP audio profile 419 [RFC3551]. 421 When "RTP/AVP" is used in the field, the subfield 422 contains the RTP payload type numbers. We use the subfield to 423 indicate the list of available codecs over the circuit-switched 424 bearer, by re-using the conventions and payload type numbers defined 425 for RTP/AVP. The RTP audio and video media types, when applied to 426 PSTN circuit-switched bearers, represent merely an audio or video 427 codec. If the endpoint is able to determine the list of available 428 codecs for circuit-switched media streams, it MUST use the 429 corresponding payload type numbers in the subfield. 431 In some cases, the endpoint is not able to determine the list of 432 available codecs for circuit-switched media streams. In this case, 433 in order to be syntactically compliant with SDP [RFC4566], the 434 endpoint MUST include a single dash ("-") in the subfield. 436 As per RFC 4566 [RFC4566], the media format descriptions are listed 437 in priority order. 439 Examples of media descriptions for circuit-switched audio streams 440 are: 442 m=audio 9 PSTN 3 0 8 444 m=audio 9 PSTN - 446 Similarly, an example of a media description for circuit-switched 447 video stream is: 449 m=video 9 PSTN 34 451 m=video 9 PSTN - 453 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 455 The endpoints should be able to correlate the circuit-switched bearer 456 with the session negotiated with SDP in order to avoid ringing for an 457 incoming circuit-switched bearer that is related to the session 458 controlled with SDP (and SIP). 460 Several alternatives exist for performing this correlation. This 461 memo provides three mutually non-exclusive correlation mechanisms. 462 Other correlation mechanisms may exist, and their usage will be 463 specified when need arises. All mechanisms share the same principle: 464 some unique information is sent in the SDP and in the circuit- 465 switched signaling protocol. If these pieces of information match, 466 then the circuit-switched bearer is part of the session described in 467 the SDP exchange. Otherwise, there is no guarantee that the circuit- 468 switched bearer is related to such session. 470 The first mechanism is based on the exchange of PSTN caller-ID 471 between the endpoints. The caller-ID is also available as the 472 Calling Party ID in the circuit-switched signaling. 474 The second mechanism is based on the inclusion in SDP of a value that 475 is also sent in the User-to-User Information Element that is part of 476 the bearer setup signaling in the PSTN. 478 The third mechanism is based on sending in SDP a string that 479 represents Dual Tone MultiFrequency (DTMF) digits that will be later 480 sent right after the circuit-switched bearer is established. 481 Implementations MUST support the three correlation mechanisms 482 specified in Section 5.2.3.2, Section 5.2.3.3 and Section 5.2.3.4, 483 and SHOULD include all supported mechanisms the initial Offer. 485 5.2.3.1. The "cs-correlation" attribute 487 In order to provide support for the correlation mechanisms, we define 488 a new media-level SDP attribute called "cs-correlation". This "cs- 489 correlation" attribute can include any of the "callerid", "uuie", or 490 "dtmf" subfields, which specify additional information required by 491 the Caller-ID, User to User Information, or DTMF correlation 492 mechanisms, respectively. The list of correlation mechanisms may be 493 extended by other specifications, see Section 5.2.3.5 for more 494 details. There MUST be at most one "cs-correlation" attribute per 495 media description. 497 The following sections provide more detailed information of these 498 subfields. 500 The values "callerid", "uuie" and "dtmf" refer to the correlation 501 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 502 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 503 Format (ABNF) syntax of the "cs-correlation" attribute is presented 504 in Section 5.7. 506 5.2.3.2. Caller-ID Correlation Mechanism 508 The Caller-ID correlation mechanisms consists of an exchange of the 509 calling party number as an international E.164 number in SDP, 510 followed by the availability of the Calling Party Number information 511 element in the call setup signaling of the circuit switched 512 connection. If both pieces of information match, the circuit- 513 switched bearer is correlated to the session described in SDP. 515 Example of inclusion of an international E.164 number in the "cs- 516 correlation" attribute is: 518 a=cs-correlation:callerid:+441134960123 520 The presence of the "callerid" subfield indicates that the endpoint 521 supports use of the calling party number as a means of correlating a 522 PSTN call with the session being negotiated. The "callerid" subfield 523 MAY be accompanied by the international E.164 number of the party 524 inserting the parameter. 526 Note that there are no guarantees that this correlation mechanism 527 works or is even available, due a number of problems: 529 o The endpoint might not be aware of its own E.164 number, in which 530 case it cannot populate the SDP appropriately. 532 o The Calling Party Number information element in the circuit- 533 switched signaling might not be available, e.g., due to policy 534 restrictions of the network operator or caller restriction due to 535 privacy. 537 o The Calling Party Number information element in the circuit- 538 switched signaling might be available, but the digit 539 representation of the E.164 number might differ from the one 540 expressed in the SDP, due to, e.g., lack of of country code. To 541 mitigate this problem implementations should consider only some of 542 the rightmost digits from the E.164 number for correlation. For 543 example, the numbers +44-113-496-0123 and 0113-496-0123 could be 544 considered as the same number. This is also the behavior of some 545 cellular phones, which correlate the incoming calling party with a 546 number stored in the phone book, for the purpose of displaying the 547 caller's name. Please refer to ITU-T E.164 reccommendation 548 [ITU.E164.1991] for consideration of the relevant number of digits 549 to consider. 551 5.2.3.3. User-User Information Element Correlation Mechanism 553 A second correlation mechanism is based on including in SDP a string 554 that represents the User-User Information Element that is part of the 555 call setup signaling of the circuit-switched bearer. The User-User 556 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 557 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 558 Element has a maximum size of 35 or 131 octets, depending on the 559 actual message of the PSTN protocol where it is included and the 560 network settings. 562 The mechanism works as follows: An endpoint creates a User-User 563 Information Element, according to the requirements of the call setup 564 signaling protocol. The same value is included in the SDP offer or 565 SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. 566 When the SDP Offer/Answer exchange is completed, each endpoint has 567 become aware of the value that will be used in the User-User 568 Information Element of the call setup message of the PSTN protocol. 569 The endpoint that initiates the call setup attempt includes this 570 value in the User-User Information Element. The recipient of the 571 call setup attempt can extract the User-User Information Element and 572 correlate it with the value previously received in the SDP. If both 573 values match, then the call setup attempt corresponds to that 574 indicated in the SDP. 576 According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information 577 Element (UUIE) identifier is composed of a first octet identifying 578 this as a User-User Information Element, a second octet containing 579 the Length of the user-user contents, a third octet containing a 580 Protocol Discriminator, and a value of up to 32 or 128 octets 581 (depending on network settings) containing the actual User 582 Information (see Figure 4-36 in ITU-T Q.931). The first two octets 583 of the UUIE MUST NOT be used for correlation, only the octets 584 carrying the Protocol Discriminator and the User Information value 585 are input to the creation of the value of the "uuie" subfield in the 586 "cs-correlation" attribute. Therefore, the value of the "uuie" 587 subfield in the "cs-correlation" attribute MUST start with the 588 Protocol Discriminator octet, followed by the User Information 589 octets. The value of the Protocol Discriminator octet is not 590 specified in this document; it is expected that organizations using 591 this technology will allocate a suitable value for the Protocol 592 Discriminator. 594 Once the binary value of the "uuie" subfield in the "cs-correlation" 595 attribute is created, it MUST be base 16 (also known as "hex") 596 encoded before it is inserted in SDP. Please refer to RFC 4648 597 [RFC4648] for a detailed description of base 16 encoding. The 598 resulting encoded value needs to have an even number of hexadecimal 599 digits, and MUST be considered invalid if it has an odd number. 601 Note that the encoding of the "uuie" subfield of the "cs- 602 correlation" attribute is largely inspired by the encoding of the 603 same value in the User-to-User header field in SIP, according to 604 the document "A Mechanism for Transporting User to User Call 605 Control Information in SIP" [I-D.ietf-cuss-sip-uui]. 607 As an example, an endpoint willing to send a UUIE containing a 608 protocol discriminator with the hexadecimal value of %x56 and an 609 hexadecimal User Information value of %xA390F3D2B7310023 would 610 include a "cs-correlation" attribute line as follows: 612 a=cs-correlation:uuie:56A390F3D2B7310023 614 Note that the value of the User-User Information Element is 615 considered as an opaque string and only used for correlation 616 purposes. Typically call signaling protocols impose requirements on 617 the creation of User-User Information Element for end-user protocol 618 exchange. The details regarding the generation of the User-User 619 Information Element are outside the scope of this specification. 621 Please note that there are no guarantees that this correlation 622 mechanism works. On one side, policy restrictions might not make the 623 User-User information available end to end in the PSTN. On the other 624 hand, the generation of the User-User Information Element is 625 controlled by the PSTN circuit-switched call protocol, which might 626 not offer enough freedom for generating different values from one 627 endpoint to another one, or from one call to another in the same 628 endpoint. This might result in the same value of the User-User 629 Information Element for all calls. 631 5.2.3.4. DTMF Correlation Mechanism 633 We introduce a third mechanism for correlating the circuit-switched 634 bearer with the session described with SDP. This is based on 635 agreeing on a sequence of digits that are negotiated in the SDP Offer 636 /Answer exchange and sent as Dual Tone Multifrequency (DTMF) ITU-T 637 Recommendation Q.23 [ITU.Q23.1988] tones over the circuit-switched 638 bearer once this bearer is established. If the DTMF digit sequence 639 received through the circuit-switched bearer matches the digit string 640 negotiated in the SDP, the circuit-switched bearer is correlated with 641 the session described in the SDP. The mechanism is similar to many 642 voice conferencing systems which require the user to enter a PIN code 643 using DTMF tones in order to be accepted in a voice conference. 645 The mechanism works as follows: An endpoint selects a DTMF digit 646 sequence. The same sequence is included in the SDP offer or SDP 647 answer, in a "dtmf" subfield of the "cs-correlation" attribute. When 648 the SDP Offer/Answer exchange is completed, each endpoint has become 649 aware of the DTMF sequence that will be sent right after the circuit- 650 switched bearer is set up. The endpoint that initiates the call 651 setup attempt sends the DTMF digits according to the procedures 652 defined for the circuit-switched bearer technology used. The 653 recipient (passive side of the bearer setup) of the call setup 654 attempt collects the digits and compares them with the value 655 previously received in the SDP. If the digits match, then the call 656 setup attempt corresponds to that indicated in the SDP. 658 Implementations are advised to select a number of DTMF digits that 659 provide enough assurance that the call is related, but on the 660 other hand do not prolong the bearer setup time unnecessarily. A 661 number of 5 to 10 digits is a good compromise. 663 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 664 would include a "cs-correlation" attribute line as follows: 666 a=cs-correlation:dtmf:14D*3 668 If the endpoints successfully agree on the usage of the DTMF digit 669 correlation mechanism, but the passive side does not receive any DTMF 670 digits after successful circuit-switched bearer setup, or receives a 671 set of DTMF digits that do not match the value of the "dtmf" 672 attribute (including receiving too many digits), the passive side 673 SHOULD consider that this DTMF mechanism has failed to correlate the 674 incoming call. 676 5.2.3.5. Extensions to correlation mechanisms 678 New values for the "cs-correlation" attribute may be specified. The 679 registration policy for new values is "Specification Required", see 680 Section 8. Any such specification MUST include a description of how 681 SDP Offer/Answer mechanism is used to negotiate the use of the new 682 values, taking into account how endpoints determine which side will 683 become active or passive (see Section 5.3 for more details). 685 If, during the Offer/Answer negotiation, either endpoint encounters 686 an unknown value in the "cs-correlation" attribute, it MUST consider 687 that mechanism as unsupported, and MUST NOT include that value in 688 subsequent Offer/Answer negotiation. 690 5.3. Negotiating the correlation mechanisms 692 The three correlation mechanisms presented above (based on called 693 party number, User-User Information Element and DTMF digit sending) 694 are non-exclusive, and can be used independently of each other. In 695 order to know how to populate the "cs-correlation" attribute, the 696 endpoints need to agree which endpoint will become the active party, 697 i.e., the one that will set up the circuit-switched bearer. 699 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 701 In order to avoid a situation where both endpoints attempt to 702 initiate a connection simultaneously, the direction in which the 703 circuit-switched bearer is set up MUST be negotiated during the Offer 704 /Answer exchange. 706 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 707 agree which endpoint acts as the active endpoint when initiating a 708 TCP connection. While RFC 4145 [RFC4145] was originally designed for 709 establishing TCP connections, it can be easily extrapolated to the 710 connection establishment of circuit-switched bearers. This 711 specification uses the concepts specified in RFC 4145 [RFC4145] for 712 agreeing on the direction of establishment of a circuit-switched 713 bearer. 715 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 716 "connection". The "setup" attribute indicates which of the endpoints 717 should initiate the connection establishment of the PSTN circuit- 718 switched bearer. Four values are defined in Section 4 of RFC 4145 719 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 720 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 721 attribute. 723 The "connection" attribute indicates whether a new connection is 724 needed or an existing connection is reused. The attribute can take 725 the values "new" or "existing". Please refer to Section 5 of RFC 726 4145 [RFC4145] for a detailed description of this attribute. 728 Implementations according to this specification MUST support the 729 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 730 but applied to circuit-switched bearers in the PSTN. 732 We define the active party as the one that initiates the circuit- 733 switched bearer after the Offer/Answer exchange. The passive party 734 is the one receiving the circuit-switched bearer. Either party may 735 indicate its desire to become the active or passive party during the 736 Offer/Answer exchange using the procedures described in Section 5.6. 738 5.3.2. Populating the cs-correlation attribute 740 By defining values for the subfields in the "a=cs-correlation" 741 attribute, the endpoint indicates that it is willing to become the 742 active party, and that it can use those values in the Calling party 743 number, User-User Information Element, or as DTMF tones during the 744 circuit-switched bearer setup. 746 Thus, the following rules apply: 748 An endpoint that can only become the active party in the circuit- 749 switched bearer setup MUST include all correlation mechanisms it 750 supports in the "a=cs-correlation" attribute, and MUST also 751 specify values for the subfields. 753 An endpoint that can only become the passive party in the circuit- 754 switched bearer setup MUST include all correlation mechanisms it 755 supports in the "a=cs-correlation" attribute, but MUST NOT specify 756 values for the subfields. 758 An endpoint that is willing to become either the active or passive 759 party (by including the "a=setup:actpass" attribute in the Offer), 760 MUST include all correlation mechanisms it supports in the "a=cs- 761 correlation" attribute, and MUST also specify values for the 762 subfields. 764 5.3.3. Considerations on correlations 766 Passive endpoints should expect an incoming CS call for setting up 767 the audio bearer. Passive endpoints MAY suppress the incoming CS 768 alert during a certain time periods. Additional restrictions can be 769 applied, such as the passive endpoint not alerting incoming calls 770 originated from the number that was observed during the offer/answer 771 negotiation. 773 There may be cases when an endpoint is not willing to include all 774 three correlation mechanisms in the "a=cs-correlation" attribute line 775 even if it supports all three mechansism. For example, some 776 correlation mechanism can be omitted if the endpoint is certain that 777 the PSTN network does not support carrying the correlation 778 identifier. Also, since using the DTMF based correlation mechanism 779 requires the call to be accepted before DTMF tones cane be sent, some 780 endpoints may enforce a policy restricting this due to for example 781 cost associated with received calls, making the DTMF based mechanism 782 unusable. 784 Note that it cannot be guaranteed that any given correlation 785 mechanism will succeed even if the usage of those was agreed 786 beforehand. This is due to the fact that the correlation mechanisms 787 require support from the circuit-switched bearer technology used. 789 Therefore, even a single positive indication using any of these 790 mechanisms SHOULD be interpreted by the passive endpoint so that the 791 circuit-switched bearer establishment is related to the ongoing 792 session, even if the other correlation mechanisms fail. 794 If, after negotiating one or more correlation mechanisms in the SDP 795 offer/answer exchange, an endpoint receives a circuit-switched bearer 796 with no correlation information present, the endpoint has two 797 choices: it can either treat the call as unrelated, or treat the call 798 as related to the ongoing session in the IP domain. 800 An endpoint may for example specify a time window after SDP offer/ 801 answer exchange during which received calls are treated as correlated 802 even if the signaling in the circuit-switched domain does not carry 803 any correlation information. In this case, there is a chance that 804 the call is erroneously treated as related to the ongoing session. 806 An endpoint may also choose to always treat an incoming call as 807 unrelated if the signaling in the circuit-switched domain does not 808 carry any correlation information. In this case, there is a chance 809 that the call is erroneously treated as unrelated. 811 Since, in these cases, no correlation information can be deduced from 812 the signaling, it is up to the implementation to decide how to 813 behave. One option is also to let the user decide whether to accept 814 the call as related, or to treat the call as unrelated. 816 5.4. Considerations for Usage of Existing SDP 818 5.4.1. Originator of the Session 820 According to SDP [RFC4566], the origin line in SDP has the following 821 syntax: 823 o= 824 826 Of interest here are the and fields, which 827 indicate the type of network and type of address, respectively. 828 Typically, this field carries the IP address of the originator of the 829 session. Even if the SDP was used to negotiate an audio or video 830 media stream transported over a circuit-switched bearer, the 831 originator is using SDP over an IP bearer. Therefore, and 832 fields in the "o=" line should be populated with the IP 833 address identifying the source of the signaling. 835 5.4.2. Contact information 837 SDP [RFC4566] defines the "p=" line which may include the phone 838 number of the person responsible for the conference. Even though 839 this line can carry a phone number, it is not suited for the purpose 840 of defining a connection address for the media. Therefore, we have 841 selected to define the PSTN specific connection addresses in the "c=" 842 line. 844 5.5. Considerations for Usage of Third Party Call Control (3PCC) 846 Best Current Practices for Third Party Call Control (3pcc) in the 847 Session Initiation Protocol (SIP) [RFC3725] outlines several flows 848 which are possible in third party call control scenarios and 849 recommends some flows for specific situations. 851 One of the assumptions in [RFC3725] is that an SDP Offer may include 852 a "black hole" connection address, which has the property that 853 packets sent to it will never leave the host which sent them. For 854 IPv4, this "black hole" connection address is 0.0.0.0, or a domain 855 name within the .invalid DNS top level domain. 857 When using an E.164 address scheme in the context of third-party call 858 control, when the User Agent needs to indicate an unknown phone 859 number, it MUST populate the of the SDP "c=" line with a 860 "-" string. 862 Note that this may result in the recipient of the initial offer 863 rejecting such offer if the recipient of the offer was not aware 864 of its own E.164 number. Consequently it will not be possible to 865 establish a circuit-switched bearer, since neither party is aware 866 of their E.164 number. 868 5.6. Offer/Answer mode extensions 870 In this section, we define extensions to the Offer/Answer model 871 defined in The Offer/Answer Model in SDP [RFC3264] to allow for PSTN 872 addresses to be used with the Offer/Answer model. 874 5.6.1. Generating the Initial Offer 876 The Offerer, wishing to use PSTN audio or video stream, MUST populate 877 the "c=" and "m=" lines as follows. 879 The endpoint MUST set the in the "c=" line to "PSTN", and 880 the to "E164". Furthermore, the endpoint SHOULD set the 881 field to its own international E.164 number 882 (with a leading "+"). If the endpoint is not aware of its own E.164 883 number, it MUST set the to "-". 885 In the "m=" line, the endpoint MUST set the subfield to 886 "audio" or "video", depending on the media type, and the 887 subfield to "PSTN". The subfield SHOULD be set to "9" (the 888 discard port). 890 The subfield carries the payload type number(s) the endpoint is 891 wishing to use. Payload type numbers in this case refer to the 892 codecs that the endpoint wishes to use on the PSTN media stream. For 893 example, if the endpoint wishes to use the GSM codec, it would add 894 payload type number 3 in the list of codecs. The list of payload 895 types MUST only contain those codecs the endpoint is able to use on 896 the PSTN bearer. In case the endpoint is not aware of the codecs 897 available for the circuit-switched media streams, it MUST include a 898 dash ("-") in the subfield. 900 The mapping table of static payload types numbers to payload types is 901 initally specified in [RFC3551] and maintained by IANA. For dynamic 902 payload types, the endpoint MUST define the set of valid encoding 903 names and related parameters using the "a=rtpmap" attribute line. 904 See Section 6 of RFC 4566 [RFC4566] for details. 906 When generating the Offer, the Offerer MUST include an attribute line 907 "a=cs-correlation" in the SDP offer. The Offerer MUST NOT include 908 more than one "cs-correlation" attribute per media decription. The 909 "a=cs-correlation" line SHOULD contain an enumeration of all the 910 correlation mechanisms supported by the Offerer, in the format of 911 subfields. See Section 5.3.3 for more information on usage of the 912 correlation mechanisms. 914 The current list of subfields include "callerid", "uuie" and "dtmf" 915 and they refer to the correlation mechanisms defined in 916 Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively. 918 If the Offerer supports any of the correlation mechanisms defined in 919 this memo, and is willing to become the active party, the Offerer 920 MUST add the "callerid", "uuie", and/or "dtmf" subfields and MUST 921 specify values for those subfields. 923 o the international E.164 number as the value in the "callerid" 924 subfield, 926 o the contents of the User-User information element as the value of 927 the "uuie" subfield, and/or 929 o the DTMF tone string as the value of the "dtmf" subfield 931 If the Offerer is only able to become the passive party in the 932 circuit-switched bearer setup, it MUST add at least one of the 933 possible correlation mechanisms, but MUST NOT specify values for 934 those subfields. 936 For example, if the Offerer is willing to use the User-User 937 Information element and DTMF digit sending mechanisms, but can only 938 become the passive party, it includes the following lines in the SDP: 940 a=cs-correlation:uuie dtmf 942 a=setup:passive 944 If, on the other hand, the Offerer is willing to use the User-User 945 Information element and the DTMF correlation mechanisms, and is able 946 to become the active or passive side, it includes the following lines 947 in the SDP: 949 a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 951 a=setup:actpass 953 The negotiation of the value of the 'setup' attribute takes place as 954 defined in Section 4.1 of RFC4145 [RFC4145]. 956 The Offerer states which role or roles it is willing to perform; and 957 the Answerer, taking the Offerer's willingness into consideration, 958 chooses which roles both endpoints will actually perform during the 959 circuit-switched bearer setup. 961 By 'active' endpoint, we refer to an endpoint that will establish the 962 circuit-switched bearer; and by 'passive' endpoint, we refer to an 963 endpoint that will receive a circuit-switched bearer. 965 If an Offerer does not know its international E.164 number, it MUST 966 set the 'a=setup' attribute to the value 'active'. If the Offerer 967 knows its international E.164 number, it SHOULD set the value to 968 either 'actpass' or 'passive'. 970 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 971 It indicates that the connection should not be established for the 972 time being. 974 The Offerer uses the "a=connection" attribute to decide whether a new 975 circuit-switched bearer is to be established or not. For the initial 976 Offer, the Offerer MUST use value 'new'. 978 5.6.2. Generating the Answer 980 If the Offer contained a circuit-switched audio or video stream, the 981 Answerer first determines whether it is able to accept and use such 982 streams. If the Answerer does not support or is not willing to use 983 circuit-switched media for the session, it MUST construct an Answer 984 where the port number for such media stream(s) is set to zero, 985 according to Section 6 of [RFC3264]. If the Answerer is willing to 986 use circuit-switched media for the session, it MUST ignore the 987 received port number (unless the port number is set to zero). 989 If the Offer included a "-" as the payload type number, it indicates 990 that the Offerer is not willing or able to define any specific 991 payload type. Most often, a "-" is expected to be used instead of 992 the payload type when the endpoint is not aware of or not willing to 993 define the codecs which will eventually be used on the circuit- 994 switched bearer. The circuit-switched signaling protocols have their 995 own means of negotiating or indicating the codecs, therefore an 996 Answerer SHOULD accept such Offers, and SHOULD set the payload type 997 to "-" also in the Answer. 999 If the Answerer explicitly wants to specify a codec for the circuit- 1000 switched media, it MAY set the respective payload numbers in the 1001 subfield in the answer. This behavior, however, is NOT 1002 RECOMMENDED. 1004 When receiving the Offer, the Answerer MUST determine whether it 1005 becomes the active or passive party. 1007 If the SDP in the Offer indicates that the Offerer is only able to 1008 become the active party, the Answerer needs to determine whether it 1009 is able to become the passive party. If this is not possible e.g. 1010 due to the Answerer not knowing its international E.164 number, the 1011 Answerer MUST reject the circuit-switched media by setting the port 1012 number to zero on the Answer. If the Answerer is aware of its 1013 international E.164 number, it MUST include the "a=setup" attribute 1014 in the Answer and set it to value "passive" or "holdconn". The 1015 Answerer MUST also include its E.164 number on the "c=" line. 1017 If the SDP in the Offer indicates that the Offerer is only able to 1018 become the passive party, the Answerer MUST verify that the Offerer's 1019 E.164 number is included in the "c=" line of the Offer. If the 1020 number is included, the Answerer MUST include the "a=setup" attribute 1021 in the Answer and set it to value "active" or "holdconn". If the 1022 number is not included, or the recipient of the Offer is not willing 1023 to establish a connection the E.164 based on a priori knowledge of 1024 cost, or other reasons, call establishment is not possible, and the 1025 Answerer MUST reject the circuit-switched media by setting the port 1026 number to zero in the Answer. 1028 If the SDP in the Offer indicates that the Offerer is able to become 1029 either the active or passive party, the Answerer determines which 1030 role it will take. If the Offer includes an international E.164 1031 number in the "c=" line, the Answerer SHOULD become the active party. 1032 If the Answerer does not become the active party, and if the Answerer 1033 is aware of its E.164 number, it MUST become the passive party. If 1034 the Answerer does not become the active or the passive party, it MUST 1035 reject the circuit-switched media by setting the port number to zero 1036 in the Answer. 1038 For each media description where the Offer includes a "a=cs- 1039 correlation" attribute, the Answerer MUST select from the Offer those 1040 correlation mechanisms it supports, and include in the Answer one "a 1041 =cs-correlation" attribute line containing those mechanisms it is 1042 willing to use. The Answerer MUST only add one "a=cs-correlation" 1043 attribute in those media descriptions where also the Offer included a 1044 "a=cs-correlation" attribute. The Answerer MUST NOT add any 1045 mechanisms which were not included in the offer. If there are more 1046 than one "cs-correlation" attributes per media description in the 1047 Offer, the Answerer MUST discard all but the first for any media 1048 description. Also, the Answerer MUST discard all unknown "cs- 1049 correlation" attribute values. 1051 If the Answerer becomes the active party, it MUST add a value to any 1052 of the possible subfields. 1054 If the Answerer becomes the passive party, it MUST NOT add any values 1055 to the subfields in the "cs-correlation" attribute. 1057 After generating and sending the Answer, if the Answerer became the 1058 active party, it 1060 o MUST extract the E.164 number from the "c=" line of the Offer and 1061 MUST establish a circuit-switched bearer to that address. 1063 o if the SDP Answer contained a value for the "callerid" subfield, 1064 MUST set the Calling Party Number Information Element to that 1065 number, 1067 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1068 send the User-User Information element according to the rules 1069 defined for the circuit-switched technology used, and set the 1070 value of the Information Element to that received in the SDP 1071 Offer, 1073 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1074 send those DTMF digits according to the circuit-switched 1075 technology used. 1077 If, on the other hand, the Answerer became the passive party, it 1079 o MUST be prepared to receive a circuit-switched bearer, 1080 o if the Offer contained a value for the "callerid" subfield, MUST 1081 compare that value to the Calling Party Number Information Element 1082 of the circuit-switched bearer. If the received Calling Party 1083 Number Information Element matches the value of the "callerid" 1084 subfield, the call SHOULD be treated as correlated to the ongoing 1085 session. 1087 o if the Offer contained a value for the "dtmf" subfield, MUST be 1088 prepared to receive and collect DTMF digits once the circuit- 1089 switched bearer is set up. The Answerer MUST compare the received 1090 DTMF digits to the value of the "dtmf" subfield. If the received 1091 DTMF digits match the value of the "dtmf" subfield in the "cs- 1092 correlation" attribute, the call SHOULD be treated as correlated 1093 to the ongoing session. 1095 o if the Offer contained a value for the "uuie" subfield, MUST be 1096 prepared to receive a User-User Information element once the 1097 circuit-switched bearer is set up. The Answerer MUST compare the 1098 received UUI to the value of the "uuie" subfield. If the value of 1099 the received UUI matches the value of the "uuie" subfield, the 1100 call SHOULD be treated as correlated to the ongoing session. 1102 If the Answerer becomes the active party, generates an SDP answer, 1103 and then it finds out that the circuit-switched call cannot be 1104 established, then the Answerer MUST create a new SDP offer where 1105 circuit-switched stream is removed from the session (actually, by 1106 setting the corresponding port in the m= line to zero) and send it to 1107 its counterpart. This is to synchronize both parties (and potential 1108 intermediaries) on the state of the session. 1110 5.6.3. Offerer processing the Answer 1112 When receiving the Answer, if the SDP does not contain "a=cs- 1113 correlation" attribute line, the Offerer should take that as an 1114 indication that the other party does not support or is not willing to 1115 use the procedures defined in the document for this session, and MUST 1116 revert to normal processing of SDP. 1118 When receiving the Answer, the Offerer MUST first determine whether 1119 it becomes the active or passive party, as described in 1120 Section 5.3.1. 1122 If the Offerer becomes the active party, it 1124 o MUST extract the E.164 number from the "c=" line and MUST 1125 establish a circuit-switched bearer to that address. 1127 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1128 send the User-User Information element according to the rules 1129 defined for the circuit-switched technology used, and set the 1130 value of the Information Element to that received in the SDP 1131 Answer, 1133 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1134 send those DTMF digits according to the circuit-switched 1135 technology used. 1137 If the Offerer becomes the passive party, it 1139 o MUST be prepared to receive a circuit-switched bearer, 1141 o Note that if delivery of the Answer is delayed for some reason, 1142 the circuit-switched call attempt may arrive at the Offerer before 1143 the Answer has been processed. In this case, since the 1144 correlation mechanisms are negotiated as part of the Offer/Answer 1145 exchange, the Answerer cannot know whether or not the incoming 1146 circuit-switched call attempt is correlated with the session being 1147 negotiated, the Offerer SHOULD answer the circuit-switched call 1148 attempt only after it has received and processed the Answer. 1150 o If the Answer contained a value for the "dtmf" subfield, the 1151 Offerer MUST be prepared to receive and collect DTMF digits once 1152 the circuit-switched bearer is set up. The Offerer SHOULD compare 1153 the received DTMF digits to the value of the "dtmf" subfield. If 1154 the received DTMF digits match the value of the "dtmf" subfield in 1155 the "cs-correlation" attribute, the call SHOULD be treated as 1156 correlated to the ongoing session. 1158 o If the Answer contained a value for the "uuie" subfield, the 1159 Offerer MUST be prepared to receive a User-User Information 1160 element once the circuit-switched bearer is set up. The Offerer 1161 SHOULD compare the received UUI to the value of the "uuie" 1162 subfield. If the value of the received UUI matches the value of 1163 the "uuie" subfield, the call SHOULD be treated as correlated to 1164 the ongoing session. 1166 According the Offer/Answer Model with SDP [RFC3264], the Offerer 1167 needs to be ready to receive media as soon as the Offer has been 1168 sent. It may happen that the Answerer, if it became the active 1169 party, will initiate a circuit-switched bearer setup which will 1170 arrive at the Offerer before the Answer has arrived. However, the 1171 Offerer needs to receive the Answer and examine the information about 1172 the correlation mechanisms in order to successfully perform 1173 correlation of the circuit-switched call to the session. Therefore, 1174 if the Offerer receives an incoming circuit-switched call, it MUST 1175 NOT accept the call before the Answer has been received. If no 1176 Answer is received during an implementation specific time, the 1177 Offerer MUST either modify the session according to [RFC3264] or 1178 terminate it according to the session signaling procedures in 1179 question (for terminating a SIP session, see Section 15 of 1180 [RFC3261]). 1182 5.6.4. Modifying the session 1184 If, at a later time, one of the parties wishes to modify the session, 1185 e.g., by adding new media stream, or by changing properties used on 1186 an existing stream, it may do so via the mechanisms defined for An 1187 Offer/Answer Model with SDP [RFC3264]. 1189 If there is an existing circuit-switched bearer between the 1190 endpoints, and the Offerer wants to reuse that, the Offerer MUST set 1191 the value of the "a=connection" attribute to 'existing'. 1193 If either party removes the circuit-switched media from the session 1194 (by setting the port number to zero), it MUST terminate the circuit- 1195 switched bearer using whatever mechanism is appropriate for the 1196 technology in question. 1198 If either party wishes to drop and reestablish an existing call, that 1199 party MUST first remove the circuit-switched media from the session 1200 by setting the port number to zero, and then use another Offer/Answer 1201 exchange where it MUST set the "a=connection" attribute to 'new'". 1202 If the media types are different (for example, a different codec will 1203 be used for the circuit-switched bearer), the media descriptions for 1204 terminating the existing bearer and the new bearer can be in the same 1205 Offer. 1207 5.7. Formal Syntax 1209 The following is the formal Augmented Backus-Naur Form (ABNF) 1210 [RFC5234] syntax that supports the extensions defined in this 1211 specification. The syntax is built above the SDP [RFC4566] and the 1212 tel URI [RFC3966] grammars. Implementations according to this 1213 specification MUST be compliant with this syntax. 1215 Figure 2 shows the formal syntax of the extensions defined in this 1216 memo. 1218 ; extension to the connection field originally specified 1219 ; in RFC4566 1221 connection-field = [%x63 "=" nettype SP addrtype SP 1222 connection-address CRLF] 1223 ; CRLF defined in RFC5234 1225 ;nettype and addrtype are defined in RFC 4566 1227 connection-address /= global-number-digits / "-" 1228 ; global-number-digits specified in RFC3966 1230 ;subrules for correlation attribute 1231 attribute /= cs-correlation-attr 1232 ; attribute defined in RFC4566 1233 cs-correlation-attr = "cs-correlation:" corr-mechanisms 1234 corr-mechanisms = corr-mech *(SP corr-mech) 1235 corr-mech = caller-id-mech / uuie-mech / 1236 dtmf-mech / ext-mech 1237 caller-id-mech = "callerid" [":" caller-id-value] 1238 caller-id-value = "+" 1*15DIGIT 1239 ; DIGIT defined in RFC5234 1240 uuie-mech = "uuie" [":" uuie-value] 1241 uuie-value = 1*65(HEXDIG HEXDIG) 1242 ;This represents up to 130 HEXDIG 1243 ; (65 octets) 1244 ;HEXDIG defined in RFC5234 1245 ;HEXDIG defined as 0-9, A-F 1246 dtmf-mech = "dtmf" [":" dtmf-value] 1247 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1248 ;0-9, A-D, '#' and '*' 1249 ext-mech = ext-mech-name [":" ext-mech-value] 1250 ext-mech-name = token 1251 ext-mech-value = token 1252 ; token is specified in RFC4566 1254 Figure 2: Syntax of the SDP extensions 1256 6. Examples 1258 In the examples below, where an SDP line is too long to be displayed 1259 as a single line, a breaking character "\" indicates continuation in 1260 the following line. Note that this character is included for display 1261 purposes only. Implementations MUST write a single line without 1262 breaks. 1264 6.1. Single PSTN audio stream 1266 Endpoint A Endpoint B 1267 | | 1268 | (1) SDP Offer (PSTN audio) | 1269 |--------------------------------->| 1270 | | 1271 | (2) SDP Answer (PSTN audio) | 1272 |<---------------------------------| 1273 | | 1274 | PSTN call setup | 1275 |<---------------------------------| 1276 | | 1277 |<==== media over PSTN bearer ====>| 1278 | | 1280 Figure 3: Basic flow 1282 Figure 3 shows a basic example that describes a single audio media 1283 stream over a circuit-switched bearer. Endpoint A generates a SDP 1284 Offer which is shown in Figure 4. The Offer describes a PSTN 1285 circuit-switched bearer in the "m=" and "c=" line where it also 1286 indicates its international E.164 number format. Additionally, 1287 Endpoint A expresses that it can initiate the circuit-switched bearer 1288 or be the recipient of it in the "a=setup" attribute line. The SDP 1289 Offer also includes correlation identifiers that this endpoint will 1290 insert in the Calling Party Number and/or User-User Information 1291 Element of the PSTN call setup if eventually this endpoint initiates 1292 the PSTN call. 1294 v=0 1295 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 1296 s= 1297 t=0 0 1298 m=audio 9 PSTN - 1299 c=PSTN E164 +441134960123 1300 a=setup:actpass 1301 a=connection:new 1302 a=cs-correlation:callerid:+441134960123 \ 1303 uuie:56A390F3D2B7310023 1305 Figure 4: SDP offer (1) 1307 Endpoint B generates a SDP Answer (Figure 5), describing a PSTN audio 1308 media on port 9 without information on the media sub-type on the "m=" 1309 line. The "c=" line contains B's international E.164 number. In the 1310 "a=setup" line Endpoint B indicates that it is willing to become the 1311 active endpoint when establishing the PSTN call, and it also includes 1312 the "a=cs-correlation" attribute line containing the values it is 1313 going to include in the Calling Party Number and User-User IE of the 1314 PSTN call establishment. 1316 v=0 1317 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1318 s= 1319 t=0 0 1320 m=audio 9 PSTN - 1321 c=PSTN E164 +441134960124 1322 a=setup:active 1323 a=connection:new 1324 a=cs-correlation:callerid:+441134960124 \ 1325 uuie:74B9027A869D7966A2 1327 Figure 5: SDP Answer with circuit-switched media 1329 When Endoint A receives the Answer, it examines that B is willing to 1330 become the active endpoint when setting up the PSTN call. Endoint A 1331 temporarily stores B's E.164 number and the User-User IE value of the 1332 "cs-correlation" attribute, and waits for a circuit-switched bearer 1333 establishment. 1335 Endpoint B initiates a circuit-switched bearer using whatever 1336 circuit-switched technology is available for it. The called party 1337 number is set to A's number, and calling party number is set to B's 1338 own number. Endpoint B also sets the User-User Information Element 1339 value to the one contained in the SDP Answer. 1341 When Endpoint A receives the circuit-switched bearer establishment, 1342 it examines the UUIE and the calling party number, and by comparing 1343 those received during O/A exchange determines that the call is 1344 related to the SDP session. 1346 It may also be that neither the UUIE nor the calling party number is 1347 received by the called party, or the format of the calling party 1348 number is changed by the PSTN. Implementations may still accept such 1349 call establishment attempts as being related to the session that was 1350 established in the IP network. As it cannot be guaranteed that the 1351 values used for correlation are always passed intact through the 1352 network, they should be treated as additional hints that the circuit- 1353 switched bearer is actually related to the session. 1355 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams 1357 Endpoint A Endpoint B 1358 | | 1359 | (1) SDP Offer (PSTN audio and video) | 1360 |------------------------------------------->| 1361 | | 1362 | (2) SDP Answer (PSTN audio) | 1363 |<-------------------------------------------| 1364 | | 1365 | PSTN call setup | 1366 |<-------------------------------------------| 1367 | | 1368 |<======== media over PSTN bearer ==========>| 1369 | | 1371 Figure 6: Circuit-Switched Audio and Video streams 1373 Figure 6 shows an example of negotiating audio and video media 1374 streams over circuit-switched bearers. 1376 v=0 1377 o=alice 2890844526 2890842807 IN IP4 192.0.2.5 1378 s= 1379 t=0 0 1380 a=setup:actpass 1381 a=connection:new 1382 c=PSTN E164 +441134960123 1383 m=audio 9 PSTN - 1384 a=cs-correlation:dtmf:1234536 1385 m=video 9 PSTN 34 1386 a=rtpmap:34 H263/90000 1387 a=cs-correlation:callerid:+441134960123 1389 Figure 7: SDP offer with circuit-switched audio and video (1) 1391 Upon receiving the SDP offer described in Figure 7, Endpoint B 1392 rejects the video stream as the device does not currently support 1393 video, but accepts the circuit-switched audio stream. As Endoint A 1394 indicated that it is able to become either the active or passive 1395 party, Endpoint B gets to select which role it would like to take. 1396 Since the Offer contained the international E.164 number of Endpoint 1397 A, Endpoint B decides that it becomes the active party in setting up 1398 the circuit-switched bearer. B includes a new value in the "dtmf" 1399 subfield of the "cs-correlation" attribute, which it is going to send 1400 as DTMF tones once the bearer setup is complete. The Answer is 1401 described in Figure 8 1403 v=0 1404 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1405 s= 1406 t=0 0 1407 a=setup:active 1408 a=connection:new 1409 c=PSTN E164 +441134960124 1410 m=audio 9 PSTN - 1411 a=cs-correlation:dtmf:654321 1412 m=video 0 PSTN 34 1413 a=cs-correlation:callerid:+441134960124 1415 Figure 8: SDP answer with circuit-switched audio and video (2) 1417 7. Security Considerations 1419 This document provides an extension on top of RFC 4566 [RFC4566], and 1420 RFC 3264 [RFC3264]. As such, the security considerations of those 1421 documents apply. 1423 This memo provides mechanisms to agree on a correlation identifier or 1424 identifiers that are used to evaluate whether an incoming circuit- 1425 switched bearer is related to an ongoing session in the IP domain. 1426 If an attacker replicates the correlation identifier and establishes 1427 a call within the time window the receiving endpoint is expecting a 1428 call, the attacker may be able to hijack the circuit-switched bearer. 1429 These types of attacks are not specific to the mechanisms presented 1430 in this memo. For example, caller ID spoofing is a well known attack 1431 in the PSTN. Users are advised to use the same caution before 1432 revealing sensitive information as they would on any other phone 1433 call. Furthermore, users are advised that mechanisms that may be in 1434 use in the IP domain for securing the media, like Secure RTP (SRTP) 1435 [RFC3711], are not available in the CS domain. 1437 For the purposes of establishing a circuit-switched bearer, the 1438 active endpoint needs to know the passive endpoint's phone number. 1439 Phone numbers are sensitive information, and some people may choose 1440 not to reveal their phone numbers when calling using supplementary 1441 services like Calling Line Identification Restriction (CLIR) in GSM. 1442 Implementations should take the caller's preferences regarding 1443 calling line identification into account if possible, by restricting 1444 the inclusion of the phone number in SDP "c=" line if the caller has 1445 chosen to use CLIR. If this is not possible, implementations may 1446 present a prompt informing the user that their phone number may be 1447 transmitted to the other party. 1449 Similarly as with IP addresses, if there is a desire to protect the 1450 SDP containing phone numbers carried in SIP, implementers are advised 1451 to follow the security mechanisms defined in [RFC3261]. 1453 It is possible that an attacker creates a circuit-switched session 1454 whereby the attacked endpoint should dial a circuit-switched number, 1455 perhaps even a premium-rate telephone number. To mitigate the 1456 consequences of this attack, endpoints MUST authenticate and trust 1457 remote endpoints users who try to remain passive in the circuit- 1458 switched connection establishment. It is RECOMMENDED that endpoints 1459 have local policies precluding the active establishment of circuit 1460 switched connections to certain numbers (e.g., international, 1461 premium, long distance). Additionally, it is strongly RECOMMENDED 1462 that the end user is asked for consent prior to the endpoint 1463 initiating a circuit-switched connection. 1465 8. IANA Considerations 1467 This document instructs IANA to register a number of SDP tokens 1468 according to the following data. 1470 8.1. Registration of new cs-correlation SDP attribute 1472 Contact: Miguel Garcia 1474 Attribute name: cs-correlation 1476 Long-form attribute name: PSTN Correlation Identifier 1478 Type of attribute: media level only 1480 Subject to charset: No 1482 Description: This attribute provides the Correlation Identifier 1483 used in PSTN signaling 1485 Appropriate values:see Section 5.2.3.1 1487 Specification: RFC XXXX 1489 The IANA is requested to create a subregistry for 'cs-correlation' 1490 attribute under the Session Description Protocol (SDP) Parameters 1491 registry. The initial values for the subregistry are presented in 1492 the following, and IANA is requested to add them into its database: 1494 Value of 'cs-correlation' attribute Reference Description 1495 ----------------------------------- --------- ----------- 1496 callerid RFC XXXX Caller ID 1497 uuie RFC XXXX User-User 1498 Information Element 1499 dtmf RFC XXXX Dual-tone 1500 Multifrequency 1502 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1503 reference to the RFC number of this draft. 1505 As per the terminology in [RFC5226], the registration policy for new 1506 values of 'cs-correlation' parameter is 'Specification Required'. 1508 8.2. Registration of a new "nettype" value 1510 This memo provides instructions to IANA to register a new "nettype" 1511 in the Session Description Protocol Parameters registry [1]. The 1512 registration data, according to RFC 4566 [RFC4566] follows. 1514 Type SDP Name Reference 1515 ---- ------------------ --------- 1516 nettype PSTN [RFCxxxx] 1518 8.3. Registration of new "addrtype" values 1520 This memo provides instructions to IANA to register two new 1521 "addrtype" in the Session Description Protocol Parameters registry 1522 [2]. The registration data, according to RFC 4566 [RFC4566] follows. 1524 Type SDP Name Reference 1525 ---- ------------------ --------- 1526 addrtype E164 [RFCxxxx] 1527 addrtype - [RFCxxxx] 1529 Note: RFC XXXX defines the "E164" and "-" addrtypes in the context of 1530 the "PSTN" nettype only. Please refer to the relevant RFC for a 1531 description of that representation. 1533 8.4. Registration of a new "proto" value 1535 This memo provides instructions to IANA to register a new "proto" in 1536 the Session Description Protocol Parameters registry [3]. The 1537 registration data, according to RFC 4566 [RFC4566] follows. 1539 Type SDP Name Reference 1540 -------------- --------------------------- --------- 1541 proto PSTN [RFCxxxx] 1543 The related "fmt" namespace re-uses the conventions and payload type 1544 number defined for RTP/AVP. In RFC XXXX, the RTP audio and video 1545 media types, when applied to PSTN circuit-switched bearers, represent 1546 merely an audio or video codec in its native format directly on top 1547 of a single PSTN bearer. 1549 In come cases, the endpoint is not able to determine the list of 1550 available codecs for circuit-switched media streams. In this case, 1551 in order to be syntactically compliant with SDP [RFC4566], the 1552 endpoint MUST include a single dash ("-") in the subfield. 1554 9. Acknowledgments 1556 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1557 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1558 Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom 1559 Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing 1560 their insight and comments on this document. 1562 10. References 1564 10.1. Normative References 1566 [ITU.Q931.1998] 1567 , "Digital Subscriber Signalling System No. 1 (DSS 1) - 1568 ISDN User - Network Interface Layer 3 Specification for 1569 Basic Call Control", ISO Standard 9594-1, May 1998. 1571 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1572 Requirement Levels", BCP 14, RFC 2119, March 1997. 1574 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1575 with Session Description Protocol (SDP)", RFC 3264, June 1576 2002. 1578 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 1579 3966, December 2004. 1581 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1582 the Session Description Protocol (SDP)", RFC 4145, 1583 September 2005. 1585 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1586 Description Protocol", RFC 4566, July 2006. 1588 [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data 1589 Encodings", RFC 4648, October 2006. 1591 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1592 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 1593 May 2008. 1595 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1596 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1598 10.2. Informative References 1600 [I-D.ietf-cuss-sip-uui] 1601 Johnston, A. and J. Rafferty, "A Mechanism for 1602 Transporting User to User Call Control Information in 1603 SIP", draft-ietf-cuss-sip-uui-10 (work in progress), April 1604 2013. 1606 [ITU.E164.1991] 1607 International Telecommunications Union, "The International 1608 Public Telecommunication Numbering Plan", ITU-T 1609 Recommendation E.164, 1991. 1611 [ITU.Q23.1988] 1612 International Telecommunications Union, "Technical 1613 features of push-button telephone sets ", ITU-T Technical 1614 Recommendation Q.23, 1988. 1616 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1617 Session Description Protocol (SDP) for ATM Bearer 1618 Connections", RFC 3108, May 2001. 1620 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1621 A., Peterson, J., Sparks, R., Handley, M., and E. 1622 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1623 June 2002. 1625 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1626 Jacobson, "RTP: A Transport Protocol for Real-Time 1627 Applications", STD 64, RFC 3550, July 2003. 1629 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1630 Video Conferences with Minimal Control", STD 65, RFC 3551, 1631 July 2003. 1633 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1634 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1635 RFC 3711, March 2004. 1637 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 1638 Camarillo, "Best Current Practices for Third Party Call 1639 Control (3pcc) in the Session Initiation Protocol (SIP)", 1640 BCP 85, RFC 3725, April 2004. 1642 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1643 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1645 [TS.24.008] 1646 3GPP , "Mobile radio interface Layer 3 specification; Core 1647 network protocols; Stage 3 ", 3GPP TS 24.008 3.20.0, 1648 December 2005. 1650 Authors' Addresses 1652 Miguel A. Garcia-Martin 1653 Ericsson 1654 Calle Via de los Poblados 13 1655 Madrid, ES 28033 1656 Spain 1658 Email: miguel.a.garcia@ericsson.com 1660 Simo Veikkolainen 1661 Nokia 1662 P.O. Box 226 1663 NOKIA GROUP, FI 00045 1664 Finland 1666 Phone: +358 50 486 4463 1667 Email: simo.veikkolainen@nokia.com