idnits 2.17.1 draft-ietf-mmusic-sdp-cs-09.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 are 3 instances of too long lines in the document, the longest one being 9 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 use 'NOT RECOMMENDED' as an RFC 2119 keyword, but does not include the phrase in its RFC 2119 key words list. == 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 31, 2011) is 4561 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 1277, but not defined ** Obsolete normative reference: RFC 2434 (Obsoleted by RFC 5226) ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) Summary: 3 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MMUSIC WG M. Garcia-Martin 3 Internet-Draft Ericsson 4 Intended status: Standards Track S. Veikkolainen 5 Expires: May 3, 2012 Nokia 6 October 31, 2011 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-09 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 May 3, 2012. 37 Copyright Notice 39 Copyright (c) 2011 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 This document may contain material from IETF Documents or IETF 53 Contributions published or made publicly available before November 54 10, 2008. The person(s) controlling the copyright in some of this 55 material may not have granted the IETF Trust the right to allow 56 modifications of such material outside the IETF Standards Process. 57 Without obtaining an adequate license from the person(s) controlling 58 the copyright in such materials, this document may not be modified 59 outside the IETF Standards Process, and derivative works of it may 60 not be created outside the IETF Standards Process, except to format 61 it for publication as an RFC or to translate it into languages other 62 than English. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 67 2. Conventions Used in This Document . . . . . . . . . . . . . . 5 68 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 5 69 4. Overview of Operation . . . . . . . . . . . . . . . . . . . . 6 70 4.1. Example Call Flow . . . . . . . . . . . . . . . . . . . . 6 71 5. Protocol Description . . . . . . . . . . . . . . . . . . . . . 8 72 5.1. Level of Compliance . . . . . . . . . . . . . . . . . . . 8 73 5.2. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 8 74 5.2.1. Connection Data . . . . . . . . . . . . . . . . . . . 8 75 5.2.2. Media Descriptions . . . . . . . . . . . . . . . . . . 9 76 5.2.3. Correlating the PSTN Circuit-Switched Bearer with 77 SDP . . . . . . . . . . . . . . . . . . . . . . . . . 10 78 5.2.3.1. The "cs-correlation" attribute . . . . . . . . . . 11 79 5.2.3.2. Caller-ID Correlation Mechanism . . . . . . . . . 12 80 5.2.3.3. User-User Information Element Correlation 81 Mechanism . . . . . . . . . . . . . . . . . . . . 13 82 5.2.3.4. DTMF Correlation Mechanism . . . . . . . . . . . . 14 83 5.3. Negotiating the correlation mechanisms . . . . . . . . . . 15 84 5.3.1. Determining the Direction of the Circuit-Switched 85 Bearer Setup . . . . . . . . . . . . . . . . . . . . . 15 86 5.3.2. Populating the cs-correlation attribute . . . . . . . 16 87 5.3.3. Considerations on successful correlation . . . . . . . 16 88 5.4. Considerations for Usage of Existing SDP . . . . . . . . . 17 89 5.4.1. Originator of the Session . . . . . . . . . . . . . . 17 90 5.4.2. Contact information . . . . . . . . . . . . . . . . . 17 91 5.5. Offer/Answer mode extensions . . . . . . . . . . . . . . . 18 92 5.5.1. Generating the Initial Offer . . . . . . . . . . . . . 18 93 5.5.2. Generating the Answer . . . . . . . . . . . . . . . . 20 94 5.5.3. Offerer processing the Answer . . . . . . . . . . . . 22 95 5.5.4. Modifying the session . . . . . . . . . . . . . . . . 23 96 5.6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 24 97 6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 98 7. Security Considerations . . . . . . . . . . . . . . . . . . . 26 99 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 100 8.1. Registration of new cs-correlation SDP attribute . . . . . 27 101 8.2. Registration of a new "nettype" value . . . . . . . . . . 28 102 8.3. Registration of new "addrtype" values . . . . . . . . . . 28 103 8.4. Registration of a new "proto" value . . . . . . . . . . . 28 104 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 105 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 106 10.1. Normative References . . . . . . . . . . . . . . . . . . . 29 107 10.2. Informative References . . . . . . . . . . . . . . . . . . 29 108 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30 110 1. Introduction 112 The Session Description Protocol (SDP) [RFC4566] is intended for 113 describing multimedia sessions for the purposes of session 114 announcement, session invitation, and other forms of multimedia 115 session initiation. SDP is most commonly used for describing media 116 streams that are transported over the Real-Time Transport Protocol 117 (RTP) [RFC3550], using the profiles for audio and video media defined 118 in RTP Profile for Audio and Video Conferences with Minimal Control 119 [RFC3551]. 121 However, SDP can be used to describe other transport protocols than 122 RTP. Previous work includes SDP conventions for describing ATM 123 bearer connections [RFC3108] and the Message Session Relay Protocol 124 [RFC4975]. 126 SDP is commonly carried in Session Initiation Protocol (SIP) 127 [RFC3261] messages in order to agree on a common media description 128 among the endpoints. An Offer/Answer Model with Session Description 129 Protocol (SDP) [RFC3264] defines a framework by which two endpoints 130 can exchange SDP media descriptions and come to an agreement as to 131 which media streams should be used, along with the media related 132 parameters. 134 In some scenarios it might be desirable to establish the media stream 135 over a circuit-switched bearer connection even if the signaling for 136 the session is carried over an IP bearer. An example of such a 137 scenario is illustrated with two mobile devices capable of both 138 circuit-switched and packet-switched communication over a low- 139 bandwidth radio bearer. The radio bearer may not be suitable for 140 carrying real-time audio or video media, and using a circuit-switched 141 bearer would offer a better perceived quality of service. So, 142 according to this scenario, SDP and its higher layer session control 143 protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are 144 used over regular IP connectivity, while the audio or video is 145 received through the classical circuit-switched bearer. 147 Setting up a signaling relationship in the IP domain instead of just 148 setting up a circuit-switched call offers also the possibility of 149 negotiating in the same session other IP based media that is not 150 sensitive to jitter and delay, for example, text messaging or 151 presence information. 153 At a later point in time the mobile device might move to an area 154 where a high-bandwidth packet-switched bearer, for example a Wireless 155 Local Area Network (WLAN) connection, is available. At this point 156 the mobile device may perform a handover and move the audio or video 157 media streams over to the high-speed bearer. This implies a new 158 exchange of SDP Offer/Answer that lead to a re-negotiation of the 159 media streams. 161 Other use cases exist. For example, and endpoint might have at its 162 disposal circuit-switched and packet-switched connectivity, but the 163 same audio or video codecs are not feasible for both access networks. 164 For example, the circuit-switched audio or video stream supports 165 narrow-bandwidth codecs, while the packet-switched access allows any 166 other audio or video codec implemented in the endpoint. In this 167 case, it might be beneficial for the endpoint to describe different 168 codecs for each access type and get an agreement on the bearer 169 together with the remote endpoint. 171 There are additional use cases related to third party call control 172 where the session setup time is improved when the circuit-switched 173 bearer in the PSTN is described together with one or more codecs. 175 The rest of the document is structured as follows: Section 2 provides 176 the document conventions, Section 3 introduces the requirements, 177 Section 4 presents an overview of the proposed solutions, and 178 Section 5 contains the protocol description. Section 6 provides an 179 example of descriptions of circuit-switched audio or video streams in 180 SDP. Section 8 and Section 7 contain the IANA and Security 181 considerations, respectively. 183 2. Conventions Used in This Document 185 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 186 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 187 document are to be interpreted as described in BCP 14, RFC 2119 188 [RFC2119] and indicate requirement levels for compliant 189 implementations. 191 3. Requirements 193 This section presents the general requirements that are specific for 194 the audio or video media streams over circuit-switched bearers. 196 REQ-1: A mechanism for endpoints to negotiate and agree on an audio 197 or video media stream established over a circuit-switched 198 bearer MUST be available. 200 REQ-2: The mechanism MUST allow the endpoints to combine circuit- 201 switched audio or video media streams with other 202 complementary media streams, for example, text messaging. 204 REQ-3: The mechanism MUST allow the endpoint to negotiate the 205 direction of the circuit-switched bearer, i.e., which 206 endpoint is active when initiating the circuit-switched 207 bearer. 209 REQ-4: The mechanism MUST be independent of the type of the circuit- 210 switched access (e.g., Integrated Services Digital Network 211 (ISDN), Global System for Mobile Communication (GSM), etc.) 213 REQ-5: There MUST be a mechanism that helps an endpoint to correlate 214 an incoming circuit-switched bearer with the one negotiated 215 in SDP, as opposed to another incoming call that is not 216 related to that. 218 REQ-6: It MUST be possible for endpoints to advertise different list 219 of audio or video codecs in the circuit-switched audio or 220 video stream from those used in a packet-switched audio or 221 video stream. 223 REQ-7: It MUST be possible for endpoints to not advertise the list 224 of available codecs for circuit-switched audio or video 225 streams. 227 4. Overview of Operation 229 The mechanism defined in this memo extends SDP and allows describing 230 an audio or video media stream established over a circuit-switched 231 bearer. New tokens are registered in the "c=" and "m=" lines to be 232 able to describe a media stream over a circuit-switched bearer. 233 These SDP extensions are described in Section 5.2. Since circuit- 234 switched bearers are connection-oriented media streams, the mechanism 235 re-uses the connection-oriented extensions defined in RFC 4145 236 [RFC4145] to negotiate the active and passive sides of a connection 237 setup. This is further described in Section 5.3.1. 239 4.1. Example Call Flow 241 Consider the example presented in Figure 1. In this example, Alice 242 is located in an environment where she has access to both IP and 243 circuit-switched bearers for communicating with other endpoints. 244 Alice decides that the circuit-switched bearer offers a better 245 perceived quality of service for voice, and issues an SDP Offer 246 containing the description of an audio media stream over circuit- 247 switched bearer. 249 Alice Bob 250 | (1) SDP Offer (PSTN audio) | 251 |----------------------------------->| 252 | | 253 | (2) SDP Answer (PSTN audio) | 254 |<-----------------------------------| 255 | | 256 | PSTN call setup | 257 |<-----------------------------------| 258 | | 259 | | 260 |<===== media over PSTN bearer =====>| 261 | | 263 Figure 1: Example Flow 265 Bob receives the SDP offer and determines that he is located in an 266 environment where the IP based bearer is not suitable for real-time 267 audio media. However he also has PSTN circuit-switched bearer 268 available for audio. Bob generates an SDP answer containing a 269 description of the audio media stream over a circuit-switched bearer. 271 During the offer-answer exchange Alice and Bob also agree the 272 direction in which the circuit-switched bearer should be established. 273 In this example, Bob becomes the active party, in other words, he 274 establishes the circuit-switched call to the other endpoint. The 275 Offer/Answer exchange contains identifiers or references that can be 276 used on the circuit-switched network for addressing the other 277 endpoint, as well as information that is used to determine that the 278 incoming circuit-switched bearer establishment is related to the 279 ongoing session between Alice and Bob. 281 Bob establishes a circuit-switched bearer towards Alice using 282 whatever mechanisms are defined for the network type in question. 283 When receiving the incoming circuit-switched connection attempt, 284 Alice is able to determine that the attempt is related to the session 285 she is just establishing with Bob. 287 Alice accepts the circuit-switched connection; the circuit-switched 288 bearer setup is completed. Bob and Alice can now use the circuit- 289 switched connection for two-way audio media. 291 If, for some reason, Bob would like to reject the offered stream, he 292 would set the port number of the specific stream to zero, as 293 specified in RFC3264 [RFC3264]. Also, if Bob does not understand 294 some of the SDP attributes specified in this document, he would 295 ignore them, as specified in RFC4566 [RFC4566]. 297 5. Protocol Description 299 5.1. Level of Compliance 301 Implementations according to this specification MUST implement the 302 SDP extensions described in Section 5.2, and MUST implement the 303 considerations discussed in Section 5.3, Section 5.4 and Section 5.5. 305 5.2. Extensions to SDP 307 This section provides the syntax and semantics of the extensions 308 required for providing a description of audio or video media streams 309 over circuit-switched bearers in SDP. 311 5.2.1. Connection Data 313 According to SDP [RFC4566], the connection data line in SDP has the 314 following syntax: 316 c= 318 where indicates the network type, indicates the 319 address type, and the is the connection address, 320 which is dependent on the address type. 322 At the moment, the only network type defined is "IN", which indicates 323 Internet network type. The address types "IP4" and "IP6" indicate 324 the type of IP addresses. 326 This memo defines a new network type for describing a circuit- 327 switched bearer network type in the PSTN. The mnemonic "PSTN" is 328 used for this network type. 330 For the address type, we initially consider the possibility of 331 describing E.164 telephone numbers. We define a new "E164" address 332 type. When used, the "E164" address type indicates that the 333 connection address contains an international E.164 number represented 334 according to the ITU-T E.164 [ITU.E164.1991] recommendation. 336 It is a common convention that an international E.164 number contains 337 a leading '+' sign. For consistency's sake, we also require the 338 E.164 telephone is prepended with a '+', even if that is not 339 necessary for routing of the call in the PSTN network. 341 There are cases, though, when the endpoint is merely aware of a 342 circuit-switched bearer, without having further information about the 343 address type or the E.164 number allocated to it. In these cases a 344 dash "-" is used to indicate an unknown address type or connection 345 address. This makes the connection data line be according to the SDP 346 syntax. 348 Note that and/or should not be 349 omitted without being set to a "-" since this would violate basic 350 syntax of SDP [RFC4566]. 352 The following are examples of the extension to the connection data 353 line: 355 c=PSTN E164 +35891234567 357 c=PSTN - - 359 When the is PSTN, the connection address is defined as 360 follows: 362 o an international E.164 number 364 When the is "-", the connection address is defined as 365 follows: 367 o the value "-", signifying that the address is unknown 369 o any syntactically valid value, which is to be ignored 371 5.2.2. Media Descriptions 373 According to SDP [RFC4566], the media descriptions line in SDP has 374 the following syntax: 376 m= ... 378 The sub-field carries the media type. For establishing an 379 audio bearer, the existing "audio" media type is used. For 380 establishing a video bearer, the existing "video" media type is used. 382 The sub-field is the transport port to which the media stream 383 is sent. Circuit-switched access lacks the concept of a port number, 384 and therefore the sub-field is set to the discard port "9". 386 According to RFC 3264 [RFC3264], a port number of zero in the offer 387 of a unicast stream indicates that the stream is offered but must not 388 be used. If a port number of zero is present in the answer of a 389 unicast stream, it indicates that the stream is rejected. These 390 rules are still valid when the media line in SDP represents a 391 circuit-switched bearer. 393 The sub-field is the transport protocol. The circuit- 394 switched bearer uses whatever transport protocol it has available. 395 This subfield SHOULD be set to the mnemonic "PSTN" to be 396 syntactically correct with SDP [RFC4566] and to indicate the usage of 397 circuit-switched protocols in the PSTN. 399 The sub-field is the media format description. In the 400 classical usage of SDP to describe RTP-based media streams, when the 401 sub-field is set to "RTP/AVP" or "RTP/SAVP", the sub- 402 field contains the payload types as defined in the RTP audio profile 403 [RFC3551]. 405 When "RTP/AVP" is used in the field, the sub-field 406 contains the RTP payload type numbers. We use the sub-field to 407 indicate the list of available codecs over the circuit-switched 408 bearer, by re-using the conventions and payload type numbers defined 409 for RTP/AVP. The RTP audio and video media types, which, when 410 applied to PSTN circuit-switched bearers, represent merely an audio 411 or video codec. 413 In some cases, the endpoint is not able to determine the list of 414 available codecs for circuit-switched media streams. In this case, 415 in order to be syntactically compliant with SDP [RFC4566], the 416 endpoint MUST include a single dash "-" in the sub-field. 418 As per RFC 4566 [RFC4566], the media format descriptions are listed 419 in priority order. 421 Examples of media descriptions for circuit-switched audio streams 422 are: 424 m=audio 9 PSTN 3 0 8 426 m=audio 9 PSTN - 428 Similarly, an example of a media description for circuit-switched 429 video stream is: 431 m=video 9 PSTN 34 433 m=video 9 PSTN - 435 5.2.3. Correlating the PSTN Circuit-Switched Bearer with SDP 437 The endpoints should be able to correlate the circuit-switched bearer 438 with the session negotiated with SDP in order to avoid ringing for an 439 incoming circuit-switched bearer that is related to the session 440 controlled with SDP (and SIP). 442 Several alternatives exist for performing this correlation. This 443 memo provides three mutually non-exclusive correlation mechanisms. 444 Other correlation mechanisms may exist, and their usage will be 445 specified when need arises. All mechanisms share the same principle: 446 some unique information is sent in the SDP and in the circuit- 447 switched signaling protocol. If these pieces of information match, 448 then the circuit-switched bearer is part of the session described in 449 the SDP exchange. Otherwise, there is no guarantee that the circuit- 450 switched bearer is related to such session. 452 The first mechanism is based on the exchange of PSTN caller-ID 453 between the endpoints. The caller-ID is also available as the 454 Calling Party ID in the circuit-switched signaling. 456 The second mechanism is based on the inclusion in SDP of a value that 457 is also sent in the User-to-User Information Element that is part of 458 the bearer setup signaling in the PSTN. 460 The third mechanism is based on sending in SDP a string that 461 represents Dual Tone MultiFrequency (DTMF) digits that will be later 462 sent right after the circuit-switched bearer is established. 463 Implementations MAY use any of these mechanisms and MAY use two or 464 more mechanisms simultaneously. 466 5.2.3.1. The "cs-correlation" attribute 468 In order to provide support for the correlation mechanisms, we define 469 a new SDP attribute called "cs-correlation". This "cs-correlation" 470 attribute can include any of the "callerid", "uuie", or "dtmf" sub- 471 fields, which specify additional information required by the 472 Caller-ID, User to User Information, or DTMF correlation mechanisms, 473 respectively. The list of correlation mechanisms may be extended by 474 other specifications. 476 The following sections provide more detailed information of these 477 subfields. The "cs-correlation" attribute has the following format: 479 a=cs-correlation: 480 correlation-mechanisms = corr-mech *(SP corr-mech) 481 corr-mech = caller-id-mech / uuie-mech / 482 dfmt-mech / ext-mech 483 caller-id-mech = "callerid" [":" caller-id-value] 484 uuie-mech = "uuie" [":" uuie-value] 485 dtmf-mech = "dtmf" [":" dtmf-value] 486 ext-mech = [":"] 488 The values "callerid", "uuie" and "dtmf" refer to the correlation 489 mechanisms defined in Section 5.2.3.2, Section 5.2.3.3, and 490 Section 5.2.3.4, respectively. The formal Augmented Backus-Naur 491 Format (ABNF) syntax of the "cs-correlation" attribute is presented 492 in Section 5.6. 494 5.2.3.2. Caller-ID Correlation Mechanism 496 The Caller-ID correlation mechanisms consists of an exchange of the 497 calling party number as an international E.164 number in SDP, 498 followed by the availability of the Calling Party Number information 499 element in the call setup signaling of the circuit switched 500 connection. If both pieces of information match, the circuit- 501 switched bearer is correlated to the session described in SDP. 503 Example of inclusion of an international E.164 number in the "cs- 504 correlation" attribute is: 506 a=cs-correlation:callerid:+35891234567 508 The presence of the "callerid" sub-field indicates that the endpoint 509 supports use of the calling party number as a means of correlating a 510 PSTN call with the session being negotiated. The "callerid" sub- 511 field MAY be accompanied by the international E.164 number of the 512 party inserting the parameter. 514 Note that there are no warranties that this correlation mechanism 515 works or is even available, due a number of problems: 517 o The endpoint might not be aware of its own E.164 number, in which 518 case it cannot populate the SDP appropriately. 520 o The Calling Party Number information element in the circuit- 521 switched signaling might not be available, e.g., due to policy 522 restrictions of the network operator or caller restriction due to 523 privacy. 525 o The Calling Party Number information element in the circuit- 526 switched signaling might be available, but the digit 527 representation of the E.164 number might differ from the one 528 expressed in the SDP. To mitigate this problem implementations 529 should consider only some of the rightmost digits from the E.164 530 number for correlation. For example, the numbers +358-9-123-4567 531 and 09-123-4567 could be considered as the same number. This is 532 also the behavior of some cellular phones, which correlate the 533 incoming calling party with a number stored in the phone book, for 534 the purpose of displaying the caller's name. 536 5.2.3.3. User-User Information Element Correlation Mechanism 538 A second correlation mechanism is based on including in SDP a string 539 that represents the User-User Information Element that is part of the 540 call setup signaling of the circuit-switched bearer. The User-User 541 Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and 542 3GPP TS 24.008 [TS.24.008], among others. The User-User Information 543 Element has a maximum size of 35 or 131 octets, depending on the 544 actual message of the PSTN protocol where it is included. 546 The mechanism works as follows: An endpoint creates a User-User 547 Information Element, according to the requirements of the call setup 548 signaling protocol. The same value is included in the SDP offer or 549 SDP answer, in a "cs-correlation:uuie" attribute. When the SDP 550 Offer/Answer exchange is completed, each endpoint has become aware of 551 the value that will be used in the User-User Information Element of 552 the call setup message of the PSTN protocol. The endpoint that 553 initiates the call setup attempt includes this value in the User-User 554 Information Element. The recipient of the call setup attempt can 555 extract the User-User Information Element and correlate it with the 556 value previously received in the SDP. If both values match, then the 557 call setup attempt corresponds to that indicated in the SDP. 559 The first three octets of the User-User Information Element specified 560 in ITU-T Q.931 [ITU.Q931.1998] are the UUIE identifier, lenght of the 561 user-user contents, and a protocol discriminator, followed by the 562 actual User information. The first three octets of the UUIE MUST NOT 563 be used for correlation, only the octets carrying the User 564 information value are compared the value of the "cs-correlation:uuie" 565 attribute. 567 OPEN ISSUE: Need to confirm whether this is acceptable. 569 Note that, for correlation purposes, the value of the User-User 570 Information Element is considered as a opaque string and only used 571 for correlation purposes. Typically call signaling protocols impose 572 requirements on the creation of User-User Information Element for 573 end-user protocol exchange. The details regarding the generation of 574 the User-User Information Element are outside the scope of this 575 specification. 577 Please note that there are no warranties that this correlation 578 mechanism works. On one side, policy restrictions might not make the 579 User-User information available end to end in the PSTN. On the other 580 hand, the generation of the User-User Information Element is 581 controlled by the PSTN circuit-switched call protocol, which might 582 not offer enough freedom for generating different values from one 583 endpoint to another one, or from one call to another in the same 584 endpoint. This might result in the same value of the User-User 585 Information Element for all calls. 587 5.2.3.4. DTMF Correlation Mechanism 589 We introduce a third mechanism for correlating the circuit-switched 590 bearer with the session described with SDP. This is based on 591 agreeing on a sequence of digits that are negotiated in the SDP 592 Offer/Answer exchange and sent as Dual Tone Multifrequency (DTMF) 593 tones over the circuit-switched bearer once this bearer is 594 established. If the DTMF digit sequence received through the 595 circuit-switched bearer matches the digit string negotiated in the 596 SDP, the circuit-switched bearer is correlated with the session 597 described in the SDP. The mechanism is similar to many voice 598 conferencing systems which require the user to enter a PIN code using 599 DTMF tones in order to be accepted in a voice conference. 601 The mechanism works as follows: An endpoint selects a DTMF digit 602 sequence. The same sequence is included in the SDP offer or SDP 603 answer, in a "cs-correlation:dtmf" attribute. When the SDP Offer/ 604 Answer exchange is completed, each endpoint has become aware of the 605 DTMF sequence that will be sent right after the circuit-switched 606 bearer is set up. The endpoint that initiates the call setup attempt 607 sends the DTMF digits according to the procedures defined for the 608 circuit-switched bearer technology used. The recipient (passive side 609 of the bearer setup) of the call setup attempt collects the digits 610 and compares them with the value previously received in the SDP. If 611 the digits match, then the call setup attempt corresponds to that 612 indicated in the SDP. 614 Implementations are advised to select a number of DTMF digits that 615 provide enough assurance that the call is related, but on the 616 other hand do not prolong the bearer setup time unnecessarily. 618 As an example, an endpoint willing to send DTMF tone sequence "14D*3" 619 would include a "cs-correlation" attribute line as follows: 621 a=cs-correlation:dtmf:14D*3 623 If the endpoints successfully agree on the usage of the DTMF digit 624 correlation mechanism, but the passive side does not receive any DTMF 625 digits after successful circuit-switched bearer setup, or receives a 626 set of DTMF digits that do not match the value of the "dtmf" 627 attribute (including receiving too many digits), the passive side 628 SHOULD treat the circuit-switched bearer as not correlated to the 629 ongoing session. 631 DTMF digits can only be sent once the circuit-switched bearer is 632 set up. In order to suppress alerting for an incoming circuit- 633 switched call, implementations may choose various mechanisms. For 634 example, alerting may be suppressed for a certain time period for 635 incoming call attempts that originate from the number that was 636 observed during the offer/answer negotiation. 638 5.3. Negotiating the correlation mechanisms 640 The three correlation mechanisms presented above (based on called 641 party number, User-User Information Element and DTMF digit sending) 642 are non-exclusive, and can be used independently of each other. In 643 order to know how to populate the "a=cs-correlation" attribute, the 644 endpoints need to agree which endpoint will become the active party, 645 i.e. the one that will set up the circuit-switched bearer. 647 5.3.1. Determining the Direction of the Circuit-Switched Bearer Setup 649 In order to avoid a situation where both endpoints attempt to 650 initiate a connection simultaneously, the direction in which the 651 circuit-switched bearer is set up should be negotiated during the 652 Offer/Answer exchange. 654 The framework defined in RFC 4145 [RFC4145] allows the endpoints to 655 agree which endpoint acts as the active endpoint when initiating a 656 TCP connection. While RFC 4145 [RFC4145] was originally designed for 657 establishing TCP connections, it can be easily extrapolated to the 658 connection establishment of circuit-switched bearers. This 659 specification uses the concepts specified in RFC 4145 [RFC4145] for 660 agreeing on the direction of establishment of a circuit-switched 661 bearer. 663 RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and 664 "connection". The "setup" attribute indicates which of the endpoints 665 should initiate the connection establishment of the PSTN circuit- 666 switched bearer. Four values are defined in Section 4 of RFC 4145 667 [RFC4145]: "active", "passive", "actpass", "holdconn". Please refer 668 to Section 4 of RFC 4145 [RFC4145] for a detailed description of this 669 attribute. 671 The "connection" attribute indicates whether a new connection is 672 needed or an existing connection is reused. The attribute can take 673 the values "new" or "existing". Please refer to Section 5 of RFC 674 4145 [RFC4145] for a detailed description of this attribute. 676 Implementations according to this specification MUST support the 677 "setup" and "connection" attributes specified in RFC 4145 [RFC4145], 678 but applied to circuit-switched bearers in the PSTN. 680 We define the active party as the one that initiates the circuit- 681 switched bearer after the Offer/Answer process. The passive party is 682 the one receiving the circuit-switched bearer. Either party may 683 indicate its desire to become the active or passive party during the 684 Offer/Answer exchange using the procedures described in Section 5.5. 686 5.3.2. Populating the cs-correlation attribute 688 By defining values for the sub-fields in the "a=cs-correlation" 689 attribute, the endpoint indicates that it is willing to become the 690 active party, and that it can use those values in the Calling party 691 number, User-User Information Element, or as DTMF tones during the 692 circuit-switched bearer setup. 694 Thus, the following rules apply: 696 An endpoint that can only become the active party in the circuit- 697 switched bearer setup MUST include all correlation mechanisms it 698 supports in the "a=cs-correlation" attribute, and MUST also 699 specify values for the sub-fields. 701 An endpoint that can only become the passive party in the circuit- 702 switched bearer setup MUST include all correlation mechanisms it 703 supports in the "a=cs-correlation" attribute, but MUST NOT specify 704 values for the sub-fields. 706 An endpoint that is willing to become either the active or passive 707 party (by including the "a=setup:actpass" attribute in the Offer), 708 MUST include all correlation mechanisms it supports in the "a=cs- 709 correlation" attribute, and MUST also specify values for the sub- 710 fields. 712 5.3.3. Considerations on successful correlation 714 Note that, as stated above, it cannot be guaranteed that any given 715 correlation mechanism will succeed even if the usage of those was 716 agreed beforehand. This is due to the fact that the correlation 717 mechanisms require support from the circuit-switched bearer 718 technology used. 720 Therefore, even a single positive indication using any of these 721 mechanisms SHOULD be interpreted by the passive endpoint so that the 722 circuit-switched bearer establishment is related to the ongoing 723 session, even if the other correlation mechanisms fail. 725 If, after negotiating one or more correlation mechanisms in the SDP 726 offer/answer exchange, an endpoint receives a circuit-switched bearer 727 with no correlation information present, the endpoint has two 728 choices: it can either treat the call as unrelated, or treat the call 729 as related to the ongoing session in the IP domain. 731 An endpoint may for example specify a time window after SDP offer/ 732 answer exchange during which received calls are treated as correlated 733 even if the signaling in the circuit-switched domain does not carry 734 any correlation information. In this case, there is a chance that 735 the call is erroneously treated as related to the ongoing session. 737 An endpoint may also choose to always treat an incoming call as 738 unrelated if the signaling in the circuit-switched domain does not 739 carry any correlation information. In this case, there is a chance 740 that the call is erroneously treated as unrelated. 742 Since, in these cases, no correlation information can be deduced from 743 the signaling, it is up to the implementation to decide how to 744 behave. One option is also to let the user decide whether to accept 745 the call as related, or to treat the call as unrelated. 747 5.4. Considerations for Usage of Existing SDP 749 5.4.1. Originator of the Session 751 According to SDP [RFC4566], the origin line in SDP has the following 752 syntax: 754 o= 755 757 Of interest here are the and fields, which 758 indicate the type of network and type of address, respectively. 759 Typically, this field carries the IP address of the originator of the 760 session. Even if the SDP was used to negotiate an audio or video 761 media stream transported over a circuit-switched bearer, the 762 originator is using SDP over an IP bearer. Therefore, and 763 fields in the "o=" line should be populated with the IP 764 address identifying the source of the signaling. 766 5.4.2. Contact information 768 SDP [RFC4566] defines the "p=" line which may include the phone 769 number of the person responsible for the conference. Even though 770 this line can carry a phone number, it is not suited for the purpose 771 of defining a connection address for the media. Therefore, we have 772 selected to define the PSTN specific connection addresses in the "c=" 773 line. 775 5.5. Offer/Answer mode extensions 777 In this section, we define extensions to the Offer/Answer model 778 defined in The Offer/Answer Model in SDP [RFC3264] and extended in 779 the SDP Capability Negotiation [RFC5939] to allow for PSTN addresses 780 to be used with the Offer/Answer model. 782 5.5.1. Generating the Initial Offer 784 The Offerer, wishing to use PSTN audio or video stream, MUST populate 785 the "c=" and "m=" lines as follows. 787 The endpoint MUST set the in the "c=" line to "PSTN", and 788 the to "E164". Furthermore, the endpoint SHOULD set the 789 field to its own international E.164 number 790 (with a leading "+"). If the endpoint is not aware of its own E.164 791 number, it MUST set the to "-". 793 In the "m=" line, the endpoint MUST set the subfield to 794 "audio" or "video", depending on the media type, the to "9" 795 (the discard port), and the sub-field to "PSTN". 797 The sub-field carries the payload type number(s) the endpoint 798 is wishing to use. Payload type numbers in this case refer to the 799 codecs that the endpoint wishes to use. For example, if the endpoint 800 wishes to use the GSM codec, it would add payload type number 3 in 801 the list of codecs. 803 For dynamic payload types, the endpoint MUST define the set of valid 804 encoding names and related parameters using the "a=rtpmap" attribute 805 line. See Section 6 of SDP [RFC4566] for details. 807 When generating the Offer, if the Offerer supports any of the 808 correlation mechanisms defined in this memo, it MUST include an 809 attribute line "a=cs-correlation" in the SDP offer. The "a=cs- 810 correlation" line contains an enumeration of the correlation 811 mechanisms supported by the Offerer, in the format of sub-fields. 813 The current list of sub-fields include "callerid", "uuie" and "dtmf" 814 and they refer to the correlation mechanisms defined in 815 Section 5.2.3.2, Section 5.2.3.3, and Section 5.2.3.4, respectively. 817 If the Offerer supports any of the correlation mechanisms defined in 818 this memo, and is willing to become the active party, the Offerer 819 MUST add the "callerid", "uuie", and/or "dtmf" sub-fields and MUST 820 specify values for those sub-fields. 822 o the international E.164 number as the value in the "callerid" sub- 823 field, 825 o the contents of the User-User information element as the value of 826 the "uuie" sub-field, and/or 828 o the DTMF tone string as the value of the "dtmf" sub-field 830 If the Offerer is only able to become the passive party in the 831 circuit-switched bearer setup, it MUST add the "callerid", "uuie" 832 and/or "dtmf" sub-fields, but MUST NOT specify values for those sub- 833 fields. 835 For example, if the Offerer is willing to use the User-User 836 Information element and DTMF digit sending mechanisms, but can only 837 become the passive party, it includes the following lines to the SDP: 839 a=cs-correlation:uuie dtmf 841 a=setup:passive 843 If, on the other hand, the Offerer is willing to use the User-User 844 Information element and the DTMF correlation mechanisms, and is able 845 to become the active or passive side, it includes to following lines 846 to the SDP: 848 a=cs-correlation:uuie:2890W284hAT452612908awudfjang908 dtmf:14D*3 850 a=setup:actpass 852 The negotiation of the value of the 'setup' attribute takes place as 853 defined in Section 4.1 of TCP-Based Media Transport in the SDP 854 [RFC4145]. 856 The Offerer states which role or roles it is willing to perform; and 857 the Answerer, taking the Offerer's willingness into consideration, 858 chooses which roles both endpoints will actually perform during the 859 circuit-switched bearer setup. 861 By 'active' endpoint, we refer to an endpoint that will establish the 862 circuit-switched bearer; and by 'passive' endpoint, we refer to an 863 endpoint that will receive a circuit-switched bearer. 865 If an Offerer does not know its international E.164 number, it MUST 866 set the 'a=setup' attribute to the value 'active'. If the Offerer 867 knows its international E.164 number, it MUST set the value to either 868 'actpass' or 'passive'. 870 Also 'holdconn' is a permissible value in the 'a=setup' attribute. 871 It indicates that the connection is not established for the time 872 being. 874 The Offerer uses the "a=connection" attribute to decide whether a new 875 circuit-switched bearer is to be established or not. For the initial 876 Offer, the Offerer MUST use value 'new'. 878 5.5.2. Generating the Answer 880 If the Offer contained a circuit-switched audio or video stream, the 881 Answerer first determines whether it is able to accept and use such 882 streams. If the Answerer is not willing to use circuit-switched 883 media for the session, it MUST construct an Answer where the port 884 number for such media stream(s) is set to zero, according to Section 885 6 of An Offer/Answer Model with the Session Description Protocol 886 (SDP) [RFC3264]. 888 If the Offer included a "-" as the payload type number, it indicates 889 that the Offerer is not willing or able to define any specific 890 payload type. Most often, a "-" is expected to be used instead of 891 the payload type when the endpoint is not aware of or not willing to 892 define the codecs which will eventually be used on the circuit- 893 switched bearer. The circuit-switched signaling protocols have their 894 own means of negotiating or indicating the codecs, therefore an 895 Answerer SHOULD accept such Offers, and SHOULD set the payload type 896 to "-" also in the Answer. 898 If the Answerer explicitly wants to specify a codec for the circuit- 899 switched media, it MAY set the respective payload numbers in the 900 sub-field in the answer. This behavior, however, is NOT 901 RECOMMENDED. 903 When receiving the Offer, the Answerer MUST determine whether it 904 becomes the active or passive party. 906 If the SDP in the Offer indicates that the Offerer is only able to 907 become the active party, the Answerer needs to determine whether it 908 is able to become the passive party. If this is not possible e.g. 909 due to the Answerer not knowing its international E.164 number, the 910 Answerer MUST reject the circuit-switched media by setting the port 911 number to zero on the Answer. If the Answerer is aware of its 912 international E.164 number, it MUST include the "a=setup" attribute 913 in the Answer and set it to value "passive" or "holdconn". 915 If the SDP in the Offer indicates that the Offerer is only able to 916 become the passive party, the Answerer MUST verify that the Offerer's 917 E.164 number is included in the "c=" line of the Offer. If the 918 number is included, the Answerer MUST include the "a=setup" attribute 919 in the Answer and set it to value "active" or "holdconn". If the 920 number is not included, call establishment is not possible, and the 921 Answerer MUST reject the circuit-switched media by setting the port 922 number to zero in the Answer. 924 If the SDP in the Offer indicates that the Offerer is able to become 925 either the active or passive party, the Answerer needs to determine 926 which role it would like to take. If the Offer includes an 927 international E.164 number in the "c=" line, the Answerer SHOULD 928 become the active party. If the Offer does not include an E.164 929 number, and if the Answerer is aware of its international E.164 930 number, it MUST become the passive party. If the Offer does not 931 include an E.164 number in the "c=" line and the Answerer is not 932 aware of its E.164 number, it MUST reject the circuit-switched media 933 by setting the port number to zero in the Answer. 935 The Answerer MUST select those correlation mechanisms from the Offer 936 it supports, and include an "a=cs-correlation" attribute line in the 937 Answer containing those mechanisms it supports. The Answerer MUST 938 NOT add any mechanisms which were not included in the offer. 940 If the Answerer becomes the active party, it MUST add parameter 941 values to the "callerid", "uuie" or "dtmf" sub-fields. 943 If the Answerer becomes the passive party, it MUST NOT add values to 944 the "callerid", "uuie" and/or "dtmf" sub-fields. 946 After generating and sending the Answer, if the Answerer became the 947 active party, it 949 o MUST extract the E.164 number from the "c=" line of the Offer and 950 MUST establish a circuit-switched bearer to that address. 952 o if the SDP Answer contained a value for the "callerid" sub-field, 953 must set the Calling Party Number Information Element to that 954 number, 956 o if the SDP Answer contained a value for the "uuie" sub-field, MUST 957 send the User-User Information element according to the rules 958 defined for the circuit-switched technology used, and set the 959 value of the Information Element to that received in the SDP 960 Offer, 962 o if the SDP Answer contained a value for the "dtmf" sub-field, MUST 963 send those DTMF digits according to the circuit-switched 964 technology used. 966 If, on the other hand, the Answerer became the passive party, it 968 o MUST be prepared to receive a circuit-switched bearer, 970 o if the Offer contained a value for the "callerid" sub-field, MUST 971 compare that value to the Calling Party Number Information Element 972 of the circuit-switched bearer, 974 o if the Offer contained a value for the "dtmf" sub-field, MUST be 975 prepared to receive and collect DTMF digits once the circuit- 976 switched bearer is set up. The Answerer MUST compare the received 977 DTMF digits to the value of the "dtmf" sub-field. If the received 978 DTMF digits match the value of the "dtmf" sub-field in the "cs- 979 correlation" attribute, the call SHOULD be treated as correlated 980 to the ongoing session. 982 o if the Offer contained a value for the "uuie" sub-field, MUST be 983 prepared to receive a User-User Information element once the 984 circuit-switched bearer is set up. The Answerer MUST compare the 985 received UUI to the value of the "uuie" sub-field. If the value 986 of the received UUI matches the value of the "uuie" sub-field, the 987 call SHOULD be treated as correlated to the ongoing session. 989 5.5.3. Offerer processing the Answer 991 When receiving the Answer, if the SDP does not contain "a=cs- 992 correlation" attribute line, the Offerer should take that as an 993 indication that the other party does not support or is not willing to 994 use the procedures defined in the document for this session, and MUST 995 revert to normal processing of SDP. 997 When receiving the Answer, the Offerer MUST first determine whether 998 it becomes the active or passive party, as described in Section 999 Section 5.3.1. 1001 If the Offerer becomes the active party, it 1003 o MUST extract the E.164 number from the "c=" line and MUST 1004 establish a circuit-switched bearer to that address. 1006 o if the SDP Answer contained a value for the "uuie" sub-field, MUST 1007 send the User-User Information element according to the rules 1008 defined for the circuit-switched technology used, and set the 1009 value of the Information Element to that received in the SDP 1010 Answer, 1012 o if the SDP Answer contained a value for the "dtmf" sub-field, MUST 1013 send those DTMF digits according to the circuit-switched 1014 technology used. 1016 If the Offerer becomes the passive party, it 1018 o MUST be prepared to receive a circuit-switched bearer, 1020 o if the Answer contained a value for the "dtmf" sub-field, MUST be 1021 prepared to receive and collect DTMF digits once the circuit- 1022 switched bearer is set up. The Offerer SHOULD compare the 1023 received DTMF digits to the value of the "dtmf" sub-field. If the 1024 received DTMF digits match the value of the "dtmf" sub-field in 1025 the "cs-correlation" attribute, the call SHOULD be treated as 1026 correlated to the ongoing session. 1028 o if the Answer contained a value for the "uuie" sub-field, MUST be 1029 prepared to receive a User-User Information element once the 1030 circuit-switched bearer is set up. The Offerer SHOULD compare the 1031 received UUI to the value of the "uuie" sub-field. If the value 1032 of the received UUI matches the value of the "uuie" sub-field, the 1033 call SHOULD be treated as correlated to the ongoing session. 1035 5.5.4. Modifying the session 1037 If, at a later time, one of the parties wishes to modify the session, 1038 e.g., by adding new media stream, or by changing properties used on 1039 an existing stream, it may do so via the mechanisms defined for An 1040 Offer/Answer Model with SDP [RFC3264]. 1042 If there is an existing circuit-switched bearer between the 1043 endpoints, and the Offerer wants to reuse that the Offerer MUST set 1044 the value of the "a=connection" attribute to 'existing'. 1046 If either party removes the circuit-switched media from the session 1047 (by setting the port number to zero), it MUST terminate the circuit- 1048 switched bearer using whatever mechanism is appropriate for the 1049 technology in question. 1051 If either party wishes to drop and reestablish an existing call, that 1052 party MUST first remove the circuit-switched media from the session 1053 by setting the port number to zero, and then use another Offer/Answer 1054 exchange where it MUST set the "a=connection" attribute to 'new'". 1055 If the media types are different (for example, a different codec will 1056 be used for the circuit-switched bearer), the media descriptions for 1057 terminating the existing bearer and the new bearer can be in the same 1058 Offer. 1060 5.6. Formal Syntax 1062 The following is the formal Augmented Backus-Naur Form (ABNF) 1063 [RFC5234] syntax that supports the extensions defined in this 1064 specification. The syntax is built above the SDP [RFC4566] grammar. 1065 Implementations according to this specification MUST be compliant 1066 with this syntax. 1068 Figure 2 shows the formal syntax of the extensions defined in this 1069 memo. 1071 ; extension to the connection field originally specified 1072 ; in RFC 4566 1074 connection-field = [%x63 "=" nettype SP addrtype SP 1075 connection-address CRLF] 1076 ;nettype and addrtype are defined in RFC 4566 1078 connection-address /= e164-address / "-" 1079 e164-address = "+" 1*15DIGIT 1080 ; DIGIT is specified in RFC 5234 1082 ;subrules for correlation attribute 1083 attribute /= cs-correlation-attr 1084 ; attribute defined in RFC 4566 1085 cs-correlation-attr= "cs-correlation:" corr-mechanisms 1086 corr-mechanisms = corr-mech *(SP corr-mech) 1087 corr-mech = caller-id-mech / uuie-mech / dtmf-mech / ext-mech 1088 caller-id-mech = "callerid" [":" caller-id-value] 1089 caller-id-value = "+" 1*15DIGIT 1090 uuie-mech = "uuie" [":" uuie-value] 1091 uuie-value = 1*32(ALPHA/DIGIT) 1092 dtmf-mech = "dtmf" [":" dtmf-value] 1093 dtmf-value = 1*32(DIGIT / %x41-44 / %x23 / %x2A ) 1094 ;0-9, A-D, '#' and '*' 1095 ext-mech = ext-mech-name[":" ext-mech-value] 1096 ext-mech-name = token 1097 ext-mech-value = token 1098 ; token is specified in RFC4566 1100 Figure 2: Syntax of the SDP extensions 1102 6. Example 1104 Alice Bob 1105 | | 1106 | (1) SDP Offer (PSTN audio) | 1107 |--------------------------------->| 1108 | | 1109 | (2) SDP Answer (PSTN audio) | 1110 |<---------------------------------| 1111 | | 1112 | PSTN call setup | 1113 |<---------------------------------| 1114 | | 1115 |<==== media over PSTN bearer ====>| 1116 | | 1118 Figure 3: Basic flow 1120 Figure 3 shows a basic example that describes a single audio media 1121 stream over a circuit-switched bearer. Alice generates a SDP Offer 1122 which is show in Figure 4. The Offer describes a PSTN circuit- 1123 switched bearer in the "m=" and "c=" line where it also indicates its 1124 international E.164 number format. Additionally, Alice expresses 1125 that she can initiate the circuit-switched bearer or be the recipient 1126 of it in the "a=setup" attribute line. The SDP Offer also includes a 1127 correlation identifiers that this endpoint will be inserting the 1128 Calling Party Number and/or User-User Information Element of the PSTN 1129 call setup if eventually this endpoint initiates the PSTN call. 1131 v=0 1132 o=jdoe 2890844526 2890842807 IN IP4 192.0.2.5 1133 s= 1134 t=0 0 1135 m=audio 9 PSTN - 1136 c=PSTN E164 +35891234567 1137 a=setup:actpass 1138 a=connection:new 1139 a=cs-correlation:callerid:+15551234 uuie:2890W284hAT452612908awudfjang908 1141 Figure 4: SDP offer (1) 1143 Bob generates a SDP Answer (Figure 5), describing a PSTN audio media 1144 on port 9 without information on the media sub-type on the "m=" line. 1145 The "c=" line contains Bob's international E.164 number. In the 1146 "a=setup" line Bob indicates that he is willing to become the active 1147 endpoint when establishing the PSTN call, and he also includes the 1148 "a=cs-correlation" attribute line containing the values he is going 1149 to include in the Calling Party Number and User-User IE of the PSTN 1150 call establishment. 1152 v=0 1153 o=- 2890973824 2890987289 IN IP4 192.0.2.7 1154 s= 1155 t=0 0 1156 m=audio 9 PSTN - 1157 c=PSTN E164 +35897654321 1158 a=setup:active 1159 a=connection:new 1160 a=cs-correlation:callerid:+15554321 uuie:2127W49uThi455916adjfhtow9619361 1162 Figure 5: SDP Answer with circuit-switched media 1164 When Alice receives the Answer, she examines that Bob is willing to 1165 become the active endpoint when setting up the PSTN call. Alice 1166 temporarily stores Bob's E.164 number and the User-User IE value of 1167 the "cs-correlation" attribute, and waits for a circuit-switched 1168 bearer establishment. 1170 Bob initiates a circuit-switched bearer using whatever circuit- 1171 switched technology is available for him. The called party number is 1172 set to Alice's number, and calling party number is set to Bob's own 1173 number. Bob also sets the User-User Information Element value to the 1174 on contained in the SDP Answer. 1176 When Alice receives the circuit-switched bearer establishment, she 1177 examines the UUIE and the calling party number, and by comparing 1178 those received during O/A exchange determines that the call is 1179 related to the SDP session. 1181 It may also be that neither the UUIE nor the calling party number is 1182 received by the called party, or the format of the calling party 1183 number is changed by the PSTN. Implementations may still accept such 1184 call establishment attempts as being related to the session that was 1185 established in the IP network. As it cannot be guaranteed that the 1186 values used for correlation are always passed intact through the 1187 network, they should be treated as additional hints that the circuit- 1188 switched bearer is actually related to the session. 1190 7. Security Considerations 1192 This document provides an extension on top of RFC 4566 [RFC4566], and 1193 RFC 3264 [RFC3264]. As such, the security considerations of those 1194 documents apply. 1196 This memo provides mechanisms to agree on a correlation identifier or 1197 identifiers that are used to evaluate whether an incoming circuit- 1198 switched bearer is related to an ongoing session in the IP domain. 1199 If an attacker replicates the correlation identifer and establishes a 1200 call within the time window the receiving endpoint is expecting a 1201 call, the attacker may be able to hijack the circuit-switched bearer. 1202 These types of attacks are not specific to the mechanisms presented 1203 in this memo. For example, caller ID spoofing is a well known attack 1204 in the PSTN. Users are advised to use the same caution before 1205 revealing sensitive information as they would on any other phone 1206 call. Furthermore, users are advised that mechanisms that may be in 1207 use in the IP domain for securing the media, like Secure RTP (SRTP) 1208 [RFC3711], are not available in the CS domain. 1210 8. IANA Considerations 1212 This document instructs IANA to register a number of SDP tokens 1213 according to the following data. 1215 8.1. Registration of new cs-correlation SDP attribute 1217 Contact: Miguel Garcia 1219 Attribute name: cs-correlation 1221 Long-form attribute name: PSTN Correlation Identifier 1223 Type of attribute: media level only 1225 This attribute is subject to the charset attribute 1227 Description: This attribute provides the Correlation Identifier 1228 used in PSTN signaling 1230 Specification: RFC XXXX 1232 The IANA is requested the create a subregistry for 'cs-correlation' 1233 attribute under the Session Description Protocol (SDP) Parameters 1234 registry. The initial values for the subregistry are presented in 1235 the following, and IANA is requested to add them into its database: 1237 Value of 'cs-correlation' attribute Reference Description 1238 ----------------------------------- --------- ----------- callerid 1239 RFC XXXX Caller ID uuie RFC XXXX User-User Information Element dtmf 1240 RFC XXXX Dual-tone Multifrequency 1242 Note for the RFC Editor: 'RFC XXXX' above should be replaced by a 1243 reference to the RFC number of this draft. 1245 As per the terminology in [RFC2434], the registration policy for new 1246 values of 'cs-correlation' parameter is 'Specification Required'. 1248 8.2. Registration of a new "nettype" value 1250 This memo provides instructions to IANA to register a new "nettype" 1251 in the Session Description Protocol Parameters registry [1]. The 1252 registration data, according to RFC 4566 [RFC4566] follows. 1254 Type SDP Name Reference 1255 ---- ------------------ --------- 1256 nettype PSTN [RFCxxxx] 1258 8.3. Registration of new "addrtype" values 1260 This memo provides instructions to IANA to register a new "addrtype" 1261 in the Session Description Protocol Parameters registry [1]. The 1262 registration data, according to RFC 4566 [RFC4566] follows. 1264 Type SDP Name Reference 1265 ---- ------------------ --------- 1266 addrtype E164 [RFCxxxx] 1267 - [RFCxxxx] 1269 8.4. Registration of a new "proto" value 1271 This memo provides instructions to IANA to register a new "proto" in 1272 the Session Description Protocol Parameters registry [1]. The 1273 registration data, according to RFC 4566 [RFC4566] follows. 1275 Type SDP Name Reference 1276 -------------- --------------------------- --------- 1277 proto PSTN [RFCxxxx] 1279 9. Acknowledgments 1281 The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas 1282 Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan 1283 Rosenberg, Ingemar Johansson, Christer Holmberg, and Alf Heidermark 1284 for providing their insight and comments on this document. 1286 10. References 1287 10.1. Normative References 1289 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1290 Requirement Levels", BCP 14, RFC 2119, March 1997. 1292 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1293 IANA Considerations Section in RFCs", BCP 26, RFC 2434, 1294 October 1998. 1296 [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the 1297 Session Description Protocol (SDP) for ATM Bearer 1298 Connections", RFC 3108, May 2001. 1300 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1301 with Session Description Protocol (SDP)", RFC 3264, 1302 June 2002. 1304 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 1305 the Session Description Protocol (SDP)", RFC 4145, 1306 September 2005. 1308 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1309 Description Protocol", RFC 4566, July 2006. 1311 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 1312 Specifications: ABNF", STD 68, RFC 5234, January 2008. 1314 [RFC5939] Andreasen, F., "Session Description Protocol (SDP) 1315 Capability Negotiation", RFC 5939, September 2010. 1317 10.2. Informative References 1319 [ITU.E164.1991] 1320 International Telecommunications Union, "The International 1321 Public Telecommunication Numbering Plan", ITU- 1322 T Recommendation E.164, 1991. 1324 [ITU.Q931.1998] 1325 "Digital Subscriber Signalling System No. 1 (DSS 1) - ISDN 1326 User - Network Interface Layer 3 Specification for Basic 1327 Call Control", ISO Standard 9594-1, May 1998. 1329 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1330 A., Peterson, J., Sparks, R., Handley, M., and E. 1331 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1332 June 2002. 1334 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 1336 Jacobson, "RTP: A Transport Protocol for Real-Time 1337 Applications", STD 64, RFC 3550, July 2003. 1339 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1340 Video Conferences with Minimal Control", STD 65, RFC 3551, 1341 July 2003. 1343 [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. 1344 Norrman, "The Secure Real-time Transport Protocol (SRTP)", 1345 RFC 3711, March 2004. 1347 [RFC4975] Campbell, B., Mahy, R., and C. Jennings, "The Message 1348 Session Relay Protocol (MSRP)", RFC 4975, September 2007. 1350 [TS.24.008] 1351 3GPP, "Mobile radio interface Layer 3 specification; Core 1352 network protocols; Stage 3", 3GPP TS 24.008 3.20.0, 1353 December 2005. 1355 URIs 1357 [1] 1359 Authors' Addresses 1361 Miguel A. Garcia-Martin 1362 Ericsson 1363 Calle Via de los Poblados 13 1364 Madrid, ES 28033 1365 Spain 1367 Email: miguel.a.garcia@ericsson.com 1369 Simo Veikkolainen 1370 Nokia 1371 P.O. Box 407 1372 NOKIA GROUP, FI 00045 1373 Finland 1375 Phone: +358 50 486 4463 1376 Email: simo.veikkolainen@nokia.com