idnits 2.17.1 draft-ietf-sipcore-rfc4244bis-callflows-03.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 11 instances of too long lines in the document, the longest one being 40 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 == Line 139 has weird spacing: '... Alice exam...' == Line 408 has weird spacing: '... Alice atla...' == Line 556 has weird spacing: '... Alice atla...' -- The document date (Mar 2013) is 4059 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC3326' is defined on line 1928, but no explicit reference was found in the text == Unused Reference: 'RFC3323' is defined on line 1932, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 1935, but no explicit reference was found in the text == Unused Reference: 'RFC5246' is defined on line 1938, but no explicit reference was found in the text == Unused Reference: 'RFC4244' is defined on line 1941, but no explicit reference was found in the text == Unused Reference: 'RFC5630' is defined on line 1949, but no explicit reference was found in the text == Unused Reference: 'RFC3969' is defined on line 1974, but no explicit reference was found in the text -- Obsolete informational reference (is this intentional?): RFC 5246 (Obsoleted by RFC 8446) -- Obsolete informational reference (is this intentional?): RFC 4244 (Obsoleted by RFC 7044) -- Obsolete informational reference (is this intentional?): RFC 3761 (Obsoleted by RFC 6116, RFC 6117) == Outdated reference: A later version (-12) exists of draft-ietf-sipcore-rfc4244bis-11 Summary: 1 error (**), 0 flaws (~~), 12 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPCORE M. Barnes 3 Internet-Draft Polycom 4 Intended status: Informational F. Audet 5 Expires: September 2, 2013 Skype 6 S. Schubert 7 NTT 8 H. van Elburg 9 Detecon International Gmbh 10 C. Holmberg 11 Ericsson 12 Mar 2013 14 Session Initiation Protocol (SIP) History-Info Header Call Flow Examples 15 draft-ietf-sipcore-rfc4244bis-callflows-03.txt 17 Abstract 19 This document describes use cases and documents call flows which 20 require the History-Info header field to capture the Request-URIs as 21 a Session Initiation Protocol (SIP) Request is retargeted. The use 22 cases are described along with the corresponding call flow diagrams 23 and messaging details. 25 Status of this Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on September 2, 2013. 42 Copyright Notice 44 Copyright (c) 2013 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 61 3. Detailed call flows . . . . . . . . . . . . . . . . . . . . . 3 62 3.1. Sequentially Forking (History-Info in Response) . . . . . 3 63 3.2. History-Info with Privacy Header Field . . . . . . . . . . 11 64 3.3. Privacy for a Specific History-Info Entry . . . . . . . . 14 65 3.4. Automatic Call Distribution . . . . . . . . . . . . . . . 18 66 3.5. Determining the Alias used. . . . . . . . . . . . . . . . 23 67 3.6. PBX Voicemail Example . . . . . . . . . . . . . . . . . . 26 68 3.7. Consumer Voicemail Example . . . . . . . . . . . . . . . . 31 69 3.8. GRUU . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 70 3.9. Limited Use Address . . . . . . . . . . . . . . . . . . . 38 71 3.10. Service Invocation . . . . . . . . . . . . . . . . . . . . 41 72 3.11. Toll Free Number . . . . . . . . . . . . . . . . . . . . . 41 73 4. Security Considerations . . . . . . . . . . . . . . . . . . . 44 74 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 75 5.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 44 76 6. Informative References . . . . . . . . . . . . . . . . . . . . 44 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45 79 1. Overview 81 Many services that use SIP require the ability to determine why and 82 how the call arrived at a specific application. The use cases 83 provided in this document illustrate the use of the History-Info 84 header [I-D.ietf-sipcore-rfc4244bis] for example applications and 85 common scenarios. The optional "rc" and "mp" header field parameters 86 defined in [I-D.ietf-sipcore-rfc4244bis] are required for several of 87 the use cases. Descriptions of the example use cases, call flow 88 diagrams and messaging details are provided. 90 2. Conventions and Terminology 92 The term "retarget" is used as defined in 93 [I-D.ietf-sipcore-rfc4244bis]. The terms "location service", 94 "redirect" and "AOR" are used consistent with the terminology in 95 [RFC3261]. 97 3. Detailed call flows 99 The scenarios in this section provide sample use cases for the 100 History-Info header for informational purposes only. They are not 101 intended to be normative. In many cases, only the relevant messaging 102 details are included in the body of the call flow. 104 3.1. Sequentially Forking (History-Info in Response) 106 This scenario highlights an example where the History-Info in the 107 response is useful to an application or user that originated the 108 request. 110 Alice sends a call to Bob via sip:example.com. The proxy sip: 111 example.com sequentially tries Bob on a SIP UA that has bound a 112 contact with the sip:bob@example.com AOR, and then several alternate 113 addresses (Office and Home) unsuccessfully before sending a response 114 to Alice. The hi-entry containing the initial contact is the hi- 115 entry just prior to the first hi-entry tagged with an "rc" header 116 field parameter. In this example, the Office and Home are not the 117 same AOR as sip:bob@example.com, but rather different AORs that have 118 been configured as alternate addresses for Bob in the proxy. In 119 other words, Office and *Home* are not bound through SIP Registration 120 with Bob's AOR. This type of arrangement is common for example when 121 a "routing" rule to a PSTN number is manually configured in a proxy. 122 These hi-entries are identified by the index contained in the hi- 123 target-param "mp" header field parameter in the hi-entries. 125 This scenario illustrates that by providing the History-Info to 126 Alice, the end-user or an application at Alice could make a decision 127 on how best to attempt finding Bob without sending multiple requests 128 to the same destination. Upon receipt of the response containing the 129 History-Info entries, the Request URIs for the History-Info entries 130 tagged with "mp" header field parameter are extracted. Those 131 Request-URIs can be compared to other URIs (if any) that might be 132 attempted in order to establish the session with Bob. This results in 133 avoiding the sending of another INVITE to Bob's home phone. Without 134 this mechanism, Alice might well attempt to reach Bob at his office 135 phone, which would then retarget the request to Bob's home phone. 136 When that attempt failed, then Alice might attempt to reach Bob 137 directly at his home phone, unknowingly for a third time. 139 Alice example.com Bob Office Home 140 | | | | | 141 | INVITE F1 | | | | 142 |----------->| INVITE F2 | | | 143 | |----------------->| | | 144 | 100 Trying F3 | | | 145 |<-----------| 302 Move Temporarily F4 | | 146 | |<-----------------| | | 147 | | ACK F5 | | | 148 | |----------------->| | | 149 | | INVITE F6 | | 150 | |-------------------------->| | 151 | | 180 Ringing F7 | | 152 | |<--------------------------| | 153 | 180 Ringing F8 | | 154 |<-----------| retransmit INVITE | | 155 | |-------------------------->| | 156 | | ( timeout ) | | 157 | | INVITE F9 | 158 | |----------------------------------->| 159 | | 100 Trying F10 | 160 | |<-----------------------------------| 161 | | 486 Busy Here F11 | 162 | |<-----------------------------------| 163 | 486 Busy Here F12 | 164 |<-----------| ACK F13 | 165 | |----------------------------------->| 166 | ACK F14 | | 167 |----------->| | 169 Figure 1: Figure 1: Example with Sequential Forking 171 Message Details 173 F1 INVITE alice -> example.com 175 INVITE sip:bob@example.com SIP/2.0 176 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 177 Max-Forward: 70 178 From: Alice ;tag=sr3dds 179 To: Bob 180 Supported: histinfo 181 Call-Id: 12345600@example.com 182 CSeq: 1 INVITE 183 History-Info: ;index=1 184 Contact: Alice 185 Content-Type: application/sdp 186 Content-Length: 187 189 F2 INVITE example.com -> Bob 191 INVITE sip:bob@192.0.2.4 SIP/2.0 192 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 193 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 194 Max-Forward: 69 195 From: Alice ;tag=sr3dds 196 To: Bob 197 Supported: histinfo 198 Call-Id: 12345600@example.com 199 CSeq: 1 INVITE 200 Record-Route: 201 History-Info: ;index=1 202 History-Info: ;index=1.1;rc=1 203 Contact: Alice 204 Content-Type: application/sdp 205 Content-Length: 206 207 F3 100 Trying example.com -> alice 209 SIP/2.0 100 Trying 210 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 211 From: Alice ;tag=sr3dds 212 To: Bob 213 Supported: histinfo 214 Call-Id: 12345600@example.com 215 CSeq: 1 INVITE 216 Content-Length: 0 218 F4 302 Moved Temporarily Bob -> example.com 220 SIP/2.0 302 Moved Temporarily 221 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 222 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 223 From: Alice ;tag=sr3dds 224 To: Bob ;tag=es43sd 225 Supported: histinfo 226 Call-Id: 12345600@example.com 227 CSeq: 1 INVITE 228 History-Info: ;index=1 229 History-Info: ;index=1.1;rc=1 230 Contact: ;mp=1 231 Content-Length: 0 233 F5 ACK example.com -> Bob 235 ACK sip:bob@example.com SIP/2.0 236 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 237 Max-Forward: 70 238 From: Alice ;tag=sr3dds 239 To: Bob ;tag=es43sd 240 Call-Id: 12345600@example.com 241 CSeq: 1 ACK 242 Content-Length: 0 243 F6 INVITE example.com -> office 245 INVITE sip:office@192.0.2.5 SIP/2.0 246 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 247 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 248 Max-Forward: 69 249 From: Alice ;tag=sr3dds 250 To: Bob 251 Supported: histinfo 252 Call-Id: 12345600@example.com 253 Record-Route: 254 History-Info: ;index=1 255 History-Info: ;\ 256 index=1.1;rc=1 257 History-Info: ;index=1.2;mp=1 258 History-Info: ;index=1.2.1;rc=1.2 259 CSeq: 1 INVITE 260 Contact: Alice 261 Content-Type: application/sdp 262 Content-Length: 263 265 F7 180 Ringing office -> example.com 267 SIP/2.0 180 Ringing 268 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 269 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 270 From: Alice ;tag=sr3dds 271 To: Bob ;tag=53rdds 272 Supported: histinfo 273 Call-ID: 12345600@example.com 274 Record-Route: 275 History-Info: ;index=1 276 History-Info: ;\ 277 index=1.1;rc=1 278 History-Info: ;index=1.2;mp=1 279 History-Info: ;index=1.2.1;rc=1.2 280 CSeq: 1 INVITE 281 Contact: Office 282 Content-Length: 0 283 F8 180 Ringing example.com -> alice 285 SIP/2.0 180 Ringing 286 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 287 From: Alice ;tag=sr3dds 288 To: Bob ;tag=53rdds 289 Supported: histinfo 290 Call-Id: 12345600@example.com 291 Record-Route: 292 History-Info: ;index=1 293 History-Info: ;\ 294 index=1.1;rc=1 295 History-Info: ;index=1.2;mp=1 296 History-Info: ;\ 297 index=1.2.1;rc=1.2 298 CSeq: 1 INVITE 299 Contact: Office 300 Content-Length: 0 302 F9 INVITE example.com -> home 304 INVITE sip:home@192.0.2.6 SIP/2.0 305 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 306 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 307 Max-Forward: 69 308 From: Alice ;tag=sr3dds 309 To: Bob 310 Supported: histinfo 311 Call-Id: 12345600@example.com 312 Record-Route: 313 History-Info: ;index=1 314 History-Info: ;\ 315 index=1.1;rc=1 316 History-Info: ;index=1.2;mp=1 317 History-Info: ;\ 318 index=1.2.1;index=1.2.1;rc=1.2 319 History-Info: ;index=1.3;mp=1 320 History-Info: ;index=1.3.1;rc=1.3 321 CSeq: 1 INVITE 322 Contact: Alice 323 Content-Type: application/sdp 324 Content-Length: 325 326 F10 100 Trying home -> example.com 328 SIP/2.0 100 Trying 329 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 330 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 331 From: Alice ;tag=sr3dds 332 To: Bob 333 Call-Id: 12345600@example.com 334 CSeq: 1 INVITE 335 Content-Length: 0 337 F11 486 Busy Here home -> example.com 339 SIP/2.0 486 Busy Here 340 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 341 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 342 From: Alice ;tag=sr3dds 343 To: Bob ;tag=55rdds 344 Call-Id: 12345600@example.com 345 History-Info: ;index=1 346 History-Info: ;\ 347 index=1.1;rc=1 348 History-Info: ;index=1.2;mp=1 349 History-Info: ;\ 350 index=1.2.1;index=1.2.1;rc=1.2 351 History-Info: ;index=1.3;mp=1 352 History-Info: ;index=1.3.1;rc=1.3 353 CSeq: 1 INVITE 354 Content-Length: 0 355 F12 486 Busy Here example.com -> alice 357 SIP/2.0 486 Busy Here 358 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 359 From: Alice ;tag=sr3dds 360 To: Bob ;tag=55rdds 361 Call-Id: 12345600@example.com 362 History-Info: ;index=1 363 History-Info: ;\ 364 index=1.1;rc=1 365 History-Info: ;\ 366 index=1.2;mp=1 367 History-Info: ;\ 368 index=1.2.1;rc=1.2 369 History-Info: ;index=1.3;mp=1 370 History-Info: ;index=1.3.1;rc=1.3 371 CSeq: 1 INVITE 372 Content-Length: 0 374 F13 ACK example.com -> home 376 ACK sip:home@192.0.2.6 SIP/2.0 377 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 378 Max-Forward: 70 379 From: Alice ;tag=sr3dds 380 To: Bob ;tag=55rdds 381 Call-Id: 12345600@example.com 382 CSeq: 1 ACK 383 Content-Length: 0 385 F14 ACK alice -> example.com 387 ACK sip:bob@example.com SIP/2.0 388 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 389 Max-Forward: 70 390 From: Alice ;tag=sr3dds 391 To: Bob ;tag=55rdds 392 Call-Id: 12345600@example.com 393 Route: 394 CSeq: 1 ACK 395 Content-Length: 0 397 3.2. History-Info with Privacy Header Field 399 This example provides a basic call scenario without forking. Alice 400 has indicated that she wants Privacy associated with the History-Info 401 header field entries. In addition, sip:biloxi.example.com adds 402 Privacy header fields indicating that the History-Info header field 403 information is anonymized outside the biloxi.example.com domain. 404 Note, that if the atlanta.example.com proxy had added privacy header 405 fields to all its hi-entries, then all the hi-entries in the response 406 would be anonymous. 408 Alice atlanta.example.com biloxi.example.com Bob 409 | | | | 410 | INVITE F1 | | | 411 |--------------->| | | 412 | | | | 413 | | INVITE F2 | | 414 | |--------------->| | 415 | | | | 416 | | | INVITE F3 | 417 | | |--------------->| 418 | | | | 419 | | | 200 F4 | 420 | | |<---------------| 421 | | | | 422 | | 200 F5 | | 423 | |<---------------| | 424 | | | | 425 | 200 F6 | | | 426 |<---------------| | | 427 | | | | 428 | | ACK | | 429 |------------------------------------------------->| 430 | | | | 432 Figure 2: Figure 2: Example with Privacy Header Fields 434 Message Details 436 F1 INVITE alice -> atlanta.example.com 438 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 439 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 440 Max-Forward: 70 441 From: Alice ;tag=22 442 To: Bob 443 Supported: histinfo 444 Privacy: history 445 Call-Id: 12345600@atlanta.example.com 446 CSeq: 1 INVITE 447 History-Info: ;index=1 448 Contact: Alice 449 Content-Type: application/sdp 450 Content-Length: 451 453 F2 INVITE atlanta.example.com -> biloxi.example.com 455 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 456 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 457 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 458 Max-Forward: 69 459 From: Alice ;tag=22 460 To: Bob 461 Supported: histinfo 462 Call-Id: 12345600@atlanta.example.com 463 CSeq: 1 INVITE 464 History-Info: ;index=1 465 History-Info: ;index=1.1 466 Contact: Alice 467 Content-Type: application/sdp 468 Content-Length: 469 470 F3 INVITE biloxi.example.com -> Bob 472 INVITE sip:bob@192.0.1.11 SIP/2.0 473 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32 474 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 475 received=192.0.2.3 476 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 477 Max-Forward: 68 478 From: Alice ;tag=22 479 To: Bob 480 Supported: histinfo 481 Call-Id: 12345600@atlanta.example.com 482 CSeq: 1 INVITE 483 History-Info: ;index=1 484 History-Info: ;index=1.1 485 History-Info: ;index=1.1.1;rc=1.1 486 Contact: Alice 487 Content-Type: application/sdp 488 Content-Length: 489 491 F4 200 OK Bob -> biloxi.example.com 493 SIP/2.0 200 OK 494 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 495 received=192.0.2.101 496 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 497 received=192.0.2.3 498 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 499 From: Alice ;tag=22 500 To: Bob ;tag=33 501 Supported: histinfo 502 Call-Id: 12345600@atlanta.example.com 503 CSeq: 1 INVITE 504 History-Info: ;index=1 505 History-Info: ;index=1.1 506 History-Info: ;index=1.1.1;rc=1.1 507 Contact: Bob 508 Content-Type: application/sdp 509 Content-Length: 510 511 F5 200 OK biloxi.example.com -> atlanta.example.com 513 SIP/2.0 200 OK 514 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 515 received=192.0.2.101 516 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 517 From: Alice ;tag=22 518 To: Bob ;tag=33 519 Supported: histinfo 520 Call-Id: 12345600@atlanta.example.com 521 CSeq: 1 INVITE 522 History-Info: ;index=1 523 History-Info: ;index=1.1 524 History-Info: ;index=1.1.1;rc=1.1 525 Contact: Bob 526 Content-Type: application/sdp 527 Content-Length: 528 530 F6 200 OK atlanta.example.com -> Alice 532 SIP/2.0 200 OK 533 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 534 From: Alice ;tag=22 535 To: Bob ;tag=33 536 Supported: histinfo 537 Call-Id: 12345600@atlanta.example.com 538 CSeq: 1 INVITE 539 History-Info: ;index=1 540 History-Info: ;index=1.1 541 History-Info: ;index=1.1.1;rc=1.1 542 Contact: Bob 543 Content-Type: application/sdp 544 Content-Length: 545 547 3.3. Privacy for a Specific History-Info Entry 549 This example provides a basic call scenario similar to Section 3.2, 550 however, due to local policy at sip:biloxi.example.com, only the 551 final hi-entry in the History-Info, which is Bob's local URI, 552 contains a privacy header field with a priv-value of "history", thus 553 providing Alice with some information about the history of the 554 request, but anonymizing Bob's local URI. 556 Alice atlanta.example.com biloxi.example.com Bob 557 | | | | 558 | INVITE F1 | | | 559 |--------------->| | | 560 | | | | 561 | | INVITE F2 | | 562 | |--------------->| | 563 | | | | 564 | | | INVITE F3 | 565 | | |--------------->| 566 | | | | 567 | | | 200 F4 | 568 | | |<---------------| 569 | | | | 570 | | 200 F5 | | 571 | |<---------------| | 572 | | | | 573 | 200 F6 | | | 574 |<---------------| | | 575 | | | | 576 | | ACK | | 577 |------------------------------------------------->| 578 | | | | 580 Figure 3: Figure 3: Example with Privacy Header Field for Specific 581 URI 583 Message Details 585 F1 INVITE alice -> atlanta.example.com 587 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 588 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 589 Max-Forward: 70 590 From: Alice ;tag=22 591 To: Bob 592 Supported: histinfo 593 Call-Id: 12345600@atlanta.example.com 594 CSeq: 1 INVITE 595 History-Info: ;index=1 596 Contact: Alice 597 Content-Type: application/sdp 598 Content-Length: 599 600 F2 INVITE atlanta.example.com -> biloxi.example.com 602 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 603 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 604 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 605 Max-Forward: 69 606 From: Alice ;tag=22 607 To: Bob 608 Supported: histinfo 609 Call-Id: 12345600@atlanta.example.com 610 CSeq: 1 INVITE 611 History-Info: ;index=1 612 History-Info: ;index=1.1;np=1 613 Contact: Alice 614 Content-Type: application/sdp 615 Content-Length: 616 618 F3 INVITE biloxi.example.com -> Bob 620 INVITE sip:bob@192.0.1.11 SIP/2.0 621 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset 622 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 623 received=192.0.2.101 624 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 625 Max-Forward: 68 626 From: Alice ;tag=22 627 To: Bob 628 Supported: histinfo 629 Call-Id: 12345600@atlanta.example.com 630 CSeq: 1 INVITE 631 History-Info: ;index=1 632 History-Info: ;index=1.1;np=1 633 History-Info: ;index=1.1.1;rc=1.1 634 Contact: Alice 635 Content-Type: application/sdp 636 Content-Length: 637 638 F4 200 OK Bob -> biloxi.example.com 640 SIP/2.0 200 OK 641 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\ 642 received=192.0.2.5 643 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 644 received=192.0.2.101 645 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 646 From: Alice ;tag=22 647 To: Bob ;tag=33 648 Supported: histinfo 649 Call-Id: 12345600@atlanta.example.com 650 CSeq: 1 INVITE 651 History-Info: ;index=1 652 History-Info: ;index=1.1;np=1 653 History-Info: ;index=1.1.1;rc=1.1 654 Contact: Bob 655 Content-Type: application/sdp 656 Content-Length: 657 659 F5 200 OK biloxi.example.com -> atlanta.example.com 661 SIP/2.0 200 OK 662 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 663 received=192.0.2.101 664 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 665 From: Alice ;tag=22 666 To: Bob ;tag=33 667 Supported: histinfo 668 Call-Id: 12345600@atlanta.example.com 669 CSeq: 1 INVITE 670 History-Info: ;index=1 671 History-Info: ;index=1.1;np=1 672 History-Info: ;index=1.1.1;rc=1.1 673 Contact: Bob 674 Content-Type: application/sdp 675 Content-Length: 676 677 F6 200 OK atlanta.example.com -> Alice 679 SIP/2.0 200 OK 680 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 681 From: Alice ;tag=22 682 To: Bob ;tag=33 683 Supported: histinfo 684 Call-Id: 12345600@atlanta.example.com 685 CSeq: 1 INVITE 686 History-Info: ;index=1 687 History-Info: ;index=1.1;np=1 688 History-Info: ;index=1.1.1;rc=1.1 689 Contact: Bob 690 Content-Type: application/sdp 691 Content-Length: 692 694 3.4. Automatic Call Distribution 696 This scenario highlights an example of an Automatic Call Distribution 697 service, where the agents are divided into groups based upon the type 698 of customers they handle. In this example, the Gold customers are 699 given higher priority than Silver customers, so a Gold call would get 700 serviced even if all the agents servicing the Gold group were busy, 701 by retargeting the request to the Silver Group for delivery to an 702 agent. Upon receipt of the call at the agent assigned to handle the 703 incoming call, based upon the History-Info header in the message, the 704 application at the agent can provide an indication that this is a 705 Gold call by extracting the hi-entry associated with the incoming 706 request which is determined by locating the hi-entry whose index is 707 reflected in the first hi-entry with an hi-target of "mp". In the 708 example this would be the hi-entry referenced by the value of the 709 first "mp" header field parameter -i.e., the hi-entry containing an 710 index of "1". An application can also determine how many groups from 711 which the call may have overflowed before reaching the agent, etc. 712 and present the information to the agent so that the call can be 713 handled appropriately by the agent - i.e., "I'm so sorry for the 714 delay, blah, blah, blah..." 716 For scenarios whereby calls might overflow from the Silver to the 717 Gold, clearly the alternate group identification, internal routing, 718 or actual agent that handles the call should not be sent to UA1. 719 Thus, for this scenario, one would expect that the Proxy would not 720 support the sending of the History-Info in the response, even if 721 requested by Alice or the proxy could anonymize the Silver related 722 hi-entries by adding privacy in the Silver hi-entries. 724 As with the other examples, this is not a complete prescription of 725 how one would do this type of service but an example of a subset of 726 processing that might be associated with such a service. In 727 addition, this example is not addressing any aspects of Agent 728 availability resulting in the call being sent to an agent in another 729 group, which might also be done via a SIP interface. 731 Alice example.com Gold Silver Agent 733 | | | | | 734 | INVITE F1 | | | | 735 |------------->| | | | 736 | | | | | 737 | | INVITE F2 | | | 738 | |------------->| | | 739 | | | | | 740 | | 302 Moved Temporarily F3 | | 741 | |<-------------| | | 742 | | | | | 743 | | ACK | | | 744 | |------------->| | | 745 | | | | | 746 | | INVITE F4 | | | 747 | |--------------------------->| | 748 | | | | | 749 | | | | INVITE F5 | 750 | | | |----------->| 751 | | | | | 752 | | | | 200 OK F6 | 753 | | | |<-----------| 754 | | | | | 755 | | 200 OK F7 | | 756 | |<---------------------------| | 757 | | | | | 758 | 200 OK F8 | | | | 759 |<-------------| | | | 760 | | | | | 761 | ACK F9 | 762 |------------------------------------------------------->| 764 F1 INVITE Alice -> Example.com 766 INVITE sip:Gold@example.com SIP/2.0 767 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 768 Max-Forward: 70 769 From: Alice ;tag=1235 770 To: Gold Member Assistance 771 Supported: histinfo 772 Call-Id: 12345600@example.com 773 CSeq: 1 INVITE 774 History-Info: ;index=1 775 Contact: Alice 776 Content-Type: application/sdp 777 Content-Length: 779 [SDP Not Shown] 781 F2 INVITE Example.com -> Gold.Example.com 783 INVITE sip:Gold@gold.example.com SIP/2.0 784 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 785 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 786 Max-Forward: 69 787 From: Alice ;tag=1235 788 To: Gold Member Assistance 789 Supported: histinfo 790 Call-Id: 12345600@example.com 791 CSeq: 1 INVITE 792 History-Info: ;index=1 793 History-Info: ;rc=1;index=1.1 794 Contact: Alice 795 Content-Type: application/sdp 796 Content-Length: 798 [SDP Not Shown] 800 F3 302 Moved Temporarily Gold.Example.com -> Example.com 802 SIP/2.0 302 Moved Temporarily 803 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 804 received=192.0.2.101 805 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 806 From: Alice ;tag=1235 807 To: Gold Member Assistance ;tag=kkaz- 808 Supported: histinfo 809 Call-Id: 12345600@example.com 810 CSeq: 1 INVITE 811 History-Info: ;index=1 812 History-Info: ;rc=1;index=1.1 813 Contact: ;mp=1 814 Content-Type: application/sdp 815 Content-Length: 817 [SDP Not Shown] 819 F4 INVITE Example.com -> Silver.Example.com 820 INVITE sip:Silver@example.com SIP/2.0 821 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 822 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 823 Max-Forward: 69 824 From: Alice ;tag=1235 825 To: Gold Member Assistance 826 Supported: histinfo 827 Call-Id: 12345600@example.com 828 CSeq: 1 INVITE 829 History-Info: ;index=1 830 History-Info: ;\ 831 rc=1;index=1.1 832 History-Info: ;index=1.2;mp=1 833 History-Info: ;index=1.2.1;rc=1.2 834 Contact: Alice 835 Content-Type: application/sdp 836 Content-Length: 838 [SDP Not Shown] 840 F5 INVITE Silver.Example.com -> Agent 842 INVITE sip:Silver@192.0.2.7 SIP/2.0 843 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs 844 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 845 received=192.0.2.101 846 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 847 Max-Forward: 68 848 From: Alice ;tag=1235 849 To: Gold Member Assistance 850 Supported: histinfo 851 Call-Id: 12345600@example.com 852 CSeq: 1 INVITE 853 History-Info: ;index=1 854 History-Info: ;\ 855 index=1.1 856 History-Info: ;index=1.2;mp=1 857 History-Info: ;index=1.2.1;rc=1.2 858 History-Info: ;index=1.2.1.1;rc=1.2.1 859 Contact: Alice 860 Content-Type: application/sdp 861 Content-Length: 863 [SDP Not Shown] 865 F6 200 OK Agent -> Silver.Example.com 867 SIP/2.0 200 OK 868 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ 869 received=192.0.2.5 870 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 871 received=192.0.2.101 872 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 873 From: Alice ;tag=1235 874 To: Gold Member Assistance ;tag=2325 875 Supported: histinfo 876 Call-Id: 12345600@example.com 877 CSeq: 1 INVITE 878 History-Info: ;index=1 879 History-Info: ;\ 880 index=1.1 881 History-Info: ;index=1.2;mp=1 882 History-Info: ;index=1.2.1;rc=1.2 883 History-Info: ;index=1.2.1.1;rc=1.2.1 884 Contact: Agent 885 Content-Type: application/sdp 886 Content-Length: 888 [SDP Not Shown] 890 F7 200 OK Silver.Example.com -> Example.com 892 SIP/2.0 200 OK 893 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 894 received=192.0.2.101 895 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 896 From: Alice ;tag=1235 897 To: Gold Member Assistance ;tag=2325 898 Supported: histinfo 899 Call-Id: 12345600@example.com 900 CSeq: 1 INVITE 901 History-Info: ;index=1 902 History-Info: ;\ 903 index=1.1 904 History-Info: ;index=1.2;mp=1 905 History-Info: ;index=1.2.1;rc=1.2 906 History-Info: ;index=1.2.1.1;rc=1.2.1 907 Contact: Agent 908 Content-Type: application/sdp 909 Content-Length: 911 [SDP Not Shown] 913 F8 200 OK Example.com -> Alice 914 SIP/2.0 200 OK 915 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 916 From: Alice ;tag=1235 917 To: Gold Member Assistance ;tag=2325 918 Supported: histinfo 919 Call-Id: 12345600@example.com 920 CSeq: 1 INVITE 921 History-Info: ;index=1 922 History-Info: ;\ 923 index=1.1 924 History-Info: ;index=1.2;mp=1 925 History-Info: ;index=1.2.1;rc=1.2 926 History-Info: ;index=1.2.1.1;rc=1.2.1 927 Contact: Agent 928 Content-Type: application/sdp 929 Content-Length: 931 [SDP Not Shown] 933 F9 ACK Alice -> Agent 935 ACK sip:Silver@192.0.2.7 SIP/2.0 936 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3 937 Max-Forward: 70 938 From: Alice ;tag=1235 939 To: Gold Member Assistance ;tag=2325 940 Supported: histinfo 941 Call-Id: 12345600@example.com 942 CSeq: 1 ACK 943 Contact: Alice 944 Content-Type: application/sdp 945 Content-Length: 947 [SDP Not Shown] 949 Figure 4: Figure 4: Example for Automatic Call Distribution 951 The first hi-entry with the "mp" header field parameter contains a 952 "mp" header field parameter value of 1 which points to the original- 953 target which allows the operator to identify that the call was from 954 the "Gold" customer. 956 3.5. Determining the Alias used. 958 SIP user agents are associated with an address-of-record (AOR). It 959 is possible for a single UA to actually have multiple AORs associated 960 with it. One common usage for this is aliases. For example, a user 961 might have an AOR of sip:john@example.com but also have the AORs 962 sip:john.smith@example.com and sip:jsmith@example.com. Rather than 963 registering against each of these AORs individually, the user would 964 register against just one of them, and the home proxy would 965 automatically accept incoming calls for any of the aliases, treating 966 them identically and ultimately forwarding them towards the UA. This 967 is common practice in the Internet Multimedia Subsystem (IMS), where 968 it is called implicit registration and each alias is called a public 969 user identity (PUID). 971 It is a common requirement for a UAS, on receipt of a call, to know 972 which of its aliases was used to reach it. This knowledge can be 973 used to choose ringtones to play, determine call treatment, and so 974 on. For example, a user might give out one alias to friends and 975 family only, resulting in a special ring that alerts the user to the 976 importance of the call. 978 The following call-flow and example messages show how History-Info 979 can be used to find out the alias used to reach the callee. The 980 alias for the call is determined by hi-entry with the index that 981 matches the value of the last hi-entry with a "rc" header field 982 parameter in the Request received. 984 Alice Example.com John 985 | | REGISTER F1 | 986 | |<--------------------| 987 | | 200 OK F2 | 988 | |-------------------->| 989 | INVITE F3 | | 990 |-------------------->| | 991 | | INVITE F4 | 992 | |-------------------->| 993 * Rest of flow not shown * 995 F1 REGISTER John -> Example.com 997 REGISTER sip:example.com SIP/2.0 998 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 999 Max-Forwards: 70 1000 From: John ;tag=a73kszlfl 1001 To: John 1002 Supported: histinfo 1003 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1004 CSeq: 1 REGISTER 1005 Contact: 1006 Content-Length: 0 1007 F2 200 OK Example.com -> John 1009 SIP/2.0 200 OK 1010 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1011 From: John ;tag=a73kszlfl 1012 To: John ;tag=d2dstee2 1013 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1014 CSeq: 1 REGISTER 1015 Contact: ;expires=3600 1016 Content-Length: 0 1018 F3 INVITE Alice -> Example.com 1020 INVITE sip:john.smith@example.com SIP/2.0 1021 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1022 Max-Forwards: 70 1023 From: Alice ;tag=a73kszlfl 1024 To: John 1025 Supported: histinfo 1026 Call-Id: 12345600@example.com 1027 CSeq: 1 INVITE 1028 History-Info: ;index=1 1029 Contact: Alice 1030 Content-Type: application/sdp 1031 Content-Length: 1033 [SDP Not Shown] 1035 F4 INVITE Example.com -> John 1037 INVITE sip:john@192.0.2.1 SIP/2.0 1038 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1039 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1040 Max-Forwards: 69 1041 From: Alice ;tag=a73kszlfl 1042 To: John 1043 Supported: histinfo 1044 Call-Id: 12345600@example.com 1045 CSeq: 1 INVITE 1046 Record-Route: 1047 History-Info: ;index=1 1048 History-Info: ;index=1.1;rc=1 1049 Contact: Alice 1050 Content-Type: application/sdp 1051 Content-Length: 1053 [SDP Not Shown] 1054 Figure 5: Figure 5: Alias Example 1056 The last hi-entry with the "rc" header field parameter references the 1057 source of retargeting pointing at the alias AoR, which in the example 1058 is "john.smith@example.com". 1060 3.6. PBX Voicemail Example 1062 A typical use case for voicemail is one whereby the original called 1063 party is not reachable and the call arrives at a voicemail system. 1064 In some cases multiple alternate destinations may be tried without 1065 success. The voicemail system typically requires the original called 1066 party information to determine the appropriate mailbox so an 1067 appropriate greeting can be provided and the appropriate party 1068 notified of the message. 1070 In this example, Alice calls Bob, whose SIP client is forwarded to 1071 Carol. Carol does not answer the call, thus it is forwarded to a VM 1072 (voicemail) server (VMS). In order to determine the appropriate 1073 mailbox to use for this call, the VMS needs the original target for 1074 the request. The original target is determined by finding the first 1075 hi-entry tagged with "rc" or "mp" and using the hi-entry referenced 1076 by the index of "rc" or "mp" header field parameter as the target for 1077 determining the appropriate mailbox. This hi-entry is used to 1078 populate the "target" URI parameter as defined in [RFC4458]. The 1079 reason associated with the first hi-entry tagged with "rc" or "mp" 1080 (i.e., 302) could be used to provide a customized voicemail greeting 1081 and is used to populate the "cause" URI parameter as defined in 1082 [RFC4458]. Note that some VMSs may also (or instead) use the 1083 information available in the History-Info headers for custom handling 1084 of the VM in terms of how and why the call arrived at the VMS. 1086 Furthermore it is the proxy forwarding the call to VMS that 1087 determines the target of the voicemail, it is the proxy that sets the 1088 target of voicemail which is also the entity that utilizes RFC4244bis 1089 to find the target which is usually based on local policy installed 1090 by the user or an administrator. 1092 Alice example.com Bob Carol VM 1094 | INVITE F1 | | | | 1095 |------------->| | | | 1096 | | INVITE F2 | | | 1097 | |------------->| | | 1098 | | | | | 1099 | 100 Trying | | | | 1100 |<-------------| 302 Moved Temporarily F3 | | 1101 | |<-------------| | | 1102 | | | | | 1103 | | ACK | | | 1104 | |------------->| | | 1105 | | | | | 1106 | | INVITE F4 | | | 1107 | |--------------------------->| | 1108 | | | | | 1109 | | 180 Ringing F5 | | 1110 | |<---------------------------| | 1111 | | | | | 1112 | 180 Ringing | | | | 1113 |<-------------| | | | 1114 | | | | | 1115 | | (timeout) | | 1116 | | | | | 1117 | | INVITE F6 | | | 1118 | |-------------------------------------->| 1119 | | | | | 1120 | | 200 OK F7 | 1121 | |<--------------------------------------| 1122 | 200 OK | | | | 1123 |<-------------| | | | 1124 | | | | | 1125 | ACK | 1126 |----------------------------------------------------->| 1128 F1 INVITE Alice -> Example.com 1130 INVITE sip:bob@example.com SIP/2.0 1131 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1132 Max-Forward: 70 1133 From: Alice ;tag=kkaz- 1134 To: Bob 1135 Supported: histinfo 1136 Call-Id: 12345600@example.com 1137 CSeq: 1 INVITE 1138 History-Info: ;index=1 1139 Contact: Alice 1140 Content-Length: 1142 [SDP Not Shown] 1144 F2 INVITE Example.com -> Bob 1146 INVITE sip:bob@192.0.2.5 SIP/2.0 1147 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1148 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1149 Max-Forward: 69 1150 From: Alice ;tag=kkaz- 1151 To: Bob 1152 Supported: histinfo 1153 Call-Id: 12345600@example.com 1154 CSeq: 1 INVITE 1155 History-Info: ;index=1 1156 History-Info: ;index=1.1;rc=1 1157 Contact: Alice 1158 Content-Type: application/sdp 1159 Content-Length: 1161 [SDP Not Shown] 1163 F3 302 Moved Temporarily Bob -> Example.com 1165 SIP/2.0 302 Moved Temporarily 1166 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1167 received=192.0.2.101 1168 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1169 From: Alice ;tag=kkaz- 1170 To: Bob ;tag=2g22d-lnf 1171 Supported: histinfo 1172 Call-Id: 12345600@example.com 1173 CSeq: 1 INVITE 1174 History-Info: ;index=1 1175 History-Info: ;index=1.1;rc=1 1176 Contact: ;mp=1 1177 Content-Type: application/sdp 1178 Content-Length: 1180 [SDP Not Shown] 1182 F4 INVITE Example.com -> Carol 1184 INVITE sip:carol@192.0.2.4 SIP/2.0 1185 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 1186 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1187 Max-Forward: 69 1188 From: Alice ;tag=kkaz- 1189 To: Bob 1190 Supported: histinfo 1191 Call-Id: 12345600@example.com 1192 CSeq: 1 INVITE 1193 History-Info: ;index=1 1194 History-Info: ;\ 1195 index=1.1;rc=1 1196 History-Info: ;index=1.2;mp=1 1197 History-Info: ;index=1.2.1;rc=1.2 1198 Contact: Alice 1199 Content-Type: application/sdp 1200 Content-Length: 1202 [SDP Not Shown] 1204 F5 180 Ringing Carol -> Example.com 1206 SIP/2.0 180 Ringing 1207 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\ 1208 received=192.0.2.101 1209 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1210 From: Alice ;tag=kkaz- 1211 To: Bob ;tag=setss3x 1212 Supported: histinfo 1213 Call-Id: 12345600@example.com 1214 CSeq: 1 INVITE 1215 History-Info: ;index=1 1216 History-Info: ;\ 1217 index=1.1;rc=1 1218 History-Info: ;index=1.2;mp=1 1219 History-Info: ;index=1.2.1;rc=1.2 1220 Contact: 1221 Content-Type: application/sdp 1222 Content-Length: 1224 [SDP Not Shown] 1226 F6 INVITE Example.com -> VM 1228 INVITE sip:vm@192.0.2.6;target=sip:bob%40example.com;cause=480\ 1229 SIP/2.0 1230 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523 1231 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1232 Max-Forward: 69 1233 From: Alice ;tag=kkaz- 1234 To: Bob 1235 Supported: histinfo 1236 Call-Id: 12345600@example.com 1237 CSeq: 1 INVITE 1238 History-Info: ;index=1 1239 History-Info: ;\ 1240 index=1.1;rc=1 1241 History-Info: ;index=1.2;mp=1 1242 History-Info: ;\ 1243 index=1.2.1;rc=1.2 1244 History-Info: ;\ 1246 index=1.3;mp=1 1247 History-Info: ;\ 1249 index=1.3.1;rc=1.3 1250 Contact: Alice 1251 Content-Type: application/sdp 1252 Content-Length: 1254 [SDP Not Shown] 1256 F7 200 OK VM -> Example.com 1258 SIP/2.0 200 OK 1259 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523;\ 1260 received=192.0.2.101 1261 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1262 From: Alice ;tag=kkaz- 1263 To: Bob ;tag=3dweggs 1264 Supported: histinfo 1265 Call-Id: 12345600@example.com 1266 CSeq: 1 INVITE 1267 History-Info: ;index=1 1268 History-Info: ;\ 1269 index=1.1;rc=1 1270 History-Info: ;index=1.2;mp=1 1272 History-Info: ;index=1.2.1;rc=1.2 1274 History-Info: ;\ 1276 index=1.3;mp=1 1277 History-Info: ;\ 1279 index=1.3.1;rc=1.3 1280 Contact: 1281 Content-Type: application/sdp 1282 Content-Length: 1284 [SDP Not Shown] 1286 Figure 6: Figure 6: Enterprise Voivemail Example 1288 The VMS can look at the last hi-entry and find the target of the 1289 mailbox by looking at the URI entry in the "target" URI parameter in 1290 the hi-entry. 1292 3.7. Consumer Voicemail Example 1294 In the case of a consumer, when the call is retargeted, it is usually 1295 to another administrative domain. The voicemail system in these 1296 environment typically requires the last called party information to 1297 determine the appropriate mailbox so an appropriate greeting can be 1298 provided and the appropriate party notified of the message. 1300 In this example, Alice calls the Bob but Bob has temporarily 1301 forwarded his phone to Carol because she is his wife. Carol does not 1302 answer the call, thus it is forwarded to a VM (voicemail) server 1303 (VMS). In order to determine the appropriate mailbox to use for this 1304 call, the VMS needs the appropriate target for the request. The last 1305 target is determined by finding the hi-entry referenced by the index 1306 of last hi-entry tagged with "mp" for determining the appropriate 1307 mailbox. This hi-entry is used to populate the "target" URI 1308 parameter as defined in [RFC4458]. Note that some VMSs may also (or 1309 instead) use the information available in the History-Info headers 1310 for custom handling of the VM in terms of how and why the called 1311 arrived at the VMS. 1313 Alice example.com Bob Carol VM 1315 | INVITE F1 | | | | 1316 |------------->| | | | 1317 | | INVITE F2 | | | 1318 | |------------->| | | 1319 | | | | | 1320 | 100 Trying | | | | 1321 |<-------------| 302 Moved Temporarily F3 | | 1322 | |<-------------| | | 1323 | | | | | 1324 | | ACK | | | 1325 | |------------->| | | 1326 | | | | | 1327 | | INVITE F4 | | | 1328 | |--------------------------->| | 1329 | | | | | 1330 | | 180 Ringing F5 | | 1331 | |<---------------------------| | 1332 | | | | | 1333 | 180 Ringing | | | | 1334 |<-------------| | | | 1335 | | | | | 1336 | | (timeout) | | 1337 | | | | | 1338 | | INVITE F6 | | | 1339 | |-------------------------------------->| 1340 | | | | | 1341 | | 200 OK F7 | 1342 | |<--------------------------------------| 1343 | 200 OK | | | | 1344 |<-------------| | | | 1345 | | | | | 1346 | ACK | 1347 |----------------------------------------------------->| 1349 F1 INVITE Alice -> Example.com 1351 INVITE sip:bob@example.com SIP/2.0 1352 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1353 Max-Forward: 70 1354 From: Alice ;tag=kkaz- 1355 To: Bob 1356 Supported: histinfo 1357 Call-Id: 12345600@example.com 1358 CSeq: 1 INVITE 1359 History-Info: ;index=1 1360 Contact: Alice 1361 Content-Length: 1363 [SDP Not Shown] 1365 F2 INVITE Example.com -> Bob 1367 INVITE sip:bob@192.0.2.5 SIP/2.0 1368 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1369 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1370 Max-Forward: 69 1371 From: Alice ;tag=kkaz- 1372 To: Bob 1373 Supported: histinfo 1374 Call-Id: 12345600@example.com 1375 CSeq: 1 INVITE 1376 History-Info: ;index=1 1377 History-Info: ;index=1.1;rc=1 1378 Contact: Alice 1379 Content-Type: application/sdp 1380 Content-Length: 1382 [SDP Not Shown] 1384 F3 302 Moved Temporarily Bob -> Example.com 1386 SIP/2.0 302 Moved Temporarily 1387 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1388 received=192.0.2.101 1389 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1390 From: Alice ;tag=kkaz- 1391 To: Bob ;tag=224ls3s-t 1392 Supported: histinfo 1393 Call-Id: 12345600@example.com 1394 CSeq: 1 INVITE 1395 History-Info: ;index=1 1396 History-Info: ;index=1.1;rc=1 1397 Contact: ;mp=1 1398 Content-Type: application/sdp 1399 Content-Length: 1401 [SDP Not Shown] 1403 F4 INVITE Example.com -> Carol 1405 INVITE sip:carol@192.0.2.4 SIP/2.0 1406 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 1407 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1408 Max-Forward: 69 1409 From: Alice ;tag=kkaz- 1410 To: Bob 1411 Supported: histinfo 1412 Call-Id: 12345600@example.com 1413 CSeq: 1 INVITE 1414 History-Info: ;index=1 1415 History-Info: \ 1417 ;index=1.1;rc=1 1418 History-Info: ;index=1.2;mp=1 1419 History-Info: ;index=1.2.1;rc=1.2 1420 Contact: Alice 1421 Content-Type: application/sdp 1422 Content-Length: 1424 [SDP Not Shown] 1426 F5 180 Ringing Carol -> Example.com 1428 SIP/2.0 180 Ringing 1429 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ 1430 received=192.0.2.101 1431 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1432 From: Alice ;tag=kkaz- 1433 To: Bob ;tag=setss3x 1434 Supported: histinfo 1435 Call-Id: 12345600@example.com 1436 CSeq: 1 INVITE 1437 History-Info: ;index=1 1438 History-Info: \ 1440 ;index=1.1;rc=1 1441 History-Info: ;index=1.2;mp=1 1442 History-Info: ;index=1.2.1;rc=1.2 1443 Contact: 1444 Content-Type: application/sdp 1445 Content-Length: 1447 [SDP Not Shown] 1449 F6 INVITE Example.com -> VM 1451 INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com SIP/2.0 1452 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1453 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1454 Max-Forward: 69 1455 From: Alice ;tag=kkaz- 1456 To: Bob 1457 Supported: histinfo 1458 Call-Id: 12345600@example.com 1459 CSeq: 1 INVITE 1460 History-Info: ;index=1 1461 History-Info: \ 1463 ;index=1.1;rc=1 1464 History-Info: ;\ 1465 index=1.2;mp=1 1466 History-Info: ;index=1.2.1;rc=1.2 1467 History-Info: ;\ 1468 index=1.3;mp=1.2 1469 History-Info: \ 1470 ;cause=408;index=1.3.1;rc=1.3 1471 Contact: Alice 1472 Content-Type: application/sdp 1473 Content-Length: 1475 [SDP Not Shown] 1476 F7 200 OK VM -> Example.com 1478 SIP/2.0 200 OK 1479 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1480 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1481 From: Alice ;tag=kkaz- 1482 To: Bob ;tag=3dweggs 1483 Supported: histinfo 1484 Call-Id: 12345600@example.com 1485 CSeq: 1 INVITE 1486 History-Info: ;index=1 1487 History-Info: \ 1489 ;index=1.1;rc=1 1490 History-Info: ;\ 1491 index=1.2;mp=1 1492 History-Info: ;\ 1493 index=1.2.1;rc=1.2 1494 History-Info: ;\ 1495 index=1.2.2;mp=1.2 1496 History-Info: ;\ 1497 index=1.2.2;rc=1.2.1 1498 Contact: 1499 Content-Type: application/sdp 1500 Content-Length: 1502 [SDP Not Shown] 1504 Figure 7: Figure 7: Consumer Voivemail Example 1506 The VMS can look at the last hi-entry and find the target of the 1507 mailbox by looking for the "target" URI parameter in the hi-entry and 1508 the reason by the "cause" URI parameter in the same hi-entry. 1510 3.8. GRUU 1512 A variation on the problem in Section 3.5 occurs with Globally 1513 Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned 1514 to a UA instance which has many of the same properties as the AOR, 1515 but causes requests to be routed only to that specific instance. It 1516 is desirable for a UA to know whether it was reached because a 1517 correspondent sent a request to its GRUU or to its AOR. This can be 1518 used to drive differing authorization policies on whether the request 1519 should be accepted or rejected, for example. However, like the AOR 1520 itself, the GRUU is lost in translation at the home proxy. Thus, the 1521 UAS cannot know whether it was contacted via the GRUU or its AOR. 1523 Following call-flow and example messages show how History-Info can be 1524 used to find out the GRUU used to reach the callee. 1526 While a GRUU is comprised of an AoR with a URI parameter as defined 1527 in [RFC5627] , the GRUU construct itself is not an AoR. Thus, the 1528 retargeting of a request based on a GRUU does not result in the 1529 addition of an "rc" header field parameter to the hi-entry containing 1530 the GRUU. The lack of an "rc" header field parameter in the hi- 1531 entries can be a hint that the source of retargeting is a GRUU. 1532 However, to ensure this is the case, the UAS needs to search for a 1533 "gr" parameter in the hi-entry prior to the last hi-entry. If there 1534 is a GRUU, the URI will always be prior to the last hi-entry as GRUU 1535 does not allow multiple instance to be mapped to a contact address. 1537 Alice Example.com John 1538 | | REGISTER F1 | 1539 | |<--------------------| 1540 | | 200 OK F2 | 1541 | |-------------------->| 1542 | INVITE F3 | | 1543 |-------------------->| | 1544 | | INVITE F4 | 1545 | |-------------------->| 1546 * Rest of flow not shown * 1548 F1 REGISTER John -> Example.com 1550 REGISTER sip:example.com SIP/2.0 1551 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1552 Max-Forwards: 70 1553 From: John ;tag=a73kszlfl 1554 Supported: gruu 1555 To: John 1556 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1557 CSeq: 1 REGISTER 1558 Contact: ;+sip.instance=\ 1559 1560 Content-Length: 0 1562 [SDP Not Shown] 1564 F2 200 OK Example.com -> John 1566 SIP/2.0 200 OK 1567 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1568 From: John ;tag=a73kszlfl 1569 To: John ;tag=b88sn 1570 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1571 CSeq: 1 REGISTER 1572 Contact: ;\ 1573 pub-gruu="sip:john@example.com;\ 1574 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1575 temp-gruu=\ 1576 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1577 +sip.instance=\ 1578 "";\ 1579 expires=3600 1580 Content-Length: 0 1582 [SDP Not Shown] 1584 Assuming Alice has a knowledge of a gruu either through 1585 prior communication or through other means such as presence 1586 places a call to John's gruu. 1588 F3 INVITE Alice -> Example.com 1590 INVITE sip:john@example.com;\ 1591 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 1592 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1593 Max-Forward: 70 1594 From: Alice ;tag=kkaz- 1595 To: 1597 Supported: gruu, histinfo 1598 Call-Id: 12345600@example.com 1599 CSeq: 1 INVITE 1600 History-Info: ;index=1 1602 Contact: Alice 1603 Content-Length: 1605 [SDP Not Shown] 1607 F4 INVITE Example.com -> John 1609 INVITE sip:john@192.0.2.1 SIP/2.0 1610 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1611 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1612 Max-Forward: 69 1613 From: Alice ;tag=kkaz- 1614 To: 1617 Supported: gruu, histinfo 1618 Call-Id: 12345600@example.com 1619 CSeq: 1 INVITE 1620 Record-Route: 1621 History-Info: ;index=1 1623 History-Info: ;index=1.1;rc=1 1624 Contact: Alice 1625 Content-Type: application/sdp 1626 Content-Length: 1628 [SDP Not Shown] 1630 Figure 8: Figure 8: GRUU Example 1632 By analyzing the entry referenced by the entry with the last "rc", 1633 one can realize that the URI used to reach the device was GRUU by 1634 finding the "gr" parameter. 1636 3.9. Limited Use Address 1638 A limited use address is a SIP URI that is minted on-demand, and 1639 passed out to a small number (usually one) remote correspondent. 1640 Incoming calls targeted to that limited use address are accepted as 1641 long as the UA still desires communications from the remote target. 1642 Should they no longer wish to be bothered by that remote 1643 correspondent, the URI is invalidated so that future requests 1644 targeted to it are rejected. 1646 Limited use addresses are used in battling voice spam [RFC5039]. The 1647 easiest way to provide them would be for a UA to be able to take its 1648 AOR, and "mint" a limited use address by appending additional 1649 parameters to the URI. It could then give out the URI to a 1650 particular correspondent, and remember that URI locally. When an 1651 incoming call arrives, the UAS would examine the parameter in the URI 1652 and determine whether or not the call should be accepted. 1653 Alternatively, the UA could push authorization rules into the 1654 network, so that it need not even see incoming requests that are to 1655 be rejected. 1657 This approach, especially when executed on the UA, requires that 1658 parameters attached to the AOR, but not used by the home proxy in 1659 processing the request, will survive the translation at the home 1660 proxy and be presented to the UA. This will not be the case with the 1661 logic in RFC 3261, since the Request-URI is replaced by the 1662 registered contact, and any such parameters are lost. 1664 Using the history-info John's UA can easily see if the call was 1665 addressed to its AoR, GRUU or a temp-gruu and treat the call 1666 accordingly by looking for a "gr" tag in the hi-entry prior to the 1667 last hi-entry. 1669 Alice Example.com John 1670 | | REGISTER F1 | 1671 | |<--------------------| 1672 | | 200 OK F2 | 1673 | |-------------------->| 1674 | INVITE F3 | | 1675 |-------------------->| | 1676 | | INVITE F4 | 1677 | |-------------------->| 1678 * Rest of flow not shown * 1680 F1 REGISTER John -> Example.com 1682 REGISTER sip:example.com SIP/2.0 1683 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1684 Max-Forwards: 70 1685 From: John ;tag=a73kszlfl 1686 Supported: gruu 1687 To: John 1688 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1689 CSeq: 1 REGISTER 1690 Contact: ;\ 1691 +sip.instance="" 1692 Content-Length: 0 1694 F2 200 OK Example.com -> John 1696 SIP/2.0 200 OK 1697 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1698 From: John ;tag=a73kszlfl 1699 To: John ;tag=b88sn 1700 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1701 CSeq: 1 REGISTER 1702 Contact: ;\ 1703 pub-gruu="sip:john@example.com;\ 1704 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1705 temp-gruu=\ 1706 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1707 +sip.instance="";\ 1708 expires=3600 1709 Content-Length: 0 1710 Assuming Alice has a knowledge of a temp-gruu, she places a 1711 call to the temp-gruu. 1713 F3 INVITE Alice -> Example.com 1715 INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1716 gr SIP/2.0 1717 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1718 Max-Forward: 70 1719 From: Alice ;tag=kkaz- 1720 To: 1722 Supported: gruu, histinfo 1723 Call-Id: 12345600@example.com 1724 CSeq: 1 INVITE 1725 History-Info: \ 1726 \ 1727 ;index=1 1728 Contact: Alice 1729 Content-Length: 1731 F4 INVITE Example.com -> John 1733 INVITE sip:john@192.0.2.1 SIP/2.0 1734 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 1735 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1736 Max-Forward: 69 1737 From: Alice ;tag=kkaz- 1738 To: 1740 Supported: gruu, histinfo 1741 Call-Id: 12345600@example.com 1742 CSeq: 1 INVITE 1743 Record-Route: 1744 History-Info: \ 1745 \ 1746 ;index=1 1747 History-Info: ;index=1.1;rc=1 1748 Contact: Alice 1749 Content-Type: application/sdp 1750 Content-Length: 1752 Figure 9: Figure 9: Limited Use Address Example 1754 By analyzing the entry referenced by the entry with the last "rc", 1755 one can realize that the URI used to reach the device was GRUU by 1756 finding the "gr" parameter. 1758 3.10. Service Invocation 1760 Several SIP specifications have been developed which make use of 1761 complex URIs to address services within the network rather than 1762 subscribers. The URIs are complex because they contain numerous 1763 parameters that control the behavior of the service. Examples of 1764 this include the specification which first introduced the concept, 1765 [RFC3087], control of network announcements and IVR with SIP URI 1766 [RFC4240], and control of voicemail access with SIP URI [RFC4458]. 1768 A common problem with all of these mechanisms is that once a proxy 1769 has decided to rewrite the Request-URI to point to the service, it 1770 cannot be sure that the Request-URI will not be destroyed by a 1771 downstream proxy which decides to forward the request in some way, 1772 and does so by rewriting the Request-URI. 1774 Section on voicemail (Section 3.6) shows how History-Info can be used 1775 to invocate a service. 1777 3.11. Toll Free Number 1779 Toll free numbers, also known as 800 or 8xx numbers in the United 1780 States, are telephone numbers that are free for users to call. 1782 In the telephone network, toll free numbers are just aliases to 1783 actual numbers which are used for routing of the call. In order to 1784 process the call in the PSTN, a switch will perform a query (using a 1785 protocol called TCAP), which will return either a phone number or the 1786 identity of a carrier which can handle the call. 1788 There has been recent work on allowing such PSTN translation services 1789 to be accessed by SIP proxy servers through IP querying mechanisms. 1790 ENUM, for example [RFC3761] has already been proposed as a mechanism 1791 for performing Local Number Portability (LNP) queries [RFC4769], and 1792 recently been proposed for performing calling name queries 1793 [I-D.ietf-enum-cnam]. Using it for 8xx number translations is a 1794 logical next-step. 1796 Once such a translation has been performed, the call needs to be 1797 routed towards the target of the request. Normally, this would 1798 happen by selecting a PSTN gateway which is a good route towards the 1799 translated number. However, one can imagine all-IP systems where the 1800 8xx numbers are SIP endpoints on an IP network, in which case the 1801 translation of the 8xx number would actually be a SIP URI and not a 1802 phone number. Assuming for the moment it is a PSTN connected entity, 1803 the call would be routed towards a PSTN gateway. Proper treatment of 1804 the call in the PSTN (and in particular, correct reconciliation of 1805 billing records) requires that the call be marked with both the 1806 original 8xx number AND the target number for the call. However, in 1807 our example here, since the translation was performed by a SIP proxy 1808 upstream from the gateway, the original 8xx number would have been 1809 lost, and the call will not interwork properly with the PSTN. 1810 History-info would come in play here to assure original 8xx number is 1811 not lost. 1813 Furthermore, even if the translation of the 8xx number was a SIP URI, 1814 the enterprise or user who utilize the 8xx service would like to know 1815 whether the call came in via 8xx number in order to treat the call 1816 differently (for example to play a special announcement..) but if the 1817 original R-URI is lost through translation, there is no way to tell 1818 if the call came in via 8xx number. 1820 Similar problems arise with other "special" numbers and services used 1821 in the PSTN, such as operator services, pay/premium numbers (9xx 1822 numbers in the U.S), and short service codes such as 311. 1824 To find the service number, the UAS can extract the hi-entry whose 1825 index matches the value of the first hi-entry with an "mp" tag. 1826 Technically the call can be forwarded to these "special" numbers from 1827 non "special" numbers, however that is uncommon based on the way 1828 these services authorize translations. 1830 This example call-flow shows an UAC that does not support history- 1831 info. 1833 Alice Toll Free Service Atlanta.com John 1834 | | | | 1835 | INVITE F1 | | | 1836 |--------------->| INVITE F2 | | 1837 | |------------->| | 1838 | | | INVITE F3 | 1839 | | |------------------>| 1841 * Rest of flow not shown * 1843 F1: INVITE 192.0.2.1 -> Toll Free Service 1845 INVITE sip:+18005551002@example.com;user=phone SIP/2.0 1846 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1847 From: Alice ;tag=9fxced76sl 1848 To: 1849 Call-ID: c3x842276298220188511 1850 CSeq: 1 INVITE 1851 Max-Forwards: 70 1852 Contact: 1853 Content-Type: application/sdp 1854 Content-Length: 1856 [SDP Not Shown] 1858 F2: INVITE Toll Free Service -> Atlanta.com 1860 INVITE sip:+15555551002@atlanta.com SIP/2.0 1861 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1862 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1863 From: Alice ;tag=9fxced76sl 1864 To: 1865 Call-ID: c3x842276298220188511 1866 CSeq: 1 INVITE 1867 Max-Forwards: 69 1868 Supported: histinfo 1869 History-Info: ;index=1 1870 History-Info: ;index=1.1;mp=1 1871 Contact: 1872 Content-Type: application/sdp 1873 Content-Length: 1875 [SDP Not Shown] 1877 F3: INVITE Atlanta.com -> John 1879 INVITE sip:john@198.51.100.2 SIP/2.0 1880 Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g 1881 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1882 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1883 From: Alice ;tag=9fxced76sl 1884 To: 1885 Call-ID: c3x842276298220188511 1886 CSeq: 1 INVITE 1887 Max-Forwards: 68 1888 Supported: histinfo 1889 History-Info: ;index=1 1890 History-Info: ;index=1.1;mp=1 1891 History-Info: ;index=1.1.1;rc=1.1 1892 History-Info: ;index=1.1.1.1;rc=1.1.1 1893 Contact: 1894 Content-Type: application/sdp 1895 Content-Length: 1897 [SDP Not Shown] 1899 Figure 10: Figure 10: Service Number Example 1901 4. Security Considerations 1903 The security considerations for the History-Info header field are 1904 specified in [I-D.ietf-sipcore-rfc4244bis]. 1906 5. IANA Considerations 1908 This document has no IANA considerations. 1910 5.1. Acknowledgements 1912 Jonathan Rosenberg et al produced the document that provided 1913 additional use cases precipitating the requirement for the new 1914 "target" parameter in the History-Info header field and the new SIP/ 1915 SIPS URI parameter. Hadriel Kaplan provided some comments. 1917 Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley and 1918 Marianne Mohali provided extensive review and comments on call-flow, 1919 message examples and text. 1921 6. Informative References 1923 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1924 A., Peterson, J., Sparks, R., Handley, M., and E. 1925 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1926 June 2002. 1928 [RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason 1929 Header Field for the Session Initiation Protocol (SIP)", 1930 RFC 3326, December 2002. 1932 [RFC3323] Peterson, J., "A Privacy Mechanism for the Session 1933 Initiation Protocol (SIP)", RFC 3323, November 2002. 1935 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1936 Requirement Levels", BCP 14, RFC 2119, March 1997. 1938 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1939 (TLS) Protocol Version 1.2", RFC 5246, August 2008. 1941 [RFC4244] Barnes, M., "An Extension to the Session Initiation 1942 Protocol (SIP) for Request History Information", RFC 4244, 1943 November 2005. 1945 [RFC5627] Rosenberg, J., "Obtaining and Using Globally Routable User 1946 Agent URIs (GRUUs) in the Session Initiation Protocol 1947 (SIP)", RFC 5627, October 2009. 1949 [RFC5630] Audet, F., "The Use of the SIPS URI Scheme in the Session 1950 Initiation Protocol (SIP)", RFC 5630, October 2009. 1952 [RFC3087] Campbell, B. and R. Sparks, "Control of Service Context 1953 using SIP Request-URI", RFC 3087, April 2001. 1955 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 1956 Media Services with SIP", RFC 4240, December 2005. 1958 [RFC5039] Rosenberg, J. and C. Jennings, "The Session Initiation 1959 Protocol (SIP) and Spam", RFC 5039, January 2008. 1961 [RFC4458] Jennings, C., Audet, F., and J. Elwell, "Session 1962 Initiation Protocol (SIP) URIs for Applications such as 1963 Voicemail and Interactive Voice Response (IVR)", RFC 4458, 1964 April 2006. 1966 [RFC3761] Faltstrom, P. and M. Mealling, "The E.164 to Uniform 1967 Resource Identifiers (URI) Dynamic Delegation Discovery 1968 System (DDDS) Application (ENUM)", RFC 3761, April 2004. 1970 [RFC4769] Livingood, J. and R. Shockey, "IANA Registration for an 1971 Enumservice Containing Public Switched Telephone Network 1972 (PSTN) Signaling Information", RFC 4769, November 2006. 1974 [RFC3969] Camarillo, G., "The Internet Assigned Number Authority 1975 (IANA) Uniform Resource Identifier (URI) Parameter 1976 Registry for the Session Initiation Protocol (SIP)", 1977 BCP 99, RFC 3969, December 2004. 1979 [I-D.ietf-enum-cnam] 1980 Shockey, R., "IANA Registration for an Enumservice Calling 1981 Name Delivery (CNAM) Information and IANA Registration for 1982 URI type 'pstndata'", draft-ietf-enum-cnam-08 (work in 1983 progress), September 2008. 1985 [I-D.ietf-sipcore-rfc4244bis] 1986 Barnes, M., Audet, F., Schubert, S., Elburg, H., and C. 1987 Holmberg, "An Extension to the Session Initiation Protocol 1988 (SIP) for Request History Information", 1989 draft-ietf-sipcore-rfc4244bis-11 (work in progress), 1990 January 2013. 1992 Authors' Addresses 1994 Mary Barnes 1995 Polycom 1996 TX 1997 US 1999 Email: mary.ietf.barnes@gmail.com 2001 Francois Audet 2002 Skype 2004 Email: francois.audet@skype.net 2006 Shida Schubert 2007 NTT 2008 Tokyo 2009 Japan 2011 Email: shida@ntt-at.com 2013 Hans Erik van Elburg 2014 Detecon International Gmbh 2015 Oberkasseler str. 2 2016 Bonn, 2017 Germany 2019 Email: ietf.hanserik@gmail.com 2021 Christer Holmberg 2022 Ericsson 2023 Hirsalantie 11, Jorvas 2024 Finland 2026 Email: christer.holmberg@ericsson.com