idnits 2.17.1 draft-ietf-mmusic-sdp-cs-16.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 (January 9, 2013) is 4118 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 1524, but not defined ** 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-08 Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MMUSIC WG M. Garcia-Martin 3 Internet-Draft Ericsson 4 Intended status: Standards Track S. Veikkolainen 5 Expires: July 13, 2013 Nokia 6 January 9, 2013 8 Session Description Protocol (SDP) Extension For Setting Up Audio and 9 Video Media Streams Over Circuit-Switched Bearers In The Public Switched 10 Telephone Network (PSTN) 11 draft-ietf-mmusic-sdp-cs-16 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 July 13, 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 . . . . . . . . . . . . . . . . . . . . . . . . . 5 55 2. Conventions Used in This Document . . . . . . . . . . . . . . 6 56 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 57 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 7 58 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 7 59 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 9 60 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 9 61 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 9 62 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 9 63 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 11 64 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 65 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 12 66 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 13 67 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 13 68 5.2.3.3. User-User Information Element Correlation 69 Mechanism . . . . . . . . . . . . . . . . . . . . 14 70 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 16 71 5.2.3.5. Extensions to correlation mechanisms . . . . . . . 17 72 5.3. Negotiating the correlation mechanisms . . . . . . . . . . 17 73 5.3.1. Determining the Direction of the Circuit-Switched 74 Bearer Setup . . . . . . . . . . . . . . . . . . . . . 18 75 5.3.2. Populating the cs-correlation attribute . . . . . . . 18 76 5.3.3. Considerations on successful correlation . . . . . . . 19 77 5.4. Considerations for Usage of Existing SDP . . . . . . . . . 20 78 5.4.1. Originator of the Session . . . . . . . . . . . . . . 20 79 5.4.2. Contact information . . . . . . . . . . . . . . . . . 20 80 5.5. Considerations for Usage of Third Party Call Control 81 (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . . 20 82 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . . 21 83 5.6.1. Generating the Initial Offer . . . . . . . . . . . . . 21 84 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 23 85 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 26 86 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 27 87 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 27 88 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 89 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . . 29 90 6.2. Advanced SDP example: Circuit-Switched Audio and Video 91 Streams . . . . . . . . . . . . . . . . . . . . . . . . . 31 92 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 93 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 94 8.1. Registration of new cs-correlation SDP attribute . . . . . 33 95 8.2. Registration of a new "nettype" value . . . . . . . . . . 34 96 8.3. Registration of new "addrtype" values . . . . . . . . . . 34 97 8.4. Registration of a new "proto" value . . . . . . . . . . . 34 98 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 99 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 100 10.1. Normative References . . . . . . . . . . . . . . . . . . . 35 101 10.2. Informative References . . . . . . . . . . . . . . . . . . 36 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 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 192 bearer MUST be available. 194 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 195 switched audio or video media streams with other 196 complementary media streams, for example, text messaging. 198 REQ-3: The mechanism MUST allow the endpoint to negotiate the 199 direction of the circuit-switched bearer, i.e., which 200 endpoint is active when initiating the circuit-switched 201 bearer. 203 REQ-4: The mechanism MUST be independent of the type of the circuit- 204 switched access (e.g., Integrated Services Digital Network 205 (ISDN), Global System for Mobile Communication (GSM), etc.) 207 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 208 an incoming circuit-switched bearer with the one negotiated 209 in SDP, as opposed to another incoming call that is not 210 related to that. 212 REQ-6: It MUST be possible for endpoints to advertise different 213 lists of audio or video codecs in the circuit-switched audio 214 or video stream from those used in a packet-switched audio or 215 video stream. 217 REQ-7: It MUST be possible for endpoints to not advertise the list 218 of available codecs for circuit-switched audio or video 219 streams. 221 4. Overview of Operation 223 The mechanism defined in this memo extends SDP and allows describing 224 an audio or video media stream established over a circuit-switched 225 bearer. A new network type ("PSTN") and a new protocol type ("PSTN") 226 are defined for the "c=" and "m=" lines to be able to describe a 227 media stream over a circuit-switched bearer. These SDP extensions 228 are described in Section 5.2. Since circuit-switched bearers are 229 connection-oriented media streams, the mechanism re-uses the 230 connection-oriented extensions defined in RFC 4145 [RFC4145] to 231 negotiate the active and passive sides of a connection setup. This 232 is further described in Section 5.3.1. 234 4.1. Example Call Flow 236 Consider the example presented in Figure 1. In this example, Alice 237 is located in an environment where she has access to both IP and 238 circuit-switched bearers for communicating with other endpoints. 239 Alice decides that the circuit-switched bearer offers a better 240 perceived quality of service for voice, and issues an SDP Offer 241 containing the description of an audio media stream over circuit- 242 switched bearer. 244 Alice Bob 245 | (1) SDP Offer (PSTN audio) | 246 |----------------------------------->| 247 | | 248 | (2) SDP Answer (PSTN audio) | 249 |<-----------------------------------| 250 | | 251 | PSTN call setup | 252 |<-----------------------------------| 253 | | 254 | | 255 |<===== media over PSTN bearer =====>| 256 | | 258 Figure 1: Example Flow 260 Bob receives the SDP offer and determines that he is located in an 261 environment where the IP based bearer is not suitable for real-time 262 audio media. However he also has PSTN circuit-switched bearer 263 available for audio. Bob generates an SDP answer containing a 264 description of the audio media stream over a circuit-switched bearer. 266 During the offer-answer exchange Alice and Bob also agree the 267 direction in which the circuit-switched bearer should be established. 268 In this example, Bob becomes the active party, in other words, he 269 establishes the circuit-switched call to the other endpoint. The 270 Offer/Answer exchange contains identifiers or references that can be 271 used on the circuit-switched network for addressing the other 272 endpoint, as well as information that is used to determine that the 273 incoming circuit-switched bearer establishment is related to the 274 ongoing session between Alice and Bob. 276 Bob establishes a circuit-switched bearer towards Alice using 277 whatever mechanisms are defined for the network type in question. 278 When receiving the incoming circuit-switched connection attempt, 279 Alice is able to determine that the attempt is related to the session 280 she is just establishing with Bob. 282 Alice accepts the circuit-switched connection; the circuit-switched 283 bearer setup is completed. Bob and Alice can now use the circuit- 284 switched connection for two-way audio media. 286 If, for some reason, Bob would like to reject the offered stream, he 287 would set the port number of the specific stream to zero, as 288 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 289 some of the SDP attributes specified in this document, he would 290 ignore them, as specified in RFC4566 [RFC4566]. 292 5. Protocol Description 294 5.1. Level of Compliance 296 Implementations according to this specification MUST implement the 297 SDP extensions described in Section 5.2, and MUST implement the 298 considerations discussed in Section 5.3, Section 5.4 and Section 5.6. 300 5.2. Extensions to SDP 302 This section provides the syntax and semantics of the extensions 303 required for providing a description of audio or video media streams 304 over circuit-switched bearers in SDP. 306 5.2.1. Connection Data 308 According to SDP [RFC4566], the connection data line in SDP has the 309 following syntax: 311 c= 313 where indicates the network type, indicates the 314 address type, and the is the connection address, 315 which is dependent on the address type. 317 At the moment, the only network type defined is "IN", which indicates 318 Internet network type. The address types "IP4" and "IP6" indicate 319 the type of IP addresses. 321 This memo defines a new network type for describing a circuit- 322 switched bearer network type in the PSTN. The mnemonic "PSTN" is 323 used for this network type. 325 For the address type, we initially consider the possibility of 326 describing E.164 telephone numbers. We define a new "E164" address 327 type to be used within the context of a "PSTN" network type. The 328 "E164" address type indicates that the connection address contains an 329 E.164 number represented according to the ITU-T E.164 [ITU.E164.1991] 330 recommendation. 332 It is a common convention that an international E.164 number contains 333 a leading '+' sign. For consistency's sake, we also require the 334 E.164 telephone is prepended with a '+', even if that is not 335 necessary for routing of the call in the PSTN network. 337 There are cases, though, when the endpoint is merely aware of a 338 circuit-switched bearer, without having further information about the 339 address type or the E.164 number allocated to it. In these cases a 340 dash ("-") is used to indicate an unknown address type or connection 341 address. This makes the connection data line be according to the SDP 342 syntax. 344 Please note that these "E164" and "-" address types defined in this 345 memo are exclusively defined to be used in conjunction with the 346 "PSTN" network type in accordance with [RFC4566]. Usage of "E164" or 347 "-" address types in conjunction with other network types may be 348 defined elsewhere. 350 This memo exclusively uses the international representation of E.164 351 numbers, i.e., those including a country code and, as described above 352 prepended with a '+' sign. Implementations conforming to this 353 specification and using the "E164" address type together with the 354 "PSTN" network type MUST use the 'global-number-digits' construction 355 specified in RFC 3966 [RFC3966] for representing international E.164 356 numbers. This representation requires the presence of the '+' sign, 357 and additionally allows for the presence of one or more 'visual- 358 separator' constructions for easier human readability (see 359 Section 5.7). 361 Note that and/or MUST NOT be 362 omitted when unknown since this would violate basic syntax of SDP 363 [RFC4566]. In such cases, they MUST be set to a "-". 365 The following are examples of the extension to the connection data 366 line: 368 c=PSTN E164 +441134960123 370 c=PSTN - - 372 When the is PSTN, the connection address is defined as 373 follows: 375 o an international E.164 number 377 When the is "-", the connection address is defined as 378 follows: 380 o the value "-", signifying that the address is unknown 382 o any syntactically valid value, which is to be ignored 384 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, which, when 426 applied to PSTN circuit-switched bearers, represent merely an audio 427 or video codec. The endpoint SHOULD only use those payload type 428 whose corresponding codecs is available for PSTN media streams. 430 In some cases, the endpoint is not able to determine the list of 431 available codecs for circuit-switched media streams. In this case, 432 in order to be syntactically compliant with SDP [RFC4566], the 433 endpoint MUST include a single dash ("-") in the subfield. 435 As per RFC 4566 [RFC4566], the media format descriptions are listed 436 in priority order. 438 Examples of media descriptions for circuit-switched audio streams 439 are: 441 m=audio 9 PSTN 3 0 8 443 m=audio 9 PSTN - 445 Similarly, an example of a media description for circuit-switched 446 video stream is: 448 m=video 9 PSTN 34 450 m=video 9 PSTN - 452 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 454 The endpoints should be able to correlate the circuit-switched bearer 455 with the session negotiated with SDP in order to avoid ringing for an 456 incoming circuit-switched bearer that is related to the session 457 controlled with SDP (and SIP). 459 Several alternatives exist for performing this correlation. This 460 memo provides three mutually non-exclusive correlation mechanisms. 461 Other correlation mechanisms may exist, and their usage will be 462 specified when need arises. All mechanisms share the same principle: 463 some unique information is sent in the SDP and in the circuit- 464 switched signaling protocol. If these pieces of information match, 465 then the circuit-switched bearer is part of the session described in 466 the SDP exchange. Otherwise, there is no guarantee that the circuit- 467 switched bearer is related to such session. 469 The first mechanism is based on the exchange of PSTN caller-ID 470 between the endpoints. The caller-ID is also available as the 471 Calling Party ID in the circuit-switched signaling. 473 The second mechanism is based on the inclusion in SDP of a value that 474 is also sent in the User-to-User Information Element that is part of 475 the bearer setup signaling in the PSTN. 477 The third mechanism is based on sending in SDP a string that 478 represents Dual Tone MultiFrequency (DTMF) digits that will be later 479 sent right after the circuit-switched bearer is established. 481 Implementations MAY use any of these mechanisms and MAY use two or 482 more mechanisms simultaneously. 484 5.2.3.1. The "cs-correlation" attribute 486 In order to provide support for the correlation mechanisms, we define 487 a new media-level SDP attribute called "cs-correlation". This "cs- 488 correlation" attribute can include any of the "callerid", "uuie", or 489 "dtmf" subfields, which specify additional information required by 490 the Caller-ID, User to User Information, or DTMF correlation 491 mechanisms, respectively. The list of correlation mechanisms may be 492 extended by other specifications, see Section 5.2.3.5 for more 493 details. There MUST be at most one "cs-correlation" attribute per 494 media description. 496 The following sections provide more detailed information of these 497 subfields. The "cs-correlation" attribute has the following format: 499 a=cs-correlation: 500 correlation-mechanisms = corr-mech *(SP corr-mech) 501 corr-mech = caller-id-mech / uuie-mech / 502 dfmt-mech / ext-mech 503 caller-id-mech = "callerid" [":" caller-id-value] 504 uuie-mech = "uuie" [":" uuie-value] 505 dtmf-mech = "dtmf" [":" dtmf-value] 506 ext-mech = [":"] 508 The values "callerid", "uuie" and "dtmf" refer to the correlation 509 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 510 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 511 Format (ABNF) syntax of the "cs-correlation" attribute is presented 512 in Section 5.7. 514 5.2.3.2. Caller-ID Correlation Mechanism 516 The Caller-ID correlation mechanisms consists of an exchange of the 517 calling party number as an international E.164 number in SDP, 518 followed by the availability of the Calling Party Number information 519 element in the call setup signaling of the circuit switched 520 connection. If both pieces of information match, the circuit- 521 switched bearer is correlated to the session described in SDP. 523 Example of inclusion of an international E.164 number in the "cs- 524 correlation" attribute is: 526 a=cs-correlation:callerid:+441134960123 528 The presence of the "callerid" subfield indicates that the endpoint 529 supports use of the calling party number as a means of correlating a 530 PSTN call with the session being negotiated. The "callerid" subfield 531 MAY be accompanied by the international E.164 number of the party 532 inserting the parameter. 534 Note that there are no guarantees that this correlation mechanism 535 works or is even available, due a number of problems: 537 o The endpoint might not be aware of its own E.164 number, in which 538 case it cannot populate the SDP appropriately. 540 o The Calling Party Number information element in the circuit- 541 switched signaling might not be available, e.g., due to policy 542 restrictions of the network operator or caller restriction due to 543 privacy. 545 o The Calling Party Number information element in the circuit- 546 switched signaling might be available, but the digit 547 representation of the E.164 number might differ from the one 548 expressed in the SDP. To mitigate this problem implementations 549 should consider only some of the rightmost digits from the E.164 550 number for correlation. For example, the numbers +44-113-496-0123 551 and 0113-496-0123 could be considered as the same number. This is 552 also the behavior of some cellular phones, which correlate the 553 incoming calling party with a number stored in the phone book, for 554 the purpose of displaying the caller's name. 556 5.2.3.3. User-User Information Element Correlation Mechanism 558 A second correlation mechanism is based on including in SDP a string 559 that represents the User-User Information Element that is part of the 560 call setup signaling of the circuit-switched bearer. The User-User 561 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 562 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 563 Element has a maximum size of 35 or 131 octets, depending on the 564 actual message of the PSTN protocol where it is included and the 565 network settings. 567 The mechanism works as follows: An endpoint creates a User-User 568 Information Element, according to the requirements of the call setup 569 signaling protocol. The same value is included in the SDP offer or 570 SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. 571 When the SDP Offer/Answer exchange is completed, each endpoint has 572 become aware of the value that will be used in the User-User 573 Information Element of the call setup message of the PSTN protocol. 575 The endpoint that initiates the call setup attempt includes this 576 value in the User-User Information Element. The recipient of the 577 call setup attempt can extract the User-User Information Element and 578 correlate it with the value previously received in the SDP. If both 579 values match, then the call setup attempt corresponds to that 580 indicated in the SDP. 582 According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information 583 Element (UUIE) identifier is composed of a first octet identifying 584 this as a User-User Information Element, a second octet containing 585 the Length of the user-user contents, a third octet containing a 586 Protocol Discriminator, and a value of up to 32 or 128 octets 587 (depending on network settings) containing the actual User 588 Information (see Figure 4-36 in ITU-T Q.931). The first two octets 589 of the UUIE MUST NOT be used for correlation, only the octets 590 carrying the Protocol Discriminator and the User Information value 591 are input to the creation of the value of the "uuie" subfield in the 592 "cs-correlation" attribute. Therefore, the value of the "uuie" 593 subfield in the "cs-correlation" attribute MUST start with the 594 Protocol Discriminator octet, followed by the User Information 595 octets. The value of the Protocol Discriminator octet is not 596 specified in this document; it is expected that organizations using 597 this technology will allocate a suitable value for the Protocol 598 Discriminator. 600 Once the binary value of the "uuie" subfield in the "cs-correlation" 601 attribute is created, it MUST be encoded in hexadecimal before it is 602 inserted in SDP. Each octet of binary data to be represented in the 603 hexadecimal encoding MUST be mapped to two hexadecimal digits 604 (represented by ASCII characters 0-9 and A-F), each representing four 605 bits within the octet. The four bits appearing first in the binary 606 data MUST be mapped to the first hexadecimal digit and the four 607 subsequent bits in the binary data MUST be mapped to the second 608 hexadecimal digit. When mapping 4 bits to a hexadecimal digit, the 609 bit appearing first in the binary data SHALL be most significant. 610 Thus, the resulting hexadecimal encoded value needs to have an even 611 number of hexadecimal digits, and MUST be considered invalid if it 612 has an odd number. 614 Note that the encoding of the "uuie" subfield of the "cs- 615 correlation" attribute is largely inspired by the encoding of the 616 same value in the User-to-User header field in SIP, according to 617 the document "A Mechanism for Transporting User to User Call 618 Control Information in SIP" [I-D.ietf-cuss-sip-uui]. 620 As an example, an endpoint willing to send a UUIE containing a 621 protocol discriminator with the hexadecimal value of %x56 and an 622 hexadecimal User Information value of %xA390F3D2B7310023 would 623 include a "cs-correlation" attribute line as follows: 625 a=cs-correlation:uuie:56A390F3D2B7310023 627 Note that, for correlation purposes, the value of the User-User 628 Information Element is considered as an opaque string and only used 629 for correlation purposes. Typically call signaling protocols impose 630 requirements on the creation of User-User Information Element for 631 end-user protocol exchange. The details regarding the generation of 632 the User-User Information Element are outside the scope of this 633 specification. 635 Please note that there are no guarantees that this correlation 636 mechanism works. On one side, policy restrictions might not make the 637 User-User information available end to end in the PSTN. On the other 638 hand, the generation of the User-User Information Element is 639 controlled by the PSTN circuit-switched call protocol, which might 640 not offer enough freedom for generating different values from one 641 endpoint to another one, or from one call to another in the same 642 endpoint. This might result in the same value of the User-User 643 Information Element for all calls. 645 5.2.3.4. DTMF Correlation Mechanism 647 We introduce a third mechanism for correlating the circuit-switched 648 bearer with the session described with SDP. This is based on 649 agreeing on a sequence of digits that are negotiated in the SDP 650 Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF) 651 tones over the circuit-switched bearer once this bearer is 652 established. If the DTMF digit sequence received through the 653 circuit-switched bearer matches the digit string negotiated in the 654 SDP, the circuit-switched bearer is correlated with the session 655 described in the SDP. The mechanism is similar to many voice 656 conferencing systems which require the user to enter a PIN code using 657 DTMF tones in order to be accepted in a voice conference. 659 The mechanism works as follows: An endpoint selects a DTMF digit 660 sequence. The same sequence is included in the SDP offer or SDP 661 answer, in a "dtmf" subfield of the "cs-correlation" attribute. When 662 the SDP Offer/Answer exchange is completed, each endpoint has become 663 aware of the DTMF sequence that will be sent right after the circuit- 664 switched bearer is set up. The endpoint that initiates the call 665 setup attempt sends the DTMF digits according to the procedures 666 defined for the circuit-switched bearer technology used. The 667 recipient (passive side of the bearer setup) of the call setup 668 attempt collects the digits and compares them with the value 669 previously received in the SDP. If the digits match, then the call 670 setup attempt corresponds to that indicated in the SDP. 672 Implementations are advised to select a number of DTMF digits that 673 provide enough assurance that the call is related, but on the 674 other hand do not prolong the bearer setup time unnecessarily. 676 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 677 would include a "cs-correlation" attribute line as follows: 679 a=cs-correlation:dtmf:14D*3 681 If the endpoints successfully agree on the usage of the DTMF digit 682 correlation mechanism, but the passive side does not receive any DTMF 683 digits after successful circuit-switched bearer setup, or receives a 684 set of DTMF digits that do not match the value of the "dtmf" 685 attribute (including receiving too many digits), the passive side 686 SHOULD treat the circuit-switched bearer as not correlated to the 687 ongoing session. 689 DTMF digits can only be sent once the circuit-switched bearer is 690 set up. In order to suppress alerting for an incoming circuit- 691 switched call, implementations may choose various mechanisms. For 692 example, alerting may be suppressed for a certain time period for 693 incoming call attempts that originate from the number that was 694 observed during the offer/answer negotiation. 696 5.2.3.5. Extensions to correlation mechanisms 698 New values for the "cs-correlation" attribute may be specified. The 699 registration policy for new values is "Specification Required", see 700 Section 8. Any such specification MUST include a description of how 701 SDP Offer/Answer mechanism is used to negotiate the use of the new 702 values, taking into account how endpoints determine which side will 703 become active or passive (see Section 5.3 for more details). 705 If, during the Offer/Answer negotiation, either endpoint encounters 706 an unknown value in the "cs-correlation" attribute, it MUST consider 707 that mechanism as unsupported, and MUST NOT include that value in 708 subsequent Offer/Answer negotiation. 710 5.3. Negotiating the correlation mechanisms 712 The three correlation mechanisms presented above (based on called 713 party number, User-User Information Element and DTMF digit sending) 714 are non-exclusive, and can be used independently of each other. In 715 order to know how to populate the "cs-correlation" attribute, the 716 endpoints need to agree which endpoint will become the active party, 717 i.e., the one that will set up the circuit-switched bearer. 719 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 721 In order to avoid a situation where both endpoints attempt to 722 initiate a connection simultaneously, the direction in which the 723 circuit-switched bearer is set up MUST be negotiated during the 724 Offer/Answer exchange. 726 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 727 agree which endpoint acts as the active endpoint when initiating a 728 TCP connection. While RFC 4145 [RFC4145] was originally designed for 729 establishing TCP connections, it can be easily extrapolated to the 730 connection establishment of circuit-switched bearers. This 731 specification uses the concepts specified in RFC 4145 [RFC4145] for 732 agreeing on the direction of establishment of a circuit-switched 733 bearer. 735 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 736 "connection". The "setup" attribute indicates which of the endpoints 737 should initiate the connection establishment of the PSTN circuit- 738 switched bearer. Four values are defined in Section 4 of RFC 4145 739 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 740 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 741 attribute. 743 The "connection" attribute indicates whether a new connection is 744 needed or an existing connection is reused. The attribute can take 745 the values "new" or "existing". Please refer to Section 5 of RFC 746 4145 [RFC4145] for a detailed description of this attribute. 748 Implementations according to this specification MUST support the 749 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 750 but applied to circuit-switched bearers in the PSTN. 752 We define the active party as the one that initiates the circuit- 753 switched bearer after the Offer/Answer exchange. The passive party 754 is the one receiving the circuit-switched bearer. Either party may 755 indicate its desire to become the active or passive party during the 756 Offer/Answer exchange using the procedures described in Section 5.6. 758 5.3.2. Populating the cs-correlation attribute 760 By defining values for the subfields in the "a=cs-correlation" 761 attribute, the endpoint indicates that it is willing to become the 762 active party, and that it can use those values in the Calling party 763 number, User-User Information Element, or as DTMF tones during the 764 circuit-switched bearer setup. 766 Thus, the following rules apply: 768 An endpoint that can only become the active party in the circuit- 769 switched bearer setup MUST include all correlation mechanisms it 770 supports in the "a=cs-correlation" attribute, and MUST also 771 specify values for the subfields. 773 An endpoint that can only become the passive party in the circuit- 774 switched bearer setup MUST include all correlation mechanisms it 775 supports in the "a=cs-correlation" attribute, but MUST NOT specify 776 values for the subfields. 778 An endpoint that is willing to become either the active or passive 779 party (by including the "a=setup:actpass" attribute in the Offer), 780 MUST include all correlation mechanisms it supports in the "a=cs- 781 correlation" attribute, and MUST also specify values for the 782 subfields. 784 5.3.3. Considerations on successful correlation 786 Note that, as stated above, it cannot be guaranteed that any given 787 correlation mechanism will succeed even if the usage of those was 788 agreed beforehand. This is due to the fact that the correlation 789 mechanisms require support from the circuit-switched bearer 790 technology used. 792 Therefore, even a single positive indication using any of these 793 mechanisms SHOULD be interpreted by the passive endpoint so that the 794 circuit-switched bearer establishment is related to the ongoing 795 session, even if the other correlation mechanisms fail. 797 If, after negotiating one or more correlation mechanisms in the SDP 798 offer/answer exchange, an endpoint receives a circuit-switched bearer 799 with no correlation information present, the endpoint has two 800 choices: it can either treat the call as unrelated, or treat the call 801 as related to the ongoing session in the IP domain. 803 An endpoint may for example specify a time window after SDP offer/ 804 answer exchange during which received calls are treated as correlated 805 even if the signaling in the circuit-switched domain does not carry 806 any correlation information. In this case, there is a chance that 807 the call is erroneously treated as related to the ongoing session. 809 An endpoint may also choose to always treat an incoming call as 810 unrelated if the signaling in the circuit-switched domain does not 811 carry any correlation information. In this case, there is a chance 812 that the call is erroneously treated as unrelated. 814 Since, in these cases, no correlation information can be deduced from 815 the signaling, it is up to the implementation to decide how to 816 behave. One option is also to let the user decide whether to accept 817 the call as related, or to treat the call as unrelated. 819 5.4. Considerations for Usage of Existing SDP 821 5.4.1. Originator of the Session 823 According to SDP [RFC4566], the origin line in SDP has the following 824 syntax: 826 o= 827 829 Of interest here are the and fields, which 830 indicate the type of network and type of address, respectively. 831 Typically, this field carries the IP address of the originator of the 832 session. Even if the SDP was used to negotiate an audio or video 833 media stream transported over a circuit-switched bearer, the 834 originator is using SDP over an IP bearer. Therefore, and 835 fields in the "o=" line should be populated with the IP 836 address identifying the source of the signaling. 838 5.4.2. Contact information 840 SDP [RFC4566] defines the "p=" line which may include the phone 841 number of the person responsible for the conference. Even though 842 this line can carry a phone number, it is not suited for the purpose 843 of defining a connection address for the media. Therefore, we have 844 selected to define the PSTN specific connection addresses in the "c=" 845 line. 847 5.5. Considerations for Usage of Third Party Call Control (3PCC) 849 Best Current Practices for Third Party Call Control (3pcc) in the 850 Session Initiation Protocol (SIP) [RFC3725] outlines several flows 851 which are possible in third party call control scenarios and 852 recommends some flows for specific situations. 854 One of the assumptions in [RFC3725] is that an SDP Offer may include 855 a "black hole" connection address, which has the property that 856 packets sent to it will never leave the host which sent them. For 857 IPv4, this "black hole" connection address is 0.0.0.0, or a domain 858 name within the .invalid DNS top level domain. 860 When using an E.164 address scheme in the context of third-party call 861 control, when the User Agent needs to indicate an unknown phone 862 number, it MUST populate the of the SDP "c=" line with a 863 "-" string. 865 Note that this may result in the recipient of the initial Offer in 866 rejecting the Offer if the recipient of the Offer is not aware of 867 its own E.164 number, and thus concluding that it will not be 868 possible to establish a circuit-switched bearer since neither 869 party is aware of their E.164 number. 871 5.6. Offer/Answer mode extensions 873 In this section, we define extensions to the Offer/Answer model 874 defined in The Offer/Answer Model in SDP [RFC3264] to allow for PSTN 875 addresses to be used with the Offer/Answer model. 877 5.6.1. Generating the Initial Offer 879 The Offerer, wishing to use PSTN audio or video stream, MUST populate 880 the "c=" and "m=" lines as follows. 882 The endpoint MUST set the in the "c=" line to "PSTN", and 883 the to "E164". Furthermore, the endpoint SHOULD set the 884 field to its own international E.164 number 885 (with a leading "+"). If the endpoint is not aware of its own E.164 886 number, it MUST set the to "-". 888 In the "m=" line, the endpoint MUST set the subfield to 889 "audio" or "video", depending on the media type, and the 890 subfield to "PSTN". The subfield SHOULD be set to "9" (the 891 discard port). 893 The subfield carries the payload type number(s) the endpoint is 894 wishing to use. Payload type numbers in this case refer to the 895 codecs that the endpoint wishes to use on the PSTN media stream. For 896 example, if the endpoint wishes to use the GSM codec, it would add 897 payload type number 3 in the list of codecs. The list of payload 898 types SHOULD only contain those codecs the endpoint is able to use on 899 the PSTN bearer. In case the endpoint is not aware of the codecs 900 available for the circuit-switched media streams, it MUST include a 901 dash ("-") in the subfield. 903 For dynamic payload types, the endpoint MUST define the set of valid 904 encoding names and related parameters using the "a=rtpmap" attribute 905 line. See Section 6 of SDP [RFC4566] for details. 907 When generating the Offer, if the Offerer supports any of the 908 correlation mechanisms defined in this memo, it MUST include an 909 attribute line "a=cs-correlation" in the SDP offer. The Offerer MUST 910 NOT include more than one "cs-correlation" attribute per media 911 decription. The "a=cs-correlation" line contains an enumeration of 912 the correlation mechanisms supported by the Offerer, in the format of 913 subfields. 915 The current list of subfields include "callerid", "uuie" and "dtmf" 916 and they refer to the correlation mechanisms defined in 917 Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively. 919 If the Offerer supports any of the correlation mechanisms defined in 920 this memo, and is willing to become the active party, the Offerer 921 MUST add the "callerid", "uuie", and/or "dtmf" subfields and MUST 922 specify values for those subfields. 924 o the international E.164 number as the value in the "callerid" 925 subfield, 927 o the contents of the User-User information element as the value of 928 the "uuie" subfield, and/or 930 o the DTMF tone string as the value of the "dtmf" subfield 932 If the Offerer is only able to become the passive party in the 933 circuit-switched bearer setup, it MUST add the "callerid", "uuie" 934 and/or "dtmf" subfields, but MUST NOT specify values for those 935 subfields. 937 For example, if the Offerer is willing to use the User-User 938 Information element and DTMF digit sending mechanisms, but can only 939 become the passive party, it includes the following lines in the SDP: 941 a=cs-correlation:uuie dtmf 943 a=setup:passive 945 If, on the other hand, the Offerer is willing to use the User-User 946 Information element and the DTMF correlation mechanisms, and is able 947 to become the active or passive side, it includes the following lines 948 in the SDP: 950 a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 952 a=setup:actpass 954 The negotiation of the value of the 'setup' attribute takes place as 955 defined in Section 4.1 of TCP-Based Media Transport in the SDP 956 [RFC4145]. 958 The Offerer states which role or roles it is willing to perform; and 959 the Answerer, taking the Offerer's willingness into consideration, 960 chooses which roles both endpoints will actually perform during the 961 circuit-switched bearer setup. 963 By 'active' endpoint, we refer to an endpoint that will establish the 964 circuit-switched bearer; and by 'passive' endpoint, we refer to an 965 endpoint that will receive a circuit-switched bearer. 967 If an Offerer does not know its international E.164 number, it MUST 968 set the 'a=setup' attribute to the value 'active'. If the Offerer 969 knows its international E.164 number, it SHOULD set the value to 970 either 'actpass' or 'passive'. 972 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 973 It indicates that the connection is not established for the time 974 being. 976 The Offerer uses the "a=connection" attribute to decide whether a new 977 circuit-switched bearer is to be established or not. For the initial 978 Offer, the Offerer MUST use value 'new'. 980 5.6.2. Generating the Answer 982 If the Offer contained a circuit-switched audio or video stream, the 983 Answerer first determines whether it is able to accept and use such 984 streams. If the Answerer is not willing to use circuit-switched 985 media for the session, it MUST construct an Answer where the port 986 number for such media stream(s) is set to zero, according to Section 987 6 of An Offer/Answer Model with the Session Description Protocol 988 (SDP) [RFC3264]. If the Answerer is willing to use circuit-switched 989 media for the session, it MUST ignore the received port number 990 (unless the port number is set to zero). 992 If the Offer included a "-" as the payload type number, it indicates 993 that the Offerer is not willing or able to define any specific 994 payload type. Most often, a "-" is expected to be used instead of 995 the payload type when the endpoint is not aware of or not willing to 996 define the codecs which will eventually be used on the circuit- 997 switched bearer. The circuit-switched signaling protocols have their 998 own means of negotiating or indicating the codecs, therefore an 999 Answerer SHOULD accept such Offers, and SHOULD set the payload type 1000 to "-" also in the Answer. 1002 If the Answerer explicitly wants to specify a codec for the circuit- 1003 switched media, it MAY set the respective payload numbers in the 1004 subfield in the answer. This behavior, however, is NOT 1005 RECOMMENDED. 1007 When receiving the Offer, the Answerer MUST determine whether it 1008 becomes the active or passive party. 1010 If the SDP in the Offer indicates that the Offerer is only able to 1011 become the active party, the Answerer needs to determine whether it 1012 is able to become the passive party. If this is not possible e.g. 1013 due to the Answerer not knowing its international E.164 number, the 1014 Answerer MUST reject the circuit-switched media by setting the port 1015 number to zero on the Answer. If the Answerer is aware of its 1016 international E.164 number, it MUST include the "a=setup" attribute 1017 in the Answer and set it to value "passive" or "holdconn". The 1018 Answerer MUST also include its E.164 number on the "c=" line. 1020 If the SDP in the Offer indicates that the Offerer is only able to 1021 become the passive party, the Answerer MUST verify that the Offerer's 1022 E.164 number is included in the "c=" line of the Offer. If the 1023 number is included, the Answerer MUST include the "a=setup" attribute 1024 in the Answer and set it to value "active" or "holdconn". If the 1025 number is not included, call establishment is not possible, and the 1026 Answerer MUST reject the circuit-switched media by setting the port 1027 number to zero in the Answer. 1029 If the SDP in the Offer indicates that the Offerer is able to become 1030 either the active or passive party, the Answerer needs to determine 1031 which role it would like to take. If the Offer includes an 1032 international E.164 number in the "c=" line, the Answerer SHOULD 1033 become the active party. If the Offer does not include an E.164 1034 number, and if the Answerer is aware of its international E.164 1035 number, it MUST become the passive party. If the Offer does not 1036 include an E.164 number in the "c=" line and the Answerer is not 1037 aware of its E.164 number, it MUST reject the circuit-switched media 1038 by setting the port number to zero in the Answer. 1040 For each media description where the Offer includes a "a=cs- 1041 correlation" attribute, the Answerer MUST select from the Offer those 1042 correlation mechanisms it supports, and include in the Answer one 1043 "a=cs-correlation" attribute line containing those mechanisms it is 1044 willing to use. The Answerer MUST only add one "a=cs-correlation" 1045 attribute in those media descriptions where also the Offer included a 1046 "a=cs-correlation" attribute. The Answerer MUST NOT add any 1047 mechanisms which were not included in the offer. If there are more 1048 than one "cs-correlation" attributes per media description in the 1049 Offer, the Answerer MUST discard all but the first for any media 1050 description. Also, the Answerer MUST discard all unknown "cs- 1051 correlation" attribute values. 1053 If the Answerer becomes the active party, it MUST add any of the 1054 "callerid", "uuie" or "dtmf" subfield values. 1056 If the Answerer becomes the passive party, it MUST NOT add values to 1057 the "callerid", "uuie" and/or "dtmf" subfields. 1059 After generating and sending the Answer, if the Answerer became the 1060 active party, it 1062 o MUST extract the E.164 number from the "c=" line of the Offer and 1063 MUST establish a circuit-switched bearer to that address. 1065 o if the SDP Answer contained a value for the "callerid" subfield, 1066 MUST set the Calling Party Number Information Element to that 1067 number, 1069 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1070 send the User-User Information element according to the rules 1071 defined for the circuit-switched technology used, and set the 1072 value of the Information Element to that received in the SDP 1073 Offer, 1075 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1076 send those DTMF digits according to the circuit-switched 1077 technology used. 1079 If, on the other hand, the Answerer became the passive party, it 1081 o MUST be prepared to receive a circuit-switched bearer, 1083 o if the Offer contained a value for the "callerid" subfield, MUST 1084 compare that value to the Calling Party Number Information Element 1085 of the circuit-switched bearer, 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 5.6.4. Modifying the session 1168 If, at a later time, one of the parties wishes to modify the session, 1169 e.g., by adding new media stream, or by changing properties used on 1170 an existing stream, it may do so via the mechanisms defined for An 1171 Offer/Answer Model with SDP [RFC3264]. 1173 If there is an existing circuit-switched bearer between the 1174 endpoints, and the Offerer wants to reuse that, the Offerer MUST set 1175 the value of the "a=connection" attribute to 'existing'. 1177 If either party removes the circuit-switched media from the session 1178 (by setting the port number to zero), it MUST terminate the circuit- 1179 switched bearer using whatever mechanism is appropriate for the 1180 technology in question. 1182 If either party wishes to drop and reestablish an existing call, that 1183 party MUST first remove the circuit-switched media from the session 1184 by setting the port number to zero, and then use another Offer/Answer 1185 exchange where it MUST set the "a=connection" attribute to 'new'". 1186 If the media types are different (for example, a different codec will 1187 be used for the circuit-switched bearer), the media descriptions for 1188 terminating the existing bearer and the new bearer can be in the same 1189 Offer. 1191 5.7. Formal Syntax 1193 The following is the formal Augmented Backus-Naur Form (ABNF) 1194 [RFC5234] syntax that supports the extensions defined in this 1195 specification. The syntax is built above the SDP [RFC4566] and the 1196 tel URI [RFC3966] grammars. Implementations according to this 1197 specification MUST be compliant with this syntax. 1199 Figure 2 shows the formal syntax of the extensions defined in this 1200 memo. 1202 ; extension to the connection field originally specified 1203 ; in RFC 4566 1205 connection-field = [%x63 "=" nettype SP addrtype SP 1206 connection-address CRLF] 1207 ;nettype and addrtype are defined in RFC 4566 1209 connection-address /= global-number-digits / "-" 1210 ; global-number-digits specified in RFC 3966 1212 ;subrules for correlation attribute 1213 attribute /= cs-correlation-attr 1214 ; attribute defined in RFC 4566 1215 cs-correlation-attr = "cs-correlation:" corr-mechanisms 1216 corr-mechanisms = corr-mech *(SP corr-mech) 1217 corr-mech = caller-id-mech / uuie-mech / 1218 dtmf-mech / ext-mech 1219 caller-id-mech = "callerid" [":" caller-id-value] 1220 caller-id-value = "+" 1*15DIGIT 1221 uuie-mech = "uuie" [":" uuie-value] 1222 uuie-value = 1*65(HEXDIG HEXDIG) 1223 ;This represents up to 130 HEXDIG 1224 ; (65 octets) 1225 ;HEXDIG defined in RFC5234 1226 ;HEXDIG defined as 0-9, A-F 1227 dtmf-mech = "dtmf" [":" dtmf-value] 1228 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1229 ;0-9, A-D, '#' and '*' 1230 ext-mech = ext-mech-name [":" ext-mech-value] 1231 ext-mech-name = token 1232 ext-mech-value = token 1233 ; token is specified in RFC4566 1235 Figure 2: Syntax of the SDP extensions 1237 6. Examples 1239 In the examples below, where an SDP line is too long to be displayed 1240 as a single line, a breaking character "\" indicates continuation in 1241 the following line. Note that this character is included for display 1242 purposes only. Implementations MUST write a single line without 1243 breaks. 1245 6.1. Single PSTN audio stream 1247 Alice Bob 1248 | | 1249 | (1) SDP Offer (PSTN audio) | 1250 |--------------------------------->| 1251 | | 1252 | (2) SDP Answer (PSTN audio) | 1253 |<---------------------------------| 1254 | | 1255 | PSTN call setup | 1256 |<---------------------------------| 1257 | | 1258 |<==== media over PSTN bearer ====>| 1259 | | 1261 Figure 3: Basic flow 1263 Figure 3 shows a basic example that describes a single audio media 1264 stream over a circuit-switched bearer. Alice generates a SDP Offer 1265 which is shown in Figure 4. The Offer describes a PSTN circuit- 1266 switched bearer in the "m=" and "c=" line where it also indicates its 1267 international E.164 number format. Additionally, Alice expresses 1268 that she can initiate the circuit-switched bearer or be the recipient 1269 of it in the "a=setup" attribute line. The SDP Offer also includes 1270 correlation identifiers that this endpoint will insert in the Calling 1271 Party Number and/or User-User Information Element of the PSTN call 1272 setup if eventually this endpoint initiates the PSTN call. 1274 v=0 1275 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1276 s= 1277 t=0 0 1278 m=audio 9 PSTN - 1279 c=PSTN E164 +441134960123 1280 a=setup:actpass 1281 a=connection:new 1282 a=cs-correlation:callerid:+441134960123 \ 1283 uuie:56A390F3D2B7310023 1285 Figure 4: SDP offer (1) 1287 Bob generates a SDP Answer (Figure 5), describing a PSTN audio media 1288 on port 9 without information on the media sub-type on the "m=" line. 1289 The "c=" line contains Bob's international E.164 number. In the 1290 "a=setup" line Bob indicates that he is willing to become the active 1291 endpoint when establishing the PSTN call, and he also includes the 1292 "a=cs-correlation" attribute line containing the values he is going 1293 to include in the Calling Party Number and User-User IE of the PSTN 1294 call establishment. 1296 v=0 1297 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1298 s= 1299 t=0 0 1300 m=audio 9 PSTN - 1301 c=PSTN E164 +441134960124 1302 a=setup:active 1303 a=connection:new 1304 a=cs-correlation:callerid:+441134960124 \ 1305 uuie:56A390F3D2B7310023 1307 Figure 5: SDP Answer with circuit-switched media 1309 When Alice receives the Answer, she examines that Bob is willing to 1310 become the active endpoint when setting up the PSTN call. Alice 1311 temporarily stores Bob's E.164 number and the User-User IE value of 1312 the "cs-correlation" attribute, and waits for a circuit-switched 1313 bearer establishment. 1315 Bob initiates a circuit-switched bearer using whatever circuit- 1316 switched technology is available for him. The called party number is 1317 set to Alice's number, and calling party number is set to Bob's own 1318 number. Bob also sets the User-User Information Element value to the 1319 one contained in the SDP Answer. 1321 When Alice receives the circuit-switched bearer establishment, she 1322 examines the UUIE and the calling party number, and by comparing 1323 those received during O/A exchange determines that the call is 1324 related to the SDP session. 1326 It may also be that neither the UUIE nor the calling party number is 1327 received by the called party, or the format of the calling party 1328 number is changed by the PSTN. Implementations may still accept such 1329 call establishment attempts as being related to the session that was 1330 established in the IP network. As it cannot be guaranteed that the 1331 values used for correlation are always passed intact through the 1332 network, they should be treated as additional hints that the circuit- 1333 switched bearer is actually related to the session. 1335 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams 1337 Alice Bob 1338 | | 1339 | (1) SDP Offer (PSTN audio and video) | 1340 |------------------------------------------->| 1341 | | 1342 | (2) SDP Answer (PSTN audio) | 1343 |<-------------------------------------------| 1344 | | 1345 | PSTN call setup | 1346 |<-------------------------------------------| 1347 | | 1348 |<======== media over PSTN bearer ==========>| 1349 | | 1351 Figure 6: Circuit-Switched Audio and Video streams 1353 Figure 6 shows an example of negotiating audio and video media 1354 streams over circuit-switched bearers. 1356 v=0 1357 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1358 s= 1359 t=0 0 1360 a=setup:actpass 1361 a=connection:new 1362 c=PSTN E164 +441134960123 1363 m=audio 9 PSTN - 1364 a=cs-correlation:dtmf:1234536 1365 m=video 9 PSTN 34 1366 a=rtpmap:34 H263/90000 1367 a=cs-correlation:callerid:+441134960123 1369 Figure 7: SDP offer with circuit-switched audio and video (1) 1371 Upon receiving the SDP offer described in Figure 7, Bob rejects the 1372 video stream as his device does not currently support video, but 1373 accepts the circuit-switched audio stream. As Alice indicated that 1374 she is able to become either the active, or passive party, Bob gets 1375 to select which role he would like to take. Since the Offer 1376 contained the international E.164 number of Alice, Bob decides that 1377 he becomes the active party in setting up the circuit-switched 1378 bearer. Bob includes a new value in the "dtmf" subfield of the "cs- 1379 correlation" attribute, which he is going to send as DTMF tones once 1380 the bearer setup is complete. The Answer is described in Figure 8 1381 v=0 1382 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1383 s= 1384 t=0 0 1385 a=setup:active 1386 a=connection:new 1387 c=PSTN E164 +441134960124 1388 m=audio 9 PSTN - 1389 a=cs-correlation:dtmf:654321 1390 m=video 0 PSTN 34 1391 a=cs-correlation:callerid:+441134960124 1393 Figure 8: SDP answer with circuit-switched audio and video (2) 1395 7. Security Considerations 1397 This document provides an extension on top of RFC 4566 [RFC4566], and 1398 RFC 3264 [RFC3264]. As such, the security considerations of those 1399 documents apply. 1401 This memo provides mechanisms to agree on a correlation identifier or 1402 identifiers that are used to evaluate whether an incoming circuit- 1403 switched bearer is related to an ongoing session in the IP domain. 1404 If an attacker replicates the correlation identifier and establishes 1405 a call within the time window the receiving endpoint is expecting a 1406 call, the attacker may be able to hijack the circuit-switched bearer. 1407 These types of attacks are not specific to the mechanisms presented 1408 in this memo. For example, caller ID spoofing is a wellknown attack 1409 in the PSTN. Users are advised to use the same caution before 1410 revealing sensitive information as they would on any other phone 1411 call. Furthermore, users are advised that mechanisms that may be in 1412 use in the IP domain for securing the media, like Secure RTP (SRTP) 1413 [RFC3711], are not available in the CS domain. 1415 For the purposes of establishing a circuit-switched bearer, the 1416 active endpoint needs to know the passive endpoint's phone number. 1417 Phone numbers are sensitive information, and some people may choose 1418 not to reveal their phone numbers when calling using supplementary 1419 services like Calling Line Identification Restriction (CLIR) in GSM. 1420 Implementations should take the caller's preferences regarding 1421 calling line identification into account if possible, by restricting 1422 the inclusion of the phone number in SDP "c=" line if the caller has 1423 chosen to use CLIR. If this is not possible, implementations may 1424 present a prompt informing the user that their phone number may be 1425 transmitted to the other party. 1427 Similarly as with IP addresses, if there is a desire to protect the 1428 SDP containing phone numbers carried in SIP, implementers are advised 1429 to follow the security mechanisms defined in [RFC3261]. 1431 It is possible that an attacker creates a circuit-switched session 1432 whereby the attacked endpoint should dial a circuit-switched number, 1433 perhaps even a premium-rate telephone number. To mitigate the 1434 consequences of this attack, endpoints MUST authenticate and trust 1435 remote endpoints users who try to remain passive in the circuit- 1436 switched connection establishment. It is RECOMMENDED that endpoints 1437 have local policies precluding the active establishment of circuit 1438 switched connections to certain numbers (e.g., international, 1439 premium, long distance). Additionally, it is strongly RECOMMENDED 1440 that the end user is asked for consent prior to the endpoint 1441 initiating a circuit-switched connection. 1443 8. IANA Considerations 1445 This document instructs IANA to register a number of SDP tokens 1446 according to the following data. 1448 8.1. Registration of new cs-correlation SDP attribute 1450 Contact: Miguel Garcia 1452 Attribute name: cs-correlation 1454 Long-form attribute name: PSTN Correlation Identifier 1456 Type of attribute: media level only 1458 Subject to charset: No 1460 Description: This attribute provides the Correlation Identifier 1461 used in PSTN signaling 1463 Appropriate values:see Section 5.2.3.1 1465 Specification: RFC XXXX 1467 The IANA is requested to create a subregistry for 'cs-correlation' 1468 attribute under the Session Description Protocol (SDP) Parameters 1469 registry. The initial values for the subregistry are presented in 1470 the following, and IANA is requested to add them into its database: 1472 Value of 'cs-correlation' attribute Reference Description 1473 ----------------------------------- --------- ----------- 1474 callerid RFC XXXX Caller ID 1475 uuie RFC XXXX User-User 1476 Information Element 1477 dtmf RFC XXXX Dual-tone Multifrequency 1479 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1480 reference to the RFC number of this draft. 1482 As per the terminology in [RFC5226], the registration policy for new 1483 values of 'cs-correlation' parameter is 'Specification Required'. 1485 8.2. Registration of a new "nettype" value 1487 This memo provides instructions to IANA to register a new "nettype" 1488 in the Session Description Protocol Parameters registry [1]. The 1489 registration data, according to RFC 4566 [RFC4566] follows. 1491 Type SDP Name Reference 1492 ---- ------------------ --------- 1493 nettype PSTN [RFCxxxx] 1495 8.3. Registration of new "addrtype" values 1497 This memo provides instructions to IANA to register two new 1498 "addrtype" in the Session Description Protocol Parameters 1499 registry [1]. The registration data, according to RFC 4566 [RFC4566] 1500 follows. 1502 Type SDP Name Reference 1503 ---- ------------------ --------- 1504 addrtype E164 [RFCxxxx] 1505 - [RFCxxxx] 1507 Note: RFC XXXX defines the "E164" and "-" addrtypes in conjunction 1508 with the "PSTN" nettype only. Please refer to the relevant RFC for a 1509 description of that representation. 1511 Note to IANA: The current "addrtype" sub-registry structure does not 1512 capture the fact that a given addrtype is defined in the context of a 1513 particular "nettype". The sub-registry structure should be to 1514 correct that as part of this registration. 1516 8.4. Registration of a new "proto" value 1518 This memo provides instructions to IANA to register a new "proto" in 1519 the Session Description Protocol Parameters registry [1]. The 1520 registration data, according to RFC 4566 [RFC4566] follows. 1522 Type SDP Name Reference 1523 -------------- --------------------------- --------- 1524 proto PSTN [RFCxxxx] 1526 The related "fmt" namespace re-uses the conventions and payload type 1527 number defined for RTP/AVP. In this document, the RTP audio and 1528 video media types, when applied to PSTN circuit-switched bearers, 1529 represent merely an audio or video codec in its native format 1530 directly on top of a single PSTN bearer. 1532 In come cases, the endpoint is not able to determine the list of 1533 available codecs for circuit-switched media streams. In this case, 1534 in order to be syntactically compliant with SDP [RFC4566], the 1535 endpoint MUST include a single dash ("-") in the subfield. 1537 9. Acknowledgments 1539 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1540 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1541 Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom 1542 Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing 1543 their insight and comments on this document. 1545 10. References 1547 10.1. Normative References 1549 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1550 Requirement Levels", BCP 14, RFC 2119, March 1997. 1552 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1553 with Session Description Protocol (SDP)", RFC 3264, 1554 June 2002. 1556 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", 1557 RFC 3966, December 2004. 1559 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1560 the Session Description Protocol (SDP)", RFC 4145, 1561 September 2005. 1563 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1564 Description Protocol", RFC 4566, July 2006. 1566 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1567 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 1568 May 2008. 1570 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1571 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1573 10.2. Informative References 1575 [I-D.ietf-cuss-sip-uui] 1576 Johnston, A. and J. Rafferty, "A Mechanism for 1577 Transporting User to User Call Control Information in 1578 SIP", draft-ietf-cuss-sip-uui-08 (work in progress), 1579 December 2012. 1581 [ITU.E164.1991] 1582 International Telecommunications Union, "The International 1583 Public Telecommunication Numbering Plan", ITU- 1584 T Recommendation E.164, 1991. 1586 [ITU.Q931.1998] 1587 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1588 User - Network Interface Layer 3 Specification for Basic 1589 Call Control", ISO Standard 9594-1, May 1998. 1591 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1592 Session Description Protocol (SDP) for ATM Bearer 1593 Connections", RFC 3108, May 2001. 1595 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1596 A., Peterson, J., Sparks, R., Handley, M., and E. 1597 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1598 June 2002. 1600 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1601 Jacobson, "RTP: A Transport Protocol for Real-Time 1602 Applications", STD 64, RFC 3550, July 2003. 1604 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1605 Video Conferences with Minimal Control", STD 65, RFC 3551, 1606 July 2003. 1608 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1609 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1610 RFC 3711, March 2004. 1612 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 1613 Camarillo, "Best Current Practices for Third Party Call 1614 Control (3pcc) in the Session Initiation Protocol (SIP)", 1615 BCP 85, RFC 3725, April 2004. 1617 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1618 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1620 [TS.24.008] 1621 3GPP, "Mobile radio interface Layer 3 specification; Core 1622 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1623 December 2005. 1625 URIs 1627 [1] 1629 Authors' Addresses 1631 Miguel A. Garcia-Martin 1632 Ericsson 1633 Calle Via de los Poblados 13 1634 Madrid, ES 28033 1635 Spain 1637 Email: miguel.a.garcia@ericsson.com 1639 Simo Veikkolainen 1640 Nokia 1641 P.O. Box 226 1642 NOKIA GROUP, FI 00045 1643 Finland 1645 Phone: +358 50 486 4463 1646 Email: simo.veikkolainen@nokia.com