idnits 2.17.1 draft-ietf-mmusic-sdp-cs-13.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 2 characters in excess of 72. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 21, 2012) is 4202 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 1508, but not defined == Unused Reference: 'RFC2434' is defined on line 1530, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** 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-07 Summary: 4 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MMUSIC WG M. Garcia-Martin 3 Internet-Draft Ericsson 4 Intended status: Standards Track S. Veikkolainen 5 Expires: April 24, 2013 Nokia 6 October 21, 2012 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-13 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 April 24, 2013. 37 Copyright Notice 39 Copyright (c) 2012 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 This document may contain material from IETF Documents or IETF 53 Contributions published or made publicly available before November 54 10, 2008. The person(s) controlling the copyright in some of this 55 material may not have granted the IETF Trust the right to allow 56 modifications of such material outside the IETF Standards Process. 57 Without obtaining an adequate license from the person(s) controlling 58 the copyright in such materials, this document may not be modified 59 outside the IETF Standards Process, and derivative works of it may 60 not be created outside the IETF Standards Process, except to format 61 it for publication as an RFC or to translate it into languages other 62 than English. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 2. Conventions Used in This Document . . . . . . . . . . . . . . 6 68 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 69 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 7 70 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 7 71 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 9 72 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 9 73 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 9 74 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 9 75 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 10 76 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 77 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 12 78 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 13 79 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 13 80 5.2.3.3. User-User Information Element Correlation 81 Mechanism . . . . . . . . . . . . . . . . . . . . 14 82 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 16 83 5.2.3.5. Extensions to correlation mechanisms . . . . . . . 17 84 5.3. Negotiating the correlation mechanisms . . . . . . . . . . 17 85 5.3.1. Determining the Direction of the Circuit-Switched 86 Bearer Setup . . . . . . . . . . . . . . . . . . . . . 17 87 5.3.2. Populating the cs-correlation attribute . . . . . . . 18 88 5.3.3. Considerations on successful correlation . . . . . . . 19 89 5.4. Considerations for Usage of Existing SDP . . . . . . . . . 19 90 5.4.1. Originator of the Session . . . . . . . . . . . . . . 20 91 5.4.2. Contact information . . . . . . . . . . . . . . . . . 20 92 5.5. Considerations for Usage of Third Party Call Control 93 (3PCC) . . . . . . . . . . . . . . . . . . . . . . . . . . 20 94 5.6. Offer/Answer mode extensions . . . . . . . . . . . . . . . 21 95 5.6.1. Generating the Initial Offer . . . . . . . . . . . . . 21 96 5.6.2. Generating the Answer . . . . . . . . . . . . . . . . 23 97 5.6.3. Offerer processing the Answer . . . . . . . . . . . . 25 98 5.6.4. Modifying the session . . . . . . . . . . . . . . . . 27 99 5.7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 27 100 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 101 6.1. Single PSTN audio stream . . . . . . . . . . . . . . . . . 29 102 6.2. Advanced SDP example: Circuit-Switched Audio and Video 103 Streams . . . . . . . . . . . . . . . . . . . . . . . . . 31 104 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 105 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 106 8.1. Registration of new cs-correlation SDP attribute . . . . . 33 107 8.2. Registration of a new "nettype" value . . . . . . . . . . 34 108 8.3. Registration of new "addrtype" values . . . . . . . . . . 34 109 8.4. Registration of a new "proto" value . . . . . . . . . . . 34 110 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 111 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 35 112 10.1. Normative References . . . . . . . . . . . . . . . . . . . 35 113 10.2. Informative References . . . . . . . . . . . . . . . . . . 36 114 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 116 1. Introduction 118 The Session Description Protocol (SDP) [RFC4566] is intended for 119 describing multimedia sessions for the purposes of session 120 announcement, session invitation, and other forms of multimedia 121 session initiation. SDP is most commonly used for describing media 122 streams that are transported over the Real-Time Transport Protocol 123 (RTP) [RFC3550], using the profiles for audio and video media defined 124 in RTP Profile for Audio and Video Conferences with Minimal Control 125 [RFC3551]. 127 However, SDP can be used to describe other transport protocols than 128 RTP. Previous work includes SDP conventions for describing ATM 129 bearer connections [RFC3108] and the Message Session Relay Protocol 130 [RFC4975]. 132 SDP is commonly carried in Session Initiation Protocol (SIP) 133 [RFC3261] messages in order to agree on a common media description 134 among the endpoints. An Offer/Answer Model with Session Description 135 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 136 can exchange SDP media descriptions and come to an agreement as to 137 which media streams should be used, along with the media related 138 parameters. 140 In some scenarios it might be desirable to establish the media stream 141 over a circuit-switched bearer connection even if the signaling for 142 the session is carried over an IP bearer. An example of such a 143 scenario is illustrated with two mobile devices capable of both 144 circuit-switched and packet-switched communication over a low- 145 bandwidth radio bearer. The radio bearer may not be suitable for 146 carrying real-time audio or video media, and using a circuit-switched 147 bearer would offer a better perceived quality of service. So, 148 according to this scenario, SDP and its higher layer session control 149 protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are 150 used over regular IP connectivity, while the audio or video is 151 received through the classical circuit-switched bearer. 153 Setting up a signaling relationship in the IP domain instead of just 154 setting up a circuit-switched call offers also the possibility of 155 negotiating in the same session other IP based media that is not 156 sensitive to jitter and delay, for example, text messaging or 157 presence information. 159 At a later point in time the mobile device might move to an area 160 where a high-bandwidth packet-switched bearer, for example a Wireless 161 Local Area Network (WLAN) connection, is available. At this point 162 the mobile device may perform a handover and move the audio or video 163 media streams over to the high-speed bearer. This implies a new 164 exchange of SDP Offer/Answer that lead to a re-negotiation of the 165 media streams. 167 Other use cases exist. For example, and endpoint might have at its 168 disposal circuit-switched and packet-switched connectivity, but the 169 same audio or video codecs are not feasible for both access networks. 170 For example, the circuit-switched audio or video stream supports 171 narrow-bandwidth codecs, while the packet-switched access allows any 172 other audio or video codec implemented in the endpoint. In this 173 case, it might be beneficial for the endpoint to describe different 174 codecs for each access type and get an agreement on the bearer 175 together with the remote endpoint. 177 There are additional use cases related to third party call control 178 where the session setup time is improved when the circuit-switched 179 bearer in the PSTN is described together with one or more codecs. 181 The rest of the document is structured as follows: Section 2 provides 182 the document conventions, Section 3 introduces the requirements, 183 Section 4 presents an overview of the proposed solutions, and 184 Section 5 contains the protocol description. Section 6 provides an 185 example of descriptions of circuit-switched audio or video streams in 186 SDP. Section 7 and Section 8 contain the Security and IANA 187 considerations, respectively. 189 2. Conventions Used in This Document 191 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 192 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 193 "OPTIONAL" in this document are to be interpreted as described in BCP 194 14, RFC 2119 [RFC2119] and indicate requirement levels for compliant 195 implementations. 197 3. Requirements 199 This section presents the general requirements that are specific for 200 the audio or video media streams over circuit-switched bearers. 202 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 203 or video media stream established over a circuit-switched 204 bearer MUST be available. 206 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 207 switched audio or video media streams with other 208 complementary media streams, for example, text messaging. 210 REQ-3: The mechanism MUST allow the endpoint to negotiate the 211 direction of the circuit-switched bearer, i.e., which 212 endpoint is active when initiating the circuit-switched 213 bearer. 215 REQ-4: The mechanism MUST be independent of the type of the circuit- 216 switched access (e.g., Integrated Services Digital Network 217 (ISDN), Global System for Mobile Communication (GSM), etc.) 219 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 220 an incoming circuit-switched bearer with the one negotiated 221 in SDP, as opposed to another incoming call that is not 222 related to that. 224 REQ-6: It MUST be possible for endpoints to advertise different list 225 of audio or video codecs in the circuit-switched audio or 226 video stream from those used in a packet-switched audio or 227 video stream. 229 REQ-7: It MUST be possible for endpoints to not advertise the list 230 of available codecs for circuit-switched audio or video 231 streams. 233 4. Overview of Operation 235 The mechanism defined in this memo extends SDP and allows describing 236 an audio or video media stream established over a circuit-switched 237 bearer. A new network type ("PSTN") and a new protocol type ("PSTN") 238 are defined for the "c=" and "m=" lines to be able to describe a 239 media stream over a circuit-switched bearer. These SDP extensions 240 are described in Section 5.2. Since circuit-switched bearers are 241 connection-oriented media streams, the mechanism re-uses the 242 connection-oriented extensions defined in RFC 4145 [RFC4145] to 243 negotiate the active and passive sides of a connection setup. This 244 is further described in Section 5.3.1. 246 4.1. Example Call Flow 248 Consider the example presented in Figure 1. In this example, Alice 249 is located in an environment where she has access to both IP and 250 circuit-switched bearers for communicating with other endpoints. 251 Alice decides that the circuit-switched bearer offers a better 252 perceived quality of service for voice, and issues an SDP Offer 253 containing the description of an audio media stream over circuit- 254 switched bearer. 256 Alice Bob 257 | (1) SDP Offer (PSTN audio) | 258 |----------------------------------->| 259 | | 260 | (2) SDP Answer (PSTN audio) | 261 |<-----------------------------------| 262 | | 263 | PSTN call setup | 264 |<-----------------------------------| 265 | | 266 | | 267 |<===== media over PSTN bearer =====>| 268 | | 270 Figure 1: Example Flow 272 Bob receives the SDP offer and determines that he is located in an 273 environment where the IP based bearer is not suitable for real-time 274 audio media. However he also has PSTN circuit-switched bearer 275 available for audio. Bob generates an SDP answer containing a 276 description of the audio media stream over a circuit-switched bearer. 278 During the offer-answer exchange Alice and Bob also agree the 279 direction in which the circuit-switched bearer should be established. 280 In this example, Bob becomes the active party, in other words, he 281 establishes the circuit-switched call to the other endpoint. The 282 Offer/Answer exchange contains identifiers or references that can be 283 used on the circuit-switched network for addressing the other 284 endpoint, as well as information that is used to determine that the 285 incoming circuit-switched bearer establishment is related to the 286 ongoing session between Alice and Bob. 288 Bob establishes a circuit-switched bearer towards Alice using 289 whatever mechanisms are defined for the network type in question. 290 When receiving the incoming circuit-switched connection attempt, 291 Alice is able to determine that the attempt is related to the session 292 she is just establishing with Bob. 294 Alice accepts the circuit-switched connection; the circuit-switched 295 bearer setup is completed. Bob and Alice can now use the circuit- 296 switched connection for two-way audio media. 298 If, for some reason, Bob would like to reject the offered stream, he 299 would set the port number of the specific stream to zero, as 300 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 301 some of the SDP attributes specified in this document, he would 302 ignore them, as specified in RFC4566 [RFC4566]. 304 5. Protocol Description 306 5.1. Level of Compliance 308 Implementations according to this specification MUST implement the 309 SDP extensions described in Section 5.2, and MUST implement the 310 considerations discussed in Section 5.3, Section 5.4 and Section 5.6. 312 5.2. Extensions to SDP 314 This section provides the syntax and semantics of the extensions 315 required for providing a description of audio or video media streams 316 over circuit-switched bearers in SDP. 318 5.2.1. Connection Data 320 According to SDP [RFC4566], the connection data line in SDP has the 321 following syntax: 323 c= 325 where indicates the network type, indicates the 326 address type, and the is the connection address, 327 which is dependent on the address type. 329 At the moment, the only network type defined is "IN", which indicates 330 Internet network type. The address types "IP4" and "IP6" indicate 331 the type of IP addresses. 333 This memo defines a new network type for describing a circuit- 334 switched bearer network type in the PSTN. The mnemonic "PSTN" is 335 used for this network type. 337 For the address type, we initially consider the possibility of 338 describing E.164 telephone numbers. We define a new "E164" address 339 type to be used within the context of a "PSTN" network type. The 340 "E164" address type indicates that the connection address contains an 341 E.164 number represented according to the ITU-T E.164 [ITU.E164.1991] 342 recommendation. 344 It is a common convention that an international E.164 number contains 345 a leading '+' sign. For consistency's sake, we also require the 346 E.164 telephone is prepended with a '+', even if that is not 347 necessary for routing of the call in the PSTN network. 349 There are cases, though, when the endpoint is merely aware of a 350 circuit-switched bearer, without having further information about the 351 address type or the E.164 number allocated to it. In these cases a 352 dash "-" is used to indicate an unknown address type or connection 353 address. This makes the connection data line be according to the SDP 354 syntax. 356 Please note that this "E164" and "-" address type defined in this 357 memo are exclusively defined to be used in conjunction with the 358 "PSTN" network type. Usages of "E164" or "-" address types in 359 conjunction with other network types may exist elsewhere. 361 This memo exclusively uses the international representation of E.164 362 numbers, i.e., those initiated with a '+' sign. The syntax (see 363 Section 5.7) refers to the representation of a 'global-number' 364 construction already specified in RFC 3966 [RFC3966]. This 365 representation requires the presence of the '+' sign. Additionally, 366 this representation allows for the presence of one or more 'visual- 367 separator' constructions. Implementations confirming to this 368 specification and using the "E164" address type together with the 369 "PSTN" network type MUST only use international E.164, i.e., those 370 starting with a '+' sign and SHOULD NOT use visual-separators. 372 Note that and/or MUST NOT be 373 omitted when unknown since this would violate basic syntax of SDP 374 [RFC4566]. In such cases, they MUST be set to a "-". 376 The following are examples of the extension to the connection data 377 line: 379 c=PSTN E164 +35891234567 381 c=PSTN - - 383 When the is PSTN, the connection address is defined as 384 follows: 386 o an international E.164 number 388 When the is "-", the connection address is defined as 389 follows: 391 o the value "-", signifying that the address is unknown 393 o any syntactically valid value, which is to be ignored 395 5.2.2. Media Descriptions 397 According to SDP [RFC4566], the media descriptions line in SDP has 398 the following syntax: 400 m= ... 402 The subfield carries the media type. For establishing an 403 audio bearer, the existing "audio" media type is used. For 404 establishing a video bearer, the existing "video" media type is used. 406 The subfield is the transport port to which the media stream 407 is sent. Circuit-switched access lacks the concept of a port number, 408 and therefore the subfield does not carry any meaningful 409 value. In order to be compliant with SDP syntax, implementations 410 SHOULD set the subfield to the discard port value "9" and MUST 411 ignore it on reception. 413 According to RFC 3264 [RFC3264], a port number of zero in the offer 414 of a unicast stream indicates that the stream is offered but must not 415 be used. If a port number of zero is present in the answer of a 416 unicast stream, it indicates that the stream is rejected. These 417 rules are still valid when the media line in SDP represents a 418 circuit-switched bearer. 420 The subfield is the transport protocol. The circuit-switched 421 bearer uses whatever transport protocol it has available. This 422 subfield SHOULD be set to the mnemonic "PSTN" to be syntactically 423 correct with SDP [RFC4566] and to indicate the usage of circuit- 424 switched protocols in the PSTN. 426 The subfield is the media format description. In the classical 427 usage of SDP to describe RTP-based media streams, when the 428 subfield is set to "RTP/AVP" or "RTP/SAVP", the subfield 429 contains the payload types as defined in the RTP audio profile 430 [RFC3551]. 432 When "RTP/AVP" is used in the field, the subfield 433 contains the RTP payload type numbers. We use the subfield to 434 indicate the list of available codecs over the circuit-switched 435 bearer, by re-using the conventions and payload type numbers defined 436 for RTP/AVP. The RTP audio and video media types, which, when 437 applied to PSTN circuit-switched bearers, represent merely an audio 438 or video codec. 440 In some cases, the endpoint is not able to determine the list of 441 available codecs for circuit-switched media streams. In this case, 442 in order to be syntactically compliant with SDP [RFC4566], the 443 endpoint MUST include a single dash "-" in the subfield. 445 As per RFC 4566 [RFC4566], the media format descriptions are listed 446 in priority order. 448 Examples of media descriptions for circuit-switched audio streams 449 are: 451 m=audio 9 PSTN 3 0 8 453 m=audio 9 PSTN - 455 Similarly, an example of a media description for circuit-switched 456 video stream is: 458 m=video 9 PSTN 34 460 m=video 9 PSTN - 462 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 464 The endpoints should be able to correlate the circuit-switched bearer 465 with the session negotiated with SDP in order to avoid ringing for an 466 incoming circuit-switched bearer that is related to the session 467 controlled with SDP (and SIP). 469 Several alternatives exist for performing this correlation. This 470 memo provides three mutually non-exclusive correlation mechanisms. 471 Other correlation mechanisms may exist, and their usage will be 472 specified when need arises. All mechanisms share the same principle: 473 some unique information is sent in the SDP and in the circuit- 474 switched signaling protocol. If these pieces of information match, 475 then the circuit-switched bearer is part of the session described in 476 the SDP exchange. Otherwise, there is no guarantee that the circuit- 477 switched bearer is related to such session. 479 The first mechanism is based on the exchange of PSTN caller-ID 480 between the endpoints. The caller-ID is also available as the 481 Calling Party ID in the circuit-switched signaling. 483 The second mechanism is based on the inclusion in SDP of a value that 484 is also sent in the User-to-User Information Element that is part of 485 the bearer setup signaling in the PSTN. 487 The third mechanism is based on sending in SDP a string that 488 represents Dual Tone MultiFrequency (DTMF) digits that will be later 489 sent right after the circuit-switched bearer is established. 490 Implementations MAY use any of these mechanisms and MAY use two or 491 more mechanisms simultaneously. 493 5.2.3.1. The "cs-correlation" attribute 495 In order to provide support for the correlation mechanisms, we define 496 a new SDP attribute called "cs-correlation". This "cs-correlation" 497 attribute can include any of the "callerid", "uuie", or "dtmf" 498 subfields, which specify additional information required by the 499 Caller-ID, User to User Information, or DTMF correlation mechanisms, 500 respectively. The list of correlation mechanisms may be extended by 501 other specifications, see Section 5.2.3.5 fore more details. There 502 MUST be at most one "cs-correlation" attribute per media description. 504 The following sections provide more detailed information of these 505 subfields. The "cs-correlation" attribute has the following format: 507 a=cs-correlation: 508 correlation-mechanisms = corr-mech *(SP corr-mech) 509 corr-mech = caller-id-mech / uuie-mech / 510 dfmt-mech / ext-mech 511 caller-id-mech = "callerid" [":" caller-id-value] 512 uuie-mech = "uuie" [":" uuie-value] 513 dtmf-mech = "dtmf" [":" dtmf-value] 514 ext-mech = [":"] 516 The values "callerid", "uuie" and "dtmf" refer to the correlation 517 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 518 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 519 Format (ABNF) syntax of the "cs-correlation" attribute is presented 520 in Section 5.7. 522 5.2.3.2. Caller-ID Correlation Mechanism 524 The Caller-ID correlation mechanisms consists of an exchange of the 525 calling party number as an international E.164 number in SDP, 526 followed by the availability of the Calling Party Number information 527 element in the call setup signaling of the circuit switched 528 connection. If both pieces of information match, the circuit- 529 switched bearer is correlated to the session described in SDP. 531 Example of inclusion of an international E.164 number in the "cs- 532 correlation" attribute is: 534 a=cs-correlation:callerid:+35891234567 536 The presence of the "callerid" subfield indicates that the endpoint 537 supports use of the calling party number as a means of correlating a 538 PSTN call with the session being negotiated. The "callerid" subfield 539 MAY be accompanied by the international E.164 number of the party 540 inserting the parameter. 542 Note that there are no warranties that this correlation mechanism 543 works or is even available, due a number of problems: 545 o The endpoint might not be aware of its own E.164 number, in which 546 case it cannot populate the SDP appropriately. 548 o The Calling Party Number information element in the circuit- 549 switched signaling might not be available, e.g., due to policy 550 restrictions of the network operator or caller restriction due to 551 privacy. 553 o The Calling Party Number information element in the circuit- 554 switched signaling might be available, but the digit 555 representation of the E.164 number might differ from the one 556 expressed in the SDP. To mitigate this problem implementations 557 should consider only some of the rightmost digits from the E.164 558 number for correlation. For example, the numbers +358-9-123-4567 559 and 09-123-4567 could be considered as the same number. This is 560 also the behavior of some cellular phones, which correlate the 561 incoming calling party with a number stored in the phone book, for 562 the purpose of displaying the caller's name. 564 5.2.3.3. User-User Information Element Correlation Mechanism 566 A second correlation mechanism is based on including in SDP a string 567 that represents the User-User Information Element that is part of the 568 call setup signaling of the circuit-switched bearer. The User-User 569 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 570 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 571 Element has a maximum size of 35 or 131 octets, depending on the 572 actual message of the PSTN protocol where it is included and the 573 network settings. 575 The mechanism works as follows: An endpoint creates a User-User 576 Information Element, according to the requirements of the call setup 577 signaling protocol. The same value is included in the SDP offer or 578 SDP answer, in the "uuie" subfield of the "cs-correlation" attribute. 579 When the SDP Offer/Answer exchange is completed, each endpoint has 580 become aware of the value that will be used in the User-User 581 Information Element of the call setup message of the PSTN protocol. 582 The endpoint that initiates the call setup attempt includes this 583 value in the User-User Information Element. The recipient of the 584 call setup attempt can extract the User-User Information Element and 585 correlate it with the value previously received in the SDP. If both 586 values match, then the call setup attempt corresponds to that 587 indicated in the SDP. 589 According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information 590 Element (UUIE) identifier is composed of a first octet identifying 591 this as a User-User Information Element, a second octet containing 592 the Length of the user-user contents, a third octet containing a 593 Protocol Discriminator, and a value of up to 32 or 128 octets 594 (depending on network settings) containing the actual User 595 Information (see Figure 4-36 in ITU-T Q.931). The first two octets 596 of the UUIE MUST NOT be used for correlation, only the octets 597 carrying the Protocol Discriminator and the User Information value 598 are input to the creation of the value of the "uuie" subfield in the 599 "cs-correlation" attribute. Therefore, the value of the "uuie" 600 subfield in the "cs-correlation" attribute MUST start with the 601 Protocol Discriminator octet, followed by the User Information 602 octets. The value of the Protocol Discriminator octet is not 603 specified in this document; it is expected that organizations using 604 this technology will allocate a suitable value for the Protocol 605 Discriminator. 607 Once the binary value of the "uuie" subfield in the "cs-correlation" 608 attribute is created, it MUST be encoded in hexadecimal before it is 609 inserted in SDP. Each octet of binary data to be represented in the 610 hexadecimal encoding MUST be mapped to two hexadecimal digits 611 (represented by ASCII characters 0-9 and A-F, each representing four 612 bits within the octet. The four bits appearing first in the binary 613 data MUST be mapped to the first hexadecimal digit and the four 614 subsequent bits in the binary data MUST be mapped to the second 615 hexadecimal digit. When mapping 4 bits to a hexadecimal digit, the 616 bit appearing first in the binary data SHALL be most significant. 617 Thus, the resulting hexadecimal encoded value needs to have an even 618 number of hexadecimal digits, and MUST be considered invalid if it 619 has an odd number. 621 Note that the encoding of the "uuie" subfield of the "cs- 622 correlation" attribute is largely inspired by the encoding of the 623 same value in the User-to-User header field in SIP, according to 624 the document A Mechanism for Transporting User to User Call 625 Control Information in SIP [I-D.ietf-cuss-sip-uui]. 627 As an example, an endpoint willing to send a UUIE containing a 628 protocol discriminator with the hexadecimal value of %x56 and an 629 hexadecimal User Information value of %xA390F3D2B7310023 would 630 include a "cs-correlation" attribute line as follows: 632 a=cs-correlation:uuie:56A390F3D2B7310023 634 Note that, for correlation purposes, the value of the User-User 635 Information Element is considered as an opaque string and only used 636 for correlation purposes. Typically call signaling protocols impose 637 requirements on the creation of User-User Information Element for 638 end-user protocol exchange. The details regarding the generation of 639 the User-User Information Element are outside the scope of this 640 specification. 642 Please note that there are no warranties that this correlation 643 mechanism works. On one side, policy restrictions might not make the 644 User-User information available end to end in the PSTN. On the other 645 hand, the generation of the User-User Information Element is 646 controlled by the PSTN circuit-switched call protocol, which might 647 not offer enough freedom for generating different values from one 648 endpoint to another one, or from one call to another in the same 649 endpoint. This might result in the same value of the User-User 650 Information Element for all calls. 652 5.2.3.4. DTMF Correlation Mechanism 654 We introduce a third mechanism for correlating the circuit-switched 655 bearer with the session described with SDP. This is based on 656 agreeing on a sequence of digits that are negotiated in the SDP 657 Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF) 658 tones over the circuit-switched bearer once this bearer is 659 established. If the DTMF digit sequence received through the 660 circuit-switched bearer matches the digit string negotiated in the 661 SDP, the circuit-switched bearer is correlated with the session 662 described in the SDP. The mechanism is similar to many voice 663 conferencing systems which require the user to enter a PIN code using 664 DTMF tones in order to be accepted in a voice conference. 666 The mechanism works as follows: An endpoint selects a DTMF digit 667 sequence. The same sequence is included in the SDP offer or SDP 668 answer, in a "dtmf" subfield of the "cs-correlation" attribute. When 669 the SDP Offer/Answer exchange is completed, each endpoint has become 670 aware of the DTMF sequence that will be sent right after the circuit- 671 switched bearer is set up. The endpoint that initiates the call 672 setup attempt sends the DTMF digits according to the procedures 673 defined for the circuit-switched bearer technology used. The 674 recipient (passive side of the bearer setup) of the call setup 675 attempt collects the digits and compares them with the value 676 previously received in the SDP. If the digits match, then the call 677 setup attempt corresponds to that indicated in the SDP. 679 Implementations are advised to select a number of DTMF digits that 680 provide enough assurance that the call is related, but on the 681 other hand do not prolong the bearer setup time unnecessarily. 683 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 684 would include a "cs-correlation" attribute line as follows: 686 a=cs-correlation:dtmf:14D*3 688 If the endpoints successfully agree on the usage of the DTMF digit 689 correlation mechanism, but the passive side does not receive any DTMF 690 digits after successful circuit-switched bearer setup, or receives a 691 set of DTMF digits that do not match the value of the "dtmf" 692 attribute (including receiving too many digits), the passive side 693 SHOULD treat the circuit-switched bearer as not correlated to the 694 ongoing session. 696 DTMF digits can only be sent once the circuit-switched bearer is 697 set up. In order to suppress alerting for an incoming circuit- 698 switched call, implementations may choose various mechanisms. For 699 example, alerting may be suppressed for a certain time period for 700 incoming call attempts that originate from the number that was 701 observed during the offer/answer negotiation. 703 5.2.3.5. Extensions to correlation mechanisms 705 New values for the "cs-correlation" attribute may be specified. The 706 registration policy for new values is "Specification Required", see 707 Section 8. Any such specification MUST include a description of how 708 SDP Offer/Answer mechanism is used to negotiate the use of the new 709 values, taking into account how endpoints determine which side will 710 become active or passive (see Section 5.3 for more details). 712 If, during the Offer/Answer negotiation, either endpoint encounters 713 an unknown value in the "cs-correlation" attribute, it MUST consider 714 that mechanism as unsupported, and MUST NOT include that value in 715 subsequent Offer/Answer negotiation. 717 5.3. Negotiating the correlation mechanisms 719 The three correlation mechanisms presented above (based on called 720 party number, User-User Information Element and DTMF digit sending) 721 are non-exclusive, and can be used independently of each other. In 722 order to know how to populate the "cs-correlation" attribute, the 723 endpoints need to agree which endpoint will become the active party, 724 i.e. the one that will set up the circuit-switched bearer. 726 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 728 In order to avoid a situation where both endpoints attempt to 729 initiate a connection simultaneously, the direction in which the 730 circuit-switched bearer is set up MUST be negotiated during the 731 Offer/Answer exchange. 733 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 734 agree which endpoint acts as the active endpoint when initiating a 735 TCP connection. While RFC 4145 [RFC4145] was originally designed for 736 establishing TCP connections, it can be easily extrapolated to the 737 connection establishment of circuit-switched bearers. This 738 specification uses the concepts specified in RFC 4145 [RFC4145] for 739 agreeing on the direction of establishment of a circuit-switched 740 bearer. 742 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 743 "connection". The "setup" attribute indicates which of the endpoints 744 should initiate the connection establishment of the PSTN circuit- 745 switched bearer. Four values are defined in Section 4 of RFC 4145 746 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 747 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 748 attribute. 750 The "connection" attribute indicates whether a new connection is 751 needed or an existing connection is reused. The attribute can take 752 the values "new" or "existing". Please refer to Section 5 of RFC 753 4145 [RFC4145] for a detailed description of this attribute. 755 Implementations according to this specification MUST support the 756 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 757 but applied to circuit-switched bearers in the PSTN. 759 We define the active party as the one that initiates the circuit- 760 switched bearer after the Offer/Answer exchange. The passive party 761 is the one receiving the circuit-switched bearer. Either party may 762 indicate its desire to become the active or passive party during the 763 Offer/Answer exchange using the procedures described in Section 5.6. 765 5.3.2. Populating the cs-correlation attribute 767 By defining values for the subfields in the "a=cs-correlation" 768 attribute, the endpoint indicates that it is willing to become the 769 active party, and that it can use those values in the Calling party 770 number, User-User Information Element, or as DTMF tones during the 771 circuit-switched bearer setup. 773 Thus, the following rules apply: 775 An endpoint that can only become the active party in the circuit- 776 switched bearer setup MUST include all correlation mechanisms it 777 supports in the "a=cs-correlation" attribute, and MUST also 778 specify values for the subfields. 780 An endpoint that can only become the passive party in the circuit- 781 switched bearer setup MUST include all correlation mechanisms it 782 supports in the "a=cs-correlation" attribute, but MUST NOT specify 783 values for the subfields. 785 An endpoint that is willing to become either the active or passive 786 party (by including the "a=setup:actpass" attribute in the Offer), 787 MUST include all correlation mechanisms it supports in the "a=cs- 788 correlation" attribute, and MUST also specify values for the 789 subfields. 791 5.3.3. Considerations on successful correlation 793 Note that, as stated above, it cannot be guaranteed that any given 794 correlation mechanism will succeed even if the usage of those was 795 agreed beforehand. This is due to the fact that the correlation 796 mechanisms require support from the circuit-switched bearer 797 technology used. 799 Therefore, even a single positive indication using any of these 800 mechanisms SHOULD be interpreted by the passive endpoint so that the 801 circuit-switched bearer establishment is related to the ongoing 802 session, even if the other correlation mechanisms fail. 804 If, after negotiating one or more correlation mechanisms in the SDP 805 offer/answer exchange, an endpoint receives a circuit-switched bearer 806 with no correlation information present, the endpoint has two 807 choices: it can either treat the call as unrelated, or treat the call 808 as related to the ongoing session in the IP domain. 810 An endpoint may for example specify a time window after SDP offer/ 811 answer exchange during which received calls are treated as correlated 812 even if the signaling in the circuit-switched domain does not carry 813 any correlation information. In this case, there is a chance that 814 the call is erroneously treated as related to the ongoing session. 816 An endpoint may also choose to always treat an incoming call as 817 unrelated if the signaling in the circuit-switched domain does not 818 carry any correlation information. In this case, there is a chance 819 that the call is erroneously treated as unrelated. 821 Since, in these cases, no correlation information can be deduced from 822 the signaling, it is up to the implementation to decide how to 823 behave. One option is also to let the user decide whether to accept 824 the call as related, or to treat the call as unrelated. 826 5.4. Considerations for Usage of Existing SDP 827 5.4.1. Originator of the Session 829 According to SDP [RFC4566], the origin line in SDP has the following 830 syntax: 832 o= 833 835 Of interest here are the and fields, which 836 indicate the type of network and type of address, respectively. 837 Typically, this field carries the IP address of the originator of the 838 session. Even if the SDP was used to negotiate an audio or video 839 media stream transported over a circuit-switched bearer, the 840 originator is using SDP over an IP bearer. Therefore, and 841 fields in the "o=" line should be populated with the IP 842 address identifying the source of the signaling. 844 5.4.2. Contact information 846 SDP [RFC4566] defines the "p=" line which may include the phone 847 number of the person responsible for the conference. Even though 848 this line can carry a phone number, it is not suited for the purpose 849 of defining a connection address for the media. Therefore, we have 850 selected to define the PSTN specific connection addresses in the "c=" 851 line. 853 5.5. Considerations for Usage of Third Party Call Control (3PCC) 855 Best Current Practices for Third Party Call Control (3pcc) in the 856 Session Initiation Protocol (SIP) [RFC3725] outlines several flows 857 which are possible in third party call control scenarios and 858 recommends some flows for specific situations. 860 One of the assumptions in [RFC3725] is that an SDP Offer may include 861 a "black hole" connection address, which has the property that 862 packets sent to it will never leave the host which sent them. For 863 IPv4, this "black hole" connection address is 0.0.0.0, or a domain 864 name within the .invalid DNS top level domain. 866 When using an E.164 address scheme in the context of third-party call 867 control, when the User Agent needs to indicate an unknown phone 868 number, it MUST populate the of the SDP "c=" line with a 869 "-" string. 871 Note that this may result in the recipient of the initial Offer in 872 rejecting the Offer if the recipient of the Offer is not aware of 873 its own E.164 number, and thus concluding that it will not be 874 possible to establish a circuit-switched bearer since neither 875 party is aware of their E.164 number. 877 5.6. Offer/Answer mode extensions 879 In this section, we define extensions to the Offer/Answer model 880 defined in The Offer/Answer Model in SDP [RFC3264] to allow for PSTN 881 addresses to be used with the Offer/Answer model. 883 5.6.1. Generating the Initial Offer 885 The Offerer, wishing to use PSTN audio or video stream, MUST populate 886 the "c=" and "m=" lines as follows. 888 The endpoint MUST set the in the "c=" line to "PSTN", and 889 the to "E164". Furthermore, the endpoint SHOULD set the 890 field to its own international E.164 number 891 (with a leading "+"). If the endpoint is not aware of its own E.164 892 number, it MUST set the to "-". 894 In the "m=" line, the endpoint MUST set the subfield to 895 "audio" or "video", depending on the media type, and the 896 subfield to "PSTN". The subfield SHOULD be set to "9" (the 897 discard port). 899 The subfield carries the payload type number(s) the endpoint is 900 wishing to use. Payload type numbers in this case refer to the 901 codecs that the endpoint wishes to use. For example, if the endpoint 902 wishes to use the GSM codec, it would add payload type number 3 in 903 the list of codecs. 905 For dynamic payload types, the endpoint MUST define the set of valid 906 encoding names and related parameters using the "a=rtpmap" attribute 907 line. See Section 6 of SDP [RFC4566] for details. 909 When generating the Offer, if the Offerer supports any of the 910 correlation mechanisms defined in this memo, it MUST include an 911 attribute line "a=cs-correlation" in the SDP offer. The Offerer MUST 912 NOT include more than one "cs-correlation" attribute per media 913 decription. The "a=cs-correlation" line contains an enumeration of 914 the correlation mechanisms supported by the Offerer, in the format of 915 subfields. 917 The current list of subfields include "callerid", "uuie" and "dtmf" 918 and they refer to the correlation mechanisms defined in 919 Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively. 921 If the Offerer supports any of the correlation mechanisms defined in 922 this memo, and is willing to become the active party, the Offerer 923 MUST add the "callerid", "uuie", and/or "dtmf" subfields and MUST 924 specify values for those subfields. 926 o the international E.164 number as the value in the "callerid" 927 subfield, 929 o the contents of the User-User information element as the value of 930 the "uuie" subfield, and/or 932 o the DTMF tone string as the value of the "dtmf" subfield 934 If the Offerer is only able to become the passive party in the 935 circuit-switched bearer setup, it MUST add the "callerid", "uuie" 936 and/or "dtmf" subfields, but MUST NOT specify values for those 937 subfields. 939 For example, if the Offerer is willing to use the User-User 940 Information element and DTMF digit sending mechanisms, but can only 941 become the passive party, it includes the following lines to the SDP: 943 a=cs-correlation:uuie dtmf 945 a=setup:passive 947 If, on the other hand, the Offerer is willing to use the User-User 948 Information element and the DTMF correlation mechanisms, and is able 949 to become the active or passive side, it includes to following lines 950 to the SDP: 952 a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 954 a=setup:actpass 956 The negotiation of the value of the 'setup' attribute takes place as 957 defined in Section 4.1 of TCP-Based Media Transport in the SDP 958 [RFC4145]. 960 The Offerer states which role or roles it is willing to perform; and 961 the Answerer, taking the Offerer's willingness into consideration, 962 chooses which roles both endpoints will actually perform during the 963 circuit-switched bearer setup. 965 By 'active' endpoint, we refer to an endpoint that will establish the 966 circuit-switched bearer; and by 'passive' endpoint, we refer to an 967 endpoint that will receive a circuit-switched bearer. 969 If an Offerer does not know its international E.164 number, it MUST 970 set the 'a=setup' attribute to the value 'active'. If the Offerer 971 knows its international E.164 number, it SHOULD set the value to 972 either 'actpass' or 'passive'. 974 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 975 It indicates that the connection is not established for the time 976 being. 978 The Offerer uses the "a=connection" attribute to decide whether a new 979 circuit-switched bearer is to be established or not. For the initial 980 Offer, the Offerer MUST use value 'new'. 982 5.6.2. Generating the Answer 984 If the Offer contained a circuit-switched audio or video stream, the 985 Answerer first determines whether it is able to accept and use such 986 streams. If the Answerer is not willing to use circuit-switched 987 media for the session, it MUST construct an Answer where the port 988 number for such media stream(s) is set to zero, according to Section 989 6 of An Offer/Answer Model with the Session Description Protocol 990 (SDP) [RFC3264]. If the Answerer is willing to use circuit-switched 991 media for the session, it MUST ignore the received port number 992 (unless the port number is set to zero). 994 If the Offer included a "-" as the payload type number, it indicates 995 that the Offerer is not willing or able to define any specific 996 payload type. Most often, a "-" is expected to be used instead of 997 the payload type when the endpoint is not aware of or not willing to 998 define the codecs which will eventually be used on the circuit- 999 switched bearer. The circuit-switched signaling protocols have their 1000 own means of negotiating or indicating the codecs, therefore an 1001 Answerer SHOULD accept such Offers, and SHOULD set the payload type 1002 to "-" also in the Answer. 1004 If the Answerer explicitly wants to specify a codec for the circuit- 1005 switched media, it MAY set the respective payload numbers in the 1006 subfield in the answer. This behavior, however, is NOT 1007 RECOMMENDED. 1009 When receiving the Offer, the Answerer MUST determine whether it 1010 becomes the active or passive party. 1012 If the SDP in the Offer indicates that the Offerer is only able to 1013 become the active party, the Answerer needs to determine whether it 1014 is able to become the passive party. If this is not possible e.g. 1015 due to the Answerer not knowing its international E.164 number, the 1016 Answerer MUST reject the circuit-switched media by setting the port 1017 number to zero on the Answer. If the Answerer is aware of its 1018 international E.164 number, it MUST include the "a=setup" attribute 1019 in the Answer and set it to value "passive" or "holdconn". The 1020 Answerer MUST also include its E.164 number on the "c=" line. 1022 If the SDP in the Offer indicates that the Offerer is only able to 1023 become the passive party, the Answerer MUST verify that the Offerer's 1024 E.164 number is included in the "c=" line of the Offer. If the 1025 number is included, the Answerer MUST include the "a=setup" attribute 1026 in the Answer and set it to value "active" or "holdconn". If the 1027 number is not included, call establishment is not possible, and the 1028 Answerer MUST reject the circuit-switched media by setting the port 1029 number to zero in the Answer. 1031 If the SDP in the Offer indicates that the Offerer is able to become 1032 either the active or passive party, the Answerer needs to determine 1033 which role it would like to take. If the Offer includes an 1034 international E.164 number in the "c=" line, the Answerer SHOULD 1035 become the active party. If the Offer does not include an E.164 1036 number, and if the Answerer is aware of its international E.164 1037 number, it MUST become the passive party. If the Offer does not 1038 include an E.164 number in the "c=" line and the Answerer is not 1039 aware of its E.164 number, it MUST reject the circuit-switched media 1040 by setting the port number to zero in the Answer. 1042 The Answerer MUST select those correlation mechanisms from the Offer 1043 it supports, and include an "a=cs-correlation" attribute line in the 1044 Answer containing those mechanisms it supports and is willing to use. 1045 The Answerer MUST NOT add any mechanisms which were not included in 1046 the offer. If there are more than one "cs-correlation" attributes 1047 per media description in the Offer, the Answerer MUST discard all but 1048 the first for any media description. Also, the Answerer MUST discard 1049 all unknown "cs-correlation" attribute values. 1051 If the Answerer becomes the active party, it MUST add any of the 1052 "callerid", "uuie" or "dtmf" subfield values. 1054 If the Answerer becomes the passive party, it MUST NOT add values to 1055 the "callerid", "uuie" and/or "dtmf" subfields. 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, 1081 o if the Offer contained a value for the "callerid" subfield, MUST 1082 compare that value to the Calling Party Number Information Element 1083 of the circuit-switched bearer, 1085 o if the Offer contained a value for the "dtmf" subfield, MUST be 1086 prepared to receive and collect DTMF digits once the circuit- 1087 switched bearer is set up. The Answerer MUST compare the received 1088 DTMF digits to the value of the "dtmf" subfield. If the received 1089 DTMF digits match the value of the "dtmf" subfield in the "cs- 1090 correlation" attribute, the call SHOULD be treated as correlated 1091 to the ongoing session. 1093 o if the Offer contained a value for the "uuie" subfield, MUST be 1094 prepared to receive a User-User Information element once the 1095 circuit-switched bearer is set up. The Answerer MUST compare the 1096 received UUI to the value of the "uuie" subfield. If the value of 1097 the received UUI matches the value of the "uuie" subfield, the 1098 call SHOULD be treated as correlated to the ongoing session. 1100 If the Answerer becomes the active party, generates an SDP answer, 1101 and then it finds out that the circuit-switched call cannot be 1102 established, then the Answerer MUST create a new SDP offer where 1103 circuit-switched stream is removed from the session (actually, by 1104 setting the corresponding port in the m= line to zero) and send it to 1105 its counter part. This is to synchronize both parties (and potential 1106 intermediaries) on the state of the session. 1108 5.6.3. Offerer processing the Answer 1110 When receiving the Answer, if the SDP does not contain "a=cs- 1111 correlation" attribute line, the Offerer should take that as an 1112 indication that the other party does not support or is not willing to 1113 use the procedures defined in the document for this session, and MUST 1114 revert to normal processing of SDP. 1116 When receiving the Answer, the Offerer MUST first determine whether 1117 it becomes the active or passive party, as described in Section 1118 Section 5.3.1. 1120 If the Offerer becomes the active party, it 1122 o MUST extract the E.164 number from the "c=" line and MUST 1123 establish a circuit-switched bearer to that address. 1125 o if the SDP Answer contained a value for the "uuie" subfield, MUST 1126 send the User-User Information element according to the rules 1127 defined for the circuit-switched technology used, and set the 1128 value of the Information Element to that received in the SDP 1129 Answer, 1131 o if the SDP Answer contained a value for the "dtmf" subfield, MUST 1132 send those DTMF digits according to the circuit-switched 1133 technology used. 1135 If the Offerer becomes the passive party, it 1137 o MUST be prepared to receive a circuit-switched bearer, 1139 o Note that it if delivery of the Answer is delayed for some reason, 1140 the circuit-switched call attempt may arrive at the Offerer before 1141 the Answer has been processed. In this case, since the 1142 correlation mechanisms are negotiated as part of the Offer/Answer 1143 exchange, the Answerer cannot know whether or not the incoming 1144 circuit-switched call attempt is correlated with the session being 1145 negotiated, the Offerer SHOULD answer the circuit-switched call 1146 attempt only after it has received and processed the Answer. 1148 o if the Answer contained a value for the "dtmf" subfield, MUST be 1149 prepared to receive and collect DTMF digits once the circuit- 1150 switched bearer is set up. The Offerer SHOULD compare the 1151 received DTMF digits to the value of the "dtmf" subfield. If the 1152 received DTMF digits match the value of the "dtmf" subfield in the 1153 "cs-correlation" attribute, the call SHOULD be treated as 1154 correlated to the ongoing session. 1156 o if the Answer contained a value for the "uuie" subfield, MUST be 1157 prepared to receive a User-User Information element once the 1158 circuit-switched bearer is set up. The Offerer SHOULD compare the 1159 received UUI to the value of the "uuie" subfield. If the value of 1160 the received UUI matches the value of the "uuie" subfield, the 1161 call SHOULD be treated as correlated to the ongoing session. 1163 5.6.4. Modifying the session 1165 If, at a later time, one of the parties wishes to modify the session, 1166 e.g., by adding new media stream, or by changing properties used on 1167 an existing stream, it may do so via the mechanisms defined for An 1168 Offer/Answer Model with SDP [RFC3264]. 1170 If there is an existing circuit-switched bearer between the 1171 endpoints, and the Offerer wants to reuse that the Offerer MUST set 1172 the value of the "a=connection" attribute to 'existing'. 1174 If either party removes the circuit-switched media from the session 1175 (by setting the port number to zero), it MUST terminate the circuit- 1176 switched bearer using whatever mechanism is appropriate for the 1177 technology in question. 1179 If either party wishes to drop and reestablish an existing call, that 1180 party MUST first remove the circuit-switched media from the session 1181 by setting the port number to zero, and then use another Offer/Answer 1182 exchange where it MUST set the "a=connection" attribute to 'new'". 1183 If the media types are different (for example, a different codec will 1184 be used for the circuit-switched bearer), the media descriptions for 1185 terminating the existing bearer and the new bearer can be in the same 1186 Offer. 1188 5.7. Formal Syntax 1190 The following is the formal Augmented Backus-Naur Form (ABNF) 1191 [RFC5234] syntax that supports the extensions defined in this 1192 specification. The syntax is built above the SDP [RFC4566] and the 1193 tel URI [RFC3966] grammars. Implementations according to this 1194 specification MUST be compliant with this syntax. 1196 Figure 2 shows the formal syntax of the extensions defined in this 1197 memo. 1199 ; extension to the connection field originally specified 1200 ; in RFC 4566 1202 connection-field = [%x63 "=" nettype SP addrtype SP 1203 connection-address CRLF] 1204 ;nettype and addrtype are defined in RFC 4566 1206 connection-address /= global-number / "-" 1207 ; global-number specified in RFC 3966 1209 ;subrules for correlation attribute 1210 attribute /= cs-correlation-attr 1211 ; attribute defined in RFC 4566 1212 cs-correlation-attr= "cs-correlation:" corr-mechanisms 1213 corr-mechanisms = corr-mech *(SP corr-mech) 1214 corr-mech = caller-id-mech / uuie-mech / 1215 dtmf-mech / ext-mech 1216 caller-id-mech = "callerid" [":" caller-id-value] 1217 caller-id-value = "+" 1*15DIGIT 1218 uuie-mech = "uuie" [":" uuie-value] 1219 uuie-value = 1*65(HEXDIG HEXDIG) 1220 ;This represents up to 130 HEXDIG (65 octets) 1221 ;HEXDIG defined in RFC5234 1222 ;HEXDIG defined as 0-9, A-F 1223 dtmf-mech = "dtmf" [":" dtmf-value] 1224 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1225 ;0-9, A-D, '#' and '*' 1226 ext-mech = ext-mech-name[":" ext-mech-value] 1227 ext-mech-name = token 1228 ext-mech-value = token 1229 ; token is specified in RFC4566 1231 Figure 2: Syntax of the SDP extensions 1233 6. Examples 1235 In the examples below, where an SDP line is too long to be displayed 1236 as a single line, a breaking character "\" indicates continuation in 1237 the following line. Note that this character is included for display 1238 purposes only. Implementation MUST write a single line without 1239 breaks. 1241 6.1. Single PSTN audio stream 1243 Alice Bob 1244 | | 1245 | (1) SDP Offer (PSTN audio) | 1246 |--------------------------------->| 1247 | | 1248 | (2) SDP Answer (PSTN audio) | 1249 |<---------------------------------| 1250 | | 1251 | PSTN call setup | 1252 |<---------------------------------| 1253 | | 1254 |<==== media over PSTN bearer ====>| 1255 | | 1257 Figure 3: Basic flow 1259 Figure 3 shows a basic example that describes a single audio media 1260 stream over a circuit-switched bearer. Alice generates a SDP Offer 1261 which is shown in Figure 4. The Offer describes a PSTN circuit- 1262 switched bearer in the "m=" and "c=" line where it also indicates its 1263 international E.164 number format. Additionally, Alice expresses 1264 that she can initiate the circuit-switched bearer or be the recipient 1265 of it in the "a=setup" attribute line. The SDP Offer also includes 1266 correlation identifiers that this endpoint will insert in the Calling 1267 Party Number and/or User-User Information Element of the PSTN call 1268 setup if eventually this endpoint initiates the PSTN call. 1270 v=0 1271 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1272 s= 1273 t=0 0 1274 m=audio 9 PSTN - 1275 c=PSTN E164 +35891234567 1276 a=setup:actpass 1277 a=connection:new 1278 a=cs-correlation:callerid:+15551234 \ 1279 uuie:56A390F3D2B7310023 1281 Figure 4: SDP offer (1) 1283 Bob generates a SDP Answer (Figure 5), describing a PSTN audio media 1284 on port 9 without information on the media sub-type on the "m=" line. 1285 The "c=" line contains Bob's international E.164 number. In the 1286 "a=setup" line Bob indicates that he is willing to become the active 1287 endpoint when establishing the PSTN call, and he also includes the 1288 "a=cs-correlation" attribute line containing the values he is going 1289 to include in the Calling Party Number and User-User IE of the PSTN 1290 call establishment. 1292 v=0 1293 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1294 s= 1295 t=0 0 1296 m=audio 9 PSTN - 1297 c=PSTN E164 +35897654321 1298 a=setup:active 1299 a=connection:new 1300 a=cs-correlation:callerid:+15554321 \ 1301 uuie:56A390F3D2B7310023 1303 Figure 5: SDP Answer with circuit-switched media 1305 When Alice receives the Answer, she examines that Bob is willing to 1306 become the active endpoint when setting up the PSTN call. Alice 1307 temporarily stores Bob's E.164 number and the User-User IE value of 1308 the "cs-correlation" attribute, and waits for a circuit-switched 1309 bearer establishment. 1311 Bob initiates a circuit-switched bearer using whatever circuit- 1312 switched technology is available for him. The called party number is 1313 set to Alice's number, and calling party number is set to Bob's own 1314 number. Bob also sets the User-User Information Element value to the 1315 one contained in the SDP Answer. 1317 When Alice receives the circuit-switched bearer establishment, she 1318 examines the UUIE and the calling party number, and by comparing 1319 those received during O/A exchange determines that the call is 1320 related to the SDP session. 1322 It may also be that neither the UUIE nor the calling party number is 1323 received by the called party, or the format of the calling party 1324 number is changed by the PSTN. Implementations may still accept such 1325 call establishment attempts as being related to the session that was 1326 established in the IP network. As it cannot be guaranteed that the 1327 values used for correlation are always passed intact through the 1328 network, they should be treated as additional hints that the circuit- 1329 switched bearer is actually related to the session. 1331 6.2. Advanced SDP example: Circuit-Switched Audio and Video Streams 1333 Alice Bob 1334 | | 1335 | (1) SDP Offer (PSTN audio and video) | 1336 |------------------------------------------->| 1337 | | 1338 | (2) SDP Answer (PSTN audio) | 1339 |<-------------------------------------------| 1340 | | 1341 | PSTN call setup | 1342 |<-------------------------------------------| 1343 | | 1344 |<======== media over PSTN bearer ==========>| 1345 | | 1347 Figure 6: Circuit-Switched Audio and Video streams 1349 Figure 6 shows an example of negotiating audio and video media 1350 streams over circuit-switched bearers. 1352 v=0 1353 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1354 s= 1355 t=0 0 1356 a=setup:actpass 1357 a=connection:new 1358 a=cs-correlation:dtmf:112233 1359 c=PSTN E164 +35891234567 1360 m=audio 9 PSTN - 1361 m=video 9 PSTN 34 1362 a=rtpmap:34 H263/90000 1364 Figure 7: SDP offer with circuit-switched audio and video (1) 1366 Upon receiving the SDP offer descibed in Figure 7, Bob rejects the 1367 video stream as his device does not currently support video, but 1368 accepts the circuit-switched audio stream. As Alice indicated that 1369 she is able to become either the active, or passive party, Bob gets 1370 to select which role he would like to take. Since the Offer 1371 contained the international E.164 number of Alice, Bob decides that 1372 he becomes the active party in setting up the circuit-switched 1373 bearer. Bob includes a new value in the "dtmf" subfield of the "cs- 1374 correlation" attribute, which he is going send as DTMF tones once the 1375 bearer setup is complete. The Answer is described in Figure 8 1376 v=0 1377 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1378 s= 1379 t=0 0 1380 a=setup:active 1381 a=connection:new 1382 a=cs-correlation:dtmf:332211 1383 c=PSTN E164 +35897654321 1384 m=audio 9 PSTN - 1385 m=video 0 PSTN 34 1387 Figure 8: SDP answer with circuit-switched audio and video (2) 1389 7. Security Considerations 1391 This document provides an extension on top of RFC 4566 [RFC4566], and 1392 RFC 3264 [RFC3264]. As such, the security considerations of those 1393 documents apply. 1395 This memo provides mechanisms to agree on a correlation identifier or 1396 identifiers that are used to evaluate whether an incoming circuit- 1397 switched bearer is related to an ongoing session in the IP domain. 1398 If an attacker replicates the correlation identifer and establishes a 1399 call within the time window the receiving endpoint is expecting a 1400 call, the attacker may be able to hijack the circuit-switched bearer. 1401 These types of attacks are not specific to the mechanisms presented 1402 in this memo. For example, caller ID spoofing is a well known attack 1403 in the PSTN. Users are advised to use the same caution before 1404 revealing sensitive information as they would on any other phone 1405 call. Furthermore, users are advised that mechanisms that may be in 1406 use in the IP domain for securing the media, like Secure RTP (SRTP) 1407 [RFC3711], are not available in the CS domain. 1409 For the purposes of establishing a circuit-switched bearer, the 1410 active endpoint needs to know the passive endpoint's phone number. 1411 Phone numbers are sensitive information, and some people may choose 1412 not to reveal their phone numbers when calling using supplementary 1413 services like Calling Line Identification Restriction (CLIR) in GSM. 1414 Implementations should take the caller's preferences regarding 1415 calling line identification into account if possible, by restricting 1416 the inclusion of the phone number in SDP "c=" line if the caller has 1417 chosen to use CLIR. If this is not possible, implementations may 1418 present a prompt informing the user that their phone number may be 1419 transmitted to the other party. 1421 Similarly as with IP addresses, if there is a desire the protect the 1422 SDP containing phone numbers carried in SIP, implementers are adviced 1423 to follow the security mechanisms defined in [RFC3261]. 1425 It is possible that an attacker creates a circuit-switched session 1426 whereby the attacked endpoint should dial a circuit-switched number, 1427 perhaps even a premium-rate telephone number. To mitigate the 1428 consequences of this attack, endpoints MUST authenticate and trust 1429 remote endpoints users who try to remain passive in the circuit- 1430 switched connection establishment. It is RECOMMENDED that endpoints 1431 have local policies precluding the active establishment of circuit 1432 switched connections to certain numbers (e.g., international, 1433 premium, long distance). Additionally, it is strongly RECOMMENDED 1434 that the end user is asked for consent prior to the endpoint 1435 initiating a circuit-switched connection. 1437 8. IANA Considerations 1439 This document instructs IANA to register a number of SDP tokens 1440 according to the following data. 1442 8.1. Registration of new cs-correlation SDP attribute 1444 Contact: Miguel Garcia 1446 Attribute name: cs-correlation 1448 Long-form attribute name: PSTN Correlation Identifier 1450 Type of attribute: media level only 1452 This attribute is subject to the charset attribute 1454 Description: This attribute provides the Correlation Identifier 1455 used in PSTN signaling 1457 Specification: RFC XXXX 1459 The IANA is requested to create a subregistry for 'cs-correlation' 1460 attribute under the Session Description Protocol (SDP) Parameters 1461 registry. The initial values for the subregistry are presented in 1462 the following, and IANA is requested to add them into its database: 1464 Value of 'cs-correlation' attribute Reference Description 1465 ----------------------------------- --------- ----------- callerid 1466 RFC XXXX Caller ID uuie RFC XXXX User-User Information Element dtmf 1467 RFC XXXX Dual-tone Multifrequency 1469 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1470 reference to the RFC number of this draft. 1472 As per the terminology in [RFC5226], the registration policy for new 1473 values of 'cs-correlation' parameter is 'Specification Required'. 1475 8.2. Registration of a new "nettype" value 1477 This memo provides instructions to IANA to register a new "nettype" 1478 in the Session Description Protocol Parameters registry [1]. The 1479 registration data, according to RFC 4566 [RFC4566] follows. 1481 Type SDP Name Reference 1482 ---- ------------------ --------- 1483 nettype PSTN [RFCxxxx] 1485 8.3. Registration of new "addrtype" values 1487 This memo provides instructions to IANA to register a new "addrtype" 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 addrtype E164 [RFCxxxx] 1494 - [RFCxxxx] 1496 Note: RFC XXXX uses the "E164" and "-" addrtypes in conjunction with 1497 the "PSTN" nettype. Please refer to the relevant RFC for a 1498 description of that representation. 1500 8.4. Registration of a new "proto" value 1502 This memo provides instructions to IANA to register a new "proto" in 1503 the Session Description Protocol Parameters registry [1]. The 1504 registration data, according to RFC 4566 [RFC4566] follows. 1506 Type SDP Name Reference 1507 -------------- --------------------------- --------- 1508 proto PSTN [RFCxxxx] 1510 The related "fmt" namespace re-uses the conventions and payload type 1511 number defined for RTP/AVP. In this document, the RTP audio and 1512 video media types, when applied to PSTN circuit-switched bearers, 1513 represent merely on audio or video codec. 1515 9. Acknowledgments 1517 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1518 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1519 Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom 1520 Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing 1521 their insight and comments on this document. 1523 10. References 1525 10.1. Normative References 1527 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1528 Requirement Levels", BCP 14, RFC 2119, March 1997. 1530 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1531 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 1532 October 1998. 1534 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1535 Session Description Protocol (SDP) for ATM Bearer 1536 Connections", RFC 3108, May 2001. 1538 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1539 with Session Description Protocol (SDP)", RFC 3264, 1540 June 2002. 1542 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", 1543 RFC 3966, December 2004. 1545 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1546 the Session Description Protocol (SDP)", RFC 4145, 1547 September 2005. 1549 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1550 Description Protocol", RFC 4566, July 2006. 1552 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1553 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 1554 May 2008. 1556 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1557 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1559 10.2. Informative References 1561 [I-D.ietf-cuss-sip-uui] 1562 Johnston, A. and J. Rafferty, "A Mechanism for 1563 Transporting User to User Call Control Information in 1564 SIP", draft-ietf-cuss-sip-uui-07 (work in progress), 1565 July 2012. 1567 [ITU.E164.1991] 1568 International Telecommunications Union, "The International 1569 Public Telecommunication Numbering Plan", ITU- 1570 T Recommendation E.164, 1991. 1572 [ITU.Q931.1998] 1573 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1574 User - Network Interface Layer 3 Specification for Basic 1575 Call Control", ISO Standard 9594-1, May 1998. 1577 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1578 A., Peterson, J., Sparks, R., Handley, M., and E. 1579 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1580 June 2002. 1582 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1583 Jacobson, "RTP: A Transport Protocol for Real-Time 1584 Applications", STD 64, RFC 3550, July 2003. 1586 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1587 Video Conferences with Minimal Control", STD 65, RFC 3551, 1588 July 2003. 1590 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1591 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1592 RFC 3711, March 2004. 1594 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 1595 Camarillo, "Best Current Practices for Third Party Call 1596 Control (3pcc) in the Session Initiation Protocol (SIP)", 1597 BCP 85, RFC 3725, April 2004. 1599 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1600 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1602 [TS.24.008] 1603 3GPP, "Mobile radio interface Layer 3 specification; Core 1604 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1605 December 2005. 1607 URIs 1609 [1] 1611 Authors' Addresses 1613 Miguel A. Garcia-Martin 1614 Ericsson 1615 Calle Via de los Poblados 13 1616 Madrid, ES 28033 1617 Spain 1619 Email: miguel.a.garcia@ericsson.com 1621 Simo Veikkolainen 1622 Nokia 1623 P.O. Box 226 1624 NOKIA GROUP, FI 00045 1625 Finland 1627 Phone: +358 50 486 4463 1628 Email: simo.veikkolainen@nokia.com