idnits 2.17.1 draft-ietf-sipcore-rfc4244bis-callflows-04.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 16 instances of too long lines in the document, the longest one being 34 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 409 has weird spacing: '... Alice atla...' == Line 557 has weird spacing: '... Alice atla...' -- The document date (Jul 2013) is 3931 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC3326' is defined on line 1931, but no explicit reference was found in the text == Unused Reference: 'RFC3323' is defined on line 1935, but no explicit reference was found in the text == Unused Reference: 'RFC2119' is defined on line 1938, but no explicit reference was found in the text == Unused Reference: 'RFC5246' is defined on line 1941, but no explicit reference was found in the text == Unused Reference: 'RFC4244' is defined on line 1944, but no explicit reference was found in the text == Unused Reference: 'RFC5630' is defined on line 1952, but no explicit reference was found in the text == Unused Reference: 'RFC3969' is defined on line 1977, 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: January 2, 2014 Skype 6 S. Schubert 7 NTT 8 H. van Elburg 9 Detecon International Gmbh 10 C. Holmberg 11 Ericsson 12 Jul 2013 14 Session Initiation Protocol (SIP) History-Info Header Call Flow Examples 15 draft-ietf-sipcore-rfc4244bis-callflows-04.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 January 2, 2014. 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: 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: ;index=1.2.1;rc=1.2 297 CSeq: 1 INVITE 298 Contact: Office 299 Content-Length: 0 301 F9 INVITE example.com -> home 303 INVITE sip:home@192.0.2.6 SIP/2.0 304 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 305 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 306 Max-Forward: 69 307 From: Alice ;tag=sr3dds 308 To: Bob 309 Supported: histinfo 310 Call-Id: 12345600@example.com 311 Record-Route: 312 History-Info: ;index=1 313 History-Info: ;\ 314 index=1.1;rc=1 315 History-Info: ;\ 316 index=1.2;mp=1 317 History-Info: ;\ 318 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: ;\ 349 index=1.2;mp=1 350 History-Info: ;\ 351 index=1.2.1;index=1.2.1;rc=1.2 352 History-Info: ;index=1.3;mp=1 353 History-Info: ;index=1.3.1;rc=1.3 354 CSeq: 1 INVITE 355 Content-Length: 0 356 F12 486 Busy Here example.com -> alice 358 SIP/2.0 486 Busy Here 359 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 360 From: Alice ;tag=sr3dds 361 To: Bob ;tag=55rdds 362 Call-Id: 12345600@example.com 363 History-Info: ;index=1 364 History-Info: ;\ 365 index=1.1;rc=1 366 History-Info: ;\ 367 index=1.2;mp=1 368 History-Info: ;\ 369 index=1.2.1;rc=1.2 370 History-Info: ;index=1.3;mp=1 371 History-Info: ;index=1.3.1;rc=1.3 372 CSeq: 1 INVITE 373 Content-Length: 0 375 F13 ACK example.com -> home 377 ACK sip:home@192.0.2.6 SIP/2.0 378 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 379 Max-Forward: 70 380 From: Alice ;tag=sr3dds 381 To: Bob ;tag=55rdds 382 Call-Id: 12345600@example.com 383 CSeq: 1 ACK 384 Content-Length: 0 386 F14 ACK alice -> example.com 388 ACK sip:bob@example.com SIP/2.0 389 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 390 Max-Forward: 70 391 From: Alice ;tag=sr3dds 392 To: Bob ;tag=55rdds 393 Call-Id: 12345600@example.com 394 Route: 395 CSeq: 1 ACK 396 Content-Length: 0 398 3.2. History-Info with Privacy Header Field 400 This example provides a basic call scenario without forking. Alice 401 has indicated that she wants Privacy associated with the History-Info 402 header field entries. In addition, sip:biloxi.example.com adds 403 Privacy header fields indicating that the History-Info header field 404 information is anonymized outside the biloxi.example.com domain. 405 Note, that if the atlanta.example.com proxy had added privacy header 406 fields to all its hi-entries, then all the hi-entries in the response 407 would be anonymous. 409 Alice atlanta.example.com biloxi.example.com Bob 410 | | | | 411 | INVITE F1 | | | 412 |--------------->| | | 413 | | | | 414 | | INVITE F2 | | 415 | |--------------->| | 416 | | | | 417 | | | INVITE F3 | 418 | | |--------------->| 419 | | | | 420 | | | 200 F4 | 421 | | |<---------------| 422 | | | | 423 | | 200 F5 | | 424 | |<---------------| | 425 | | | | 426 | 200 F6 | | | 427 |<---------------| | | 428 | | | | 429 | | ACK | | 430 |------------------------------------------------->| 431 | | | | 433 Figure 2: Example with Privacy Header Fields 435 Message Details 437 F1 INVITE alice -> atlanta.example.com 439 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 440 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 441 Max-Forward: 70 442 From: Alice ;tag=22 443 To: Bob 444 Supported: histinfo 445 Privacy: history 446 Call-Id: 12345600@atlanta.example.com 447 CSeq: 1 INVITE 448 History-Info: ;index=1 449 Contact: Alice 450 Content-Type: application/sdp 451 Content-Length: 452 454 F2 INVITE atlanta.example.com -> biloxi.example.com 456 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 457 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 458 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 459 Max-Forward: 69 460 From: Alice ;tag=22 461 To: Bob 462 Supported: histinfo 463 Call-Id: 12345600@atlanta.example.com 464 CSeq: 1 INVITE 465 History-Info: ;index=1 466 History-Info: ;index=1.1 467 Contact: Alice 468 Content-Type: application/sdp 469 Content-Length: 470 471 F3 INVITE biloxi.example.com -> Bob 473 INVITE sip:bob@192.0.1.11 SIP/2.0 474 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32 475 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 476 received=192.0.2.3 477 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 478 Max-Forward: 68 479 From: Alice ;tag=22 480 To: Bob 481 Supported: histinfo 482 Call-Id: 12345600@atlanta.example.com 483 CSeq: 1 INVITE 484 History-Info: ;index=1 485 History-Info: ;index=1.1 486 History-Info: ;index=1.1.1;rc=1.1 487 Contact: Alice 488 Content-Type: application/sdp 489 Content-Length: 490 492 F4 200 OK Bob -> biloxi.example.com 494 SIP/2.0 200 OK 495 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 496 received=192.0.2.101 497 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 498 received=192.0.2.3 499 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 500 From: Alice ;tag=22 501 To: Bob ;tag=33 502 Supported: histinfo 503 Call-Id: 12345600@atlanta.example.com 504 CSeq: 1 INVITE 505 History-Info: ;index=1 506 History-Info: ;index=1.1 507 History-Info: ;index=1.1.1;rc=1.1 508 Contact: Bob 509 Content-Type: application/sdp 510 Content-Length: 511 512 F5 200 OK biloxi.example.com -> atlanta.example.com 514 SIP/2.0 200 OK 515 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 516 received=192.0.2.101 517 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 518 From: Alice ;tag=22 519 To: Bob ;tag=33 520 Supported: histinfo 521 Call-Id: 12345600@atlanta.example.com 522 CSeq: 1 INVITE 523 History-Info: ;index=1 524 History-Info: ;index=1.1 525 History-Info: ;index=1.1.1;rc=1.1 526 Contact: Bob 527 Content-Type: application/sdp 528 Content-Length: 529 531 F6 200 OK atlanta.example.com -> Alice 533 SIP/2.0 200 OK 534 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 535 From: Alice ;tag=22 536 To: Bob ;tag=33 537 Supported: histinfo 538 Call-Id: 12345600@atlanta.example.com 539 CSeq: 1 INVITE 540 History-Info: ;index=1 541 History-Info: ;index=1.1 542 History-Info: ;index=1.1.1;rc=1.1 543 Contact: Bob 544 Content-Type: application/sdp 545 Content-Length: 546 548 3.3. Privacy for a Specific History-Info Entry 550 This example provides a basic call scenario similar to Section 3.2, 551 however, due to local policy at sip:biloxi.example.com, only the 552 final hi-entry in the History-Info, which is Bob's local URI, 553 contains a privacy header field with a priv-value of "history", thus 554 providing Alice with some information about the history of the 555 request, but anonymizing Bob's local URI. 557 Alice atlanta.example.com biloxi.example.com Bob 558 | | | | 559 | INVITE F1 | | | 560 |--------------->| | | 561 | | | | 562 | | INVITE F2 | | 563 | |--------------->| | 564 | | | | 565 | | | INVITE F3 | 566 | | |--------------->| 567 | | | | 568 | | | 200 F4 | 569 | | |<---------------| 570 | | | | 571 | | 200 F5 | | 572 | |<---------------| | 573 | | | | 574 | 200 F6 | | | 575 |<---------------| | | 576 | | | | 577 | | ACK | | 578 |------------------------------------------------->| 579 | | | | 581 Figure 3: Example with Privacy Header Field for Specific 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 rc=1;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 rc=1;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 rc=1;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 rc=1;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: 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: 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 1244 History-Info: ;index=1.2.1;rc=1.2 1246 History-Info: ;\ 1248 index=1.3;mp=1 1249 History-Info: ;\ 1251 index=1.3.1;rc=1.3 1252 Contact: Alice 1253 Content-Type: application/sdp 1254 Content-Length: 1256 [SDP Not Shown] 1258 F7 200 OK VM -> Example.com 1260 SIP/2.0 200 OK 1261 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523;\ 1262 received=192.0.2.101 1263 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1264 From: Alice ;tag=kkaz- 1265 To: Bob ;tag=3dweggs 1266 Supported: histinfo 1267 Call-Id: 12345600@example.com 1268 CSeq: 1 INVITE 1269 History-Info: ;index=1 1270 History-Info: ;\ 1271 index=1.1;rc=1 1272 History-Info: ;index=1.2;mp=1 1274 History-Info: ;index=1.2.1;rc=1.2 1276 History-Info: ;\ 1278 index=1.3;mp=1 1279 History-Info: ;\ 1281 index=1.3.1;rc=1.3 1282 Contact: 1283 Content-Type: application/sdp 1284 Content-Length: 1286 [SDP Not Shown] 1288 Figure 6: Enterprise Voivemail Example 1290 The VMS can look at the last hi-entry and find the target of the 1291 mailbox by looking at the URI entry in the "target" URI parameter in 1292 the hi-entry. 1294 3.7. Consumer Voicemail Example 1296 In the case of a consumer, when the call is retargeted, it is usually 1297 to another administrative domain. The voicemail system in these 1298 environment typically requires the last called party information to 1299 determine the appropriate mailbox so an appropriate greeting can be 1300 provided and the appropriate party notified of the message. 1302 In this example, Alice calls the Bob but Bob has temporarily 1303 forwarded his phone to Carol because she is his wife. Carol does not 1304 answer the call, thus it is forwarded to a VM (voicemail) server 1305 (VMS). In order to determine the appropriate mailbox to use for this 1306 call, the VMS needs the appropriate target for the request. The last 1307 target is determined by finding the hi-entry referenced by the index 1308 of last hi-entry tagged with "mp" for determining the appropriate 1309 mailbox. This hi-entry is used to populate the "target" URI 1310 parameter as defined in [RFC4458]. Note that some VMSs may also (or 1311 instead) use the information available in the History-Info headers 1312 for custom handling of the VM in terms of how and why the called 1313 arrived at the VMS. 1315 Alice example.com Bob Carol VM 1317 | INVITE F1 | | | | 1318 |------------->| | | | 1319 | | INVITE F2 | | | 1320 | |------------->| | | 1321 | | | | | 1322 | 100 Trying | | | | 1323 |<-------------| 302 Moved Temporarily F3 | | 1324 | |<-------------| | | 1325 | | | | | 1326 | | ACK | | | 1327 | |------------->| | | 1328 | | | | | 1329 | | INVITE F4 | | | 1330 | |--------------------------->| | 1331 | | | | | 1332 | | 180 Ringing F5 | | 1333 | |<---------------------------| | 1334 | | | | | 1335 | 180 Ringing | | | | 1336 |<-------------| | | | 1337 | | | | | 1338 | | (timeout) | | 1339 | | | | | 1340 | | INVITE F6 | | | 1341 | |-------------------------------------->| 1342 | | | | | 1343 | | 200 OK F7 | 1344 | |<--------------------------------------| 1345 | 200 OK | | | | 1346 |<-------------| | | | 1347 | | | | | 1348 | ACK | 1349 |----------------------------------------------------->| 1351 F1 INVITE Alice -> Example.com 1353 INVITE sip:bob@example.com SIP/2.0 1354 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1355 Max-Forward: 70 1356 From: Alice ;tag=kkaz- 1357 To: Bob 1358 Supported: histinfo 1359 Call-Id: 12345600@example.com 1360 CSeq: 1 INVITE 1361 History-Info: ;index=1 1362 Contact: Alice 1363 Content-Length: 1365 [SDP Not Shown] 1367 F2 INVITE Example.com -> Bob 1369 INVITE sip:bob@192.0.2.5 SIP/2.0 1370 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1371 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1372 Max-Forward: 69 1373 From: Alice ;tag=kkaz- 1374 To: Bob 1375 Supported: histinfo 1376 Call-Id: 12345600@example.com 1377 CSeq: 1 INVITE 1378 History-Info: ;index=1 1379 History-Info: ;index=1.1;rc=1 1380 Contact: Alice 1381 Content-Type: application/sdp 1382 Content-Length: 1384 [SDP Not Shown] 1386 F3 302 Moved Temporarily Bob -> Example.com 1388 SIP/2.0 302 Moved Temporarily 1389 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1390 received=192.0.2.101 1391 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1392 From: Alice ;tag=kkaz- 1393 To: Bob ;tag=224ls3s-t 1394 Supported: histinfo 1395 Call-Id: 12345600@example.com 1396 CSeq: 1 INVITE 1397 History-Info: ;index=1 1398 History-Info: ;index=1.1;rc=1 1399 Contact: ;mp=1 1400 Content-Type: application/sdp 1401 Content-Length: 1403 [SDP Not Shown] 1405 F4 INVITE Example.com -> Carol 1407 INVITE sip:carol@192.0.2.4 SIP/2.0 1408 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 1409 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1410 Max-Forward: 69 1411 From: Alice ;tag=kkaz- 1412 To: Bob 1413 Supported: histinfo 1414 Call-Id: 12345600@example.com 1415 CSeq: 1 INVITE 1416 History-Info: ;index=1 1417 History-Info: >\ 1419 ;index=1.1;rc=1 1420 History-Info: ;index=1.2;mp=1 1421 History-Info: ;index=1.2.1;rc=1.2 1422 Contact: Alice 1423 Content-Type: application/sdp 1424 Content-Length: 1426 [SDP Not Shown] 1428 F5 180 Ringing Carol -> Example.com 1430 SIP/2.0 180 Ringing 1431 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ 1432 received=192.0.2.101 1433 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1434 From: Alice ;tag=kkaz- 1435 To: Bob ;tag=setss3x 1436 Supported: histinfo 1437 Call-Id: 12345600@example.com 1438 CSeq: 1 INVITE 1439 History-Info: ;index=1 1440 History-Info: ">\ 1442 ;index=1.1;rc=1 1443 History-Info: ;index=1.2;mp=1 1444 History-Info: ;index=1.2.1;rc=1.2 1445 Contact: 1446 Content-Type: application/sdp 1447 Content-Length: 1449 [SDP Not Shown] 1451 F6 INVITE Example.com -> VM 1453 INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com SIP/2.0 1454 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1455 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1456 Max-Forward: 69 1457 From: Alice ;tag=kkaz- 1458 To: Bob 1459 Supported: histinfo 1460 Call-Id: 12345600@example.com 1461 CSeq: 1 INVITE 1462 History-Info: ;index=1 1463 History-Info: >\ 1465 ;index=1.1;rc=1 1466 History-Info: ;\ 1467 index=1.2;mp=1 1468 History-Info: ;index=1.2.1;rc=1.2 1469 History-Info: \ 1470 ; 1471 index=1.2.2;mp=1.2 1472 History-Info: \ 1473 ;cause=408;index=1.2.2.1;rc=1.3 1474 Contact: Alice 1475 Content-Type: application/sdp 1476 Content-Length: 1478 [SDP Not Shown] 1479 F7 200 OK VM -> Example.com 1481 SIP/2.0 200 OK 1482 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1483 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1484 From: Alice ;tag=kkaz- 1485 To: Bob ;tag=3dweggs 1486 Supported: histinfo 1487 Call-Id: 12345600@example.com 1488 CSeq: 1 INVITE 1489 History-Info: ;index=1 1490 History-Info: \ 1492 ;index=1.1;rc=1 1493 History-Info: ;\ 1494 index=1.2;mp=1 1495 History-Info: ;\ 1496 index=1.2.1;rc=1.2 1497 History-Info: ;\ 1498 index=1.2.2;mp=1.2 1499 History-Info: ;\ 1500 index=1.2.2.1;rc=1.2.2 1501 Contact: 1502 Content-Type: application/sdp 1503 Content-Length: 1505 [SDP Not Shown] 1507 Figure 7: Consumer Voivemail Example 1509 The VMS can look at the last hi-entry and find the target of the 1510 mailbox by looking for the "target" URI parameter in the hi-entry and 1511 the reason by the "cause" URI parameter in the same hi-entry. 1513 3.8. GRUU 1515 A variation on the problem in Section 3.5 occurs with Globally 1516 Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned 1517 to a UA instance which has many of the same properties as the AOR, 1518 but causes requests to be routed only to that specific instance. It 1519 is desirable for a UA to know whether it was reached because a 1520 correspondent sent a request to its GRUU or to its AOR. This can be 1521 used to drive differing authorization policies on whether the request 1522 should be accepted or rejected, for example. However, like the AOR 1523 itself, the GRUU is lost in translation at the home proxy. Thus, the 1524 UAS cannot know whether it was contacted via the GRUU or its AOR. 1526 Following call-flow and example messages show how History-Info can be 1527 used to find out the GRUU used to reach the callee. 1529 While a GRUU is comprised of an AoR with a URI parameter as defined 1530 in [RFC5627] , the GRUU construct itself is not an AoR. Thus, the 1531 retargeting of a request based on a GRUU does not result in the 1532 addition of an "rc" header field parameter to the hi-entry containing 1533 the GRUU. The lack of an "rc" header field parameter in the hi- 1534 entries can be a hint that the source of retargeting is a GRUU. 1535 However, to ensure this is the case, the UAS needs to search for a 1536 "gr" parameter in the hi-entry prior to the last hi-entry. If there 1537 is a GRUU, the URI will always be prior to the last hi-entry as GRUU 1538 does not allow multiple instance to be mapped to a contact address. 1540 Alice Example.com John 1541 | | REGISTER F1 | 1542 | |<--------------------| 1543 | | 200 OK F2 | 1544 | |-------------------->| 1545 | INVITE F3 | | 1546 |-------------------->| | 1547 | | INVITE F4 | 1548 | |-------------------->| 1549 * Rest of flow not shown * 1551 F1 REGISTER John -> Example.com 1553 REGISTER sip:example.com SIP/2.0 1554 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1555 Max-Forwards: 70 1556 From: John ;tag=a73kszlfl 1557 Supported: gruu 1558 To: John 1559 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1560 CSeq: 1 REGISTER 1561 Contact: ;+sip.instance=\ 1562 1563 Content-Length: 0 1565 [SDP Not Shown] 1567 F2 200 OK Example.com -> John 1569 SIP/2.0 200 OK 1570 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1571 From: John ;tag=a73kszlfl 1572 To: John ;tag=b88sn 1573 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1574 CSeq: 1 REGISTER 1575 Contact: ;\ 1576 pub-gruu="sip:john@example.com;\ 1577 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1578 temp-gruu=\ 1579 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1580 +sip.instance=\ 1581 "";\ 1582 expires=3600 1583 Content-Length: 0 1585 [SDP Not Shown] 1587 Assuming Alice has a knowledge of a gruu either through 1588 prior communication or through other means such as presence 1589 places a call to John's gruu. 1591 F3 INVITE Alice -> Example.com 1593 INVITE sip:john@example.com;\ 1594 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 1595 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1596 Max-Forward: 70 1597 From: Alice ;tag=kkaz- 1598 To: 1600 Supported: gruu, histinfo 1601 Call-Id: 12345600@example.com 1602 CSeq: 1 INVITE 1603 History-Info: ;index=1 1605 Contact: Alice 1606 Content-Length: 1608 [SDP Not Shown] 1610 F4 INVITE Example.com -> John 1612 INVITE sip:john@192.0.2.1 SIP/2.0 1613 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1614 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1615 Max-Forward: 69 1616 From: Alice ;tag=kkaz- 1617 To: 1620 Supported: gruu, histinfo 1621 Call-Id: 12345600@example.com 1622 CSeq: 1 INVITE 1623 Record-Route: 1624 History-Info: ;index=1 1626 History-Info: ;index=1.1;rc=1 1627 Contact: Alice 1628 Content-Type: application/sdp 1629 Content-Length: 1631 [SDP Not Shown] 1633 Figure 8: GRUU Example 1635 By analyzing the entry referenced by the entry with the last "rc", 1636 one can realize that the URI used to reach the device was GRUU by 1637 finding the "gr" parameter. 1639 3.9. Limited Use Address 1641 A limited use address is a SIP URI that is minted on-demand, and 1642 passed out to a small number (usually one) remote correspondent. 1643 Incoming calls targeted to that limited use address are accepted as 1644 long as the UA still desires communications from the remote target. 1645 Should they no longer wish to be bothered by that remote 1646 correspondent, the URI is invalidated so that future requests 1647 targeted to it are rejected. 1649 Limited use addresses are used in battling voice spam [RFC5039]. The 1650 easiest way to provide them would be for a UA to be able to take its 1651 AOR, and "mint" a limited use address by appending additional 1652 parameters to the URI. It could then give out the URI to a 1653 particular correspondent, and remember that URI locally. When an 1654 incoming call arrives, the UAS would examine the parameter in the URI 1655 and determine whether or not the call should be accepted. 1656 Alternatively, the UA could push authorization rules into the 1657 network, so that it need not even see incoming requests that are to 1658 be rejected. 1660 This approach, especially when executed on the UA, requires that 1661 parameters attached to the AOR, but not used by the home proxy in 1662 processing the request, will survive the translation at the home 1663 proxy and be presented to the UA. This will not be the case with the 1664 logic in RFC 3261, since the Request-URI is replaced by the 1665 registered contact, and any such parameters are lost. 1667 Using the history-info John's UA can easily see if the call was 1668 addressed to its AoR, GRUU or a temp-gruu and treat the call 1669 accordingly by looking for a "gr" tag in the hi-entry prior to the 1670 last hi-entry. 1672 Alice Example.com John 1673 | | REGISTER F1 | 1674 | |<--------------------| 1675 | | 200 OK F2 | 1676 | |-------------------->| 1677 | INVITE F3 | | 1678 |-------------------->| | 1679 | | INVITE F4 | 1680 | |-------------------->| 1681 * Rest of flow not shown * 1683 F1 REGISTER John -> Example.com 1685 REGISTER sip:example.com SIP/2.0 1686 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1687 Max-Forwards: 70 1688 From: John ;tag=a73kszlfl 1689 Supported: gruu 1690 To: John 1691 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1692 CSeq: 1 REGISTER 1693 Contact: ;\ 1694 +sip.instance="" 1695 Content-Length: 0 1697 F2 200 OK Example.com -> John 1699 SIP/2.0 200 OK 1700 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1701 From: John ;tag=a73kszlfl 1702 To: John ;tag=b88sn 1703 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1704 CSeq: 1 REGISTER 1705 Contact: ;\ 1706 pub-gruu="sip:john@example.com;\ 1707 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1708 temp-gruu=\ 1709 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1710 +sip.instance="";\ 1711 expires=3600 1712 Content-Length: 0 1713 Assuming Alice has a knowledge of a temp-gruu, she places a 1714 call to the temp-gruu. 1716 F3 INVITE Alice -> Example.com 1718 INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1719 gr SIP/2.0 1720 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1721 Max-Forward: 70 1722 From: Alice ;tag=kkaz- 1723 To: 1725 Supported: gruu, histinfo 1726 Call-Id: 12345600@example.com 1727 CSeq: 1 INVITE 1728 History-Info: \ 1729 \ 1730 ;index=1 1731 Contact: Alice 1732 Content-Length: 1734 F4 INVITE Example.com -> John 1736 INVITE sip:john@192.0.2.1 SIP/2.0 1737 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 1738 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1739 Max-Forward: 69 1740 From: Alice ;tag=kkaz- 1741 To: 1743 Supported: gruu, histinfo 1744 Call-Id: 12345600@example.com 1745 CSeq: 1 INVITE 1746 Record-Route: 1747 History-Info: \ 1748 \ 1749 ;index=1 1750 History-Info: ;index=1.1;rc=1 1751 Contact: Alice 1752 Content-Type: application/sdp 1753 Content-Length: 1755 Figure 9: Limited Use Address Example 1757 By analyzing the entry referenced by the entry with the last "rc", 1758 one can realize that the URI used to reach the device was GRUU by 1759 finding the "gr" parameter. 1761 3.10. Service Invocation 1763 Several SIP specifications have been developed which make use of 1764 complex URIs to address services within the network rather than 1765 subscribers. The URIs are complex because they contain numerous 1766 parameters that control the behavior of the service. Examples of 1767 this include the specification which first introduced the concept, 1768 [RFC3087], control of network announcements and IVR with SIP URI 1769 [RFC4240], and control of voicemail access with SIP URI [RFC4458]. 1771 A common problem with all of these mechanisms is that once a proxy 1772 has decided to rewrite the Request-URI to point to the service, it 1773 cannot be sure that the Request-URI will not be destroyed by a 1774 downstream proxy which decides to forward the request in some way, 1775 and does so by rewriting the Request-URI. 1777 Section on voicemail (Section 3.6) shows how History-Info can be used 1778 to invocate a service. 1780 3.11. Toll Free Number 1782 Toll free numbers, also known as 800 or 8xx numbers in the United 1783 States, are telephone numbers that are free for users to call. 1785 In the telephone network, toll free numbers are just aliases to 1786 actual numbers which are used for routing of the call. In order to 1787 process the call in the PSTN, a switch will perform a query (using a 1788 protocol called TCAP), which will return either a phone number or the 1789 identity of a carrier which can handle the call. 1791 There has been recent work on allowing such PSTN translation services 1792 to be accessed by SIP proxy servers through IP querying mechanisms. 1793 ENUM, for example [RFC3761] has already been proposed as a mechanism 1794 for performing Local Number Portability (LNP) queries [RFC4769], and 1795 recently been proposed for performing calling name queries 1796 [I-D.ietf-enum-cnam]. Using it for 8xx number translations is a 1797 logical next-step. 1799 Once such a translation has been performed, the call needs to be 1800 routed towards the target of the request. Normally, this would 1801 happen by selecting a PSTN gateway which is a good route towards the 1802 translated number. However, one can imagine all-IP systems where the 1803 8xx numbers are SIP endpoints on an IP network, in which case the 1804 translation of the 8xx number would actually be a SIP URI and not a 1805 phone number. Assuming for the moment it is a PSTN connected entity, 1806 the call would be routed towards a PSTN gateway. Proper treatment of 1807 the call in the PSTN (and in particular, correct reconciliation of 1808 billing records) requires that the call be marked with both the 1809 original 8xx number AND the target number for the call. However, in 1810 our example here, since the translation was performed by a SIP proxy 1811 upstream from the gateway, the original 8xx number would have been 1812 lost, and the call will not interwork properly with the PSTN. 1813 History-info would come in play here to assure original 8xx number is 1814 not lost. 1816 Furthermore, even if the translation of the 8xx number was a SIP URI, 1817 the enterprise or user who utilize the 8xx service would like to know 1818 whether the call came in via 8xx number in order to treat the call 1819 differently (for example to play a special announcement..) but if the 1820 original R-URI is lost through translation, there is no way to tell 1821 if the call came in via 8xx number. 1823 Similar problems arise with other "special" numbers and services used 1824 in the PSTN, such as operator services, pay/premium numbers (9xx 1825 numbers in the U.S), and short service codes such as 311. 1827 To find the service number, the UAS can extract the hi-entry whose 1828 index matches the value of the first hi-entry with an "mp" tag. 1829 Technically the call can be forwarded to these "special" numbers from 1830 non "special" numbers, however that is uncommon based on the way 1831 these services authorize translations. 1833 This example call-flow shows an UAC that does not support history- 1834 info. 1836 Alice Toll Free Service Atlanta.com John 1837 | | | | 1838 | INVITE F1 | | | 1839 |--------------->| INVITE F2 | | 1840 | |------------->| | 1841 | | | INVITE F3 | 1842 | | |------------------>| 1844 * Rest of flow not shown * 1846 F1: INVITE 192.0.2.1 -> Toll Free Service 1848 INVITE sip:+18005551002@example.com;user=phone SIP/2.0 1849 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1850 From: Alice ;tag=9fxced76sl 1851 To: 1852 Call-ID: c3x842276298220188511 1853 CSeq: 1 INVITE 1854 Max-Forwards: 70 1855 Contact: 1856 Content-Type: application/sdp 1857 Content-Length: 1859 [SDP Not Shown] 1861 F2: INVITE Toll Free Service -> Atlanta.com 1863 INVITE sip:+15555551002@atlanta.com SIP/2.0 1864 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1865 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1866 From: Alice ;tag=9fxced76sl 1867 To: 1868 Call-ID: c3x842276298220188511 1869 CSeq: 1 INVITE 1870 Max-Forwards: 69 1871 Supported: histinfo 1872 History-Info: ;index=1 1873 History-Info: ;index=1.1;mp=1 1874 Contact: 1875 Content-Type: application/sdp 1876 Content-Length: 1878 [SDP Not Shown] 1880 F3: INVITE Atlanta.com -> John 1882 INVITE sip:john@198.51.100.2 SIP/2.0 1883 Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g 1884 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1885 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1886 From: Alice ;tag=9fxced76sl 1887 To: 1888 Call-ID: c3x842276298220188511 1889 CSeq: 1 INVITE 1890 Max-Forwards: 68 1891 Supported: histinfo 1892 History-Info: ;index=1 1893 History-Info: ;index=1.1;mp=1 1894 History-Info: ;index=1.1.1;rc=1.1 1895 History-Info: ;index=1.1.1.1;rc=1.1.1 1896 Contact: 1897 Content-Type: application/sdp 1898 Content-Length: 1900 [SDP Not Shown] 1902 Figure 10: Service Number Example 1904 4. Security Considerations 1906 The security considerations for the History-Info header field are 1907 specified in [I-D.ietf-sipcore-rfc4244bis]. 1909 5. IANA Considerations 1911 This document has no IANA considerations. 1913 5.1. Acknowledgements 1915 Jonathan Rosenberg et al produced the document that provided 1916 additional use cases precipitating the requirement for the new 1917 "target" parameter in the History-Info header field and the new SIP/ 1918 SIPS URI parameter. Hadriel Kaplan provided some comments. 1920 Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley and 1921 Marianne Mohali provided extensive review and comments on call-flow, 1922 message examples and text. 1924 6. Informative References 1926 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1927 A., Peterson, J., Sparks, R., Handley, M., and E. 1928 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1929 June 2002. 1931 [RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason 1932 Header Field for the Session Initiation Protocol (SIP)", 1933 RFC 3326, December 2002. 1935 [RFC3323] Peterson, J., "A Privacy Mechanism for the Session 1936 Initiation Protocol (SIP)", RFC 3323, November 2002. 1938 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1939 Requirement Levels", BCP 14, RFC 2119, March 1997. 1941 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1942 (TLS) Protocol Version 1.2", RFC 5246, August 2008. 1944 [RFC4244] Barnes, M., "An Extension to the Session Initiation 1945 Protocol (SIP) for Request History Information", RFC 4244, 1946 November 2005. 1948 [RFC5627] Rosenberg, J., "Obtaining and Using Globally Routable User 1949 Agent URIs (GRUUs) in the Session Initiation Protocol 1950 (SIP)", RFC 5627, October 2009. 1952 [RFC5630] Audet, F., "The Use of the SIPS URI Scheme in the Session 1953 Initiation Protocol (SIP)", RFC 5630, October 2009. 1955 [RFC3087] Campbell, B. and R. Sparks, "Control of Service Context 1956 using SIP Request-URI", RFC 3087, April 2001. 1958 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 1959 Media Services with SIP", RFC 4240, December 2005. 1961 [RFC5039] Rosenberg, J. and C. Jennings, "The Session Initiation 1962 Protocol (SIP) and Spam", RFC 5039, January 2008. 1964 [RFC4458] Jennings, C., Audet, F., and J. Elwell, "Session 1965 Initiation Protocol (SIP) URIs for Applications such as 1966 Voicemail and Interactive Voice Response (IVR)", RFC 4458, 1967 April 2006. 1969 [RFC3761] Faltstrom, P. and M. Mealling, "The E.164 to Uniform 1970 Resource Identifiers (URI) Dynamic Delegation Discovery 1971 System (DDDS) Application (ENUM)", RFC 3761, April 2004. 1973 [RFC4769] Livingood, J. and R. Shockey, "IANA Registration for an 1974 Enumservice Containing Public Switched Telephone Network 1975 (PSTN) Signaling Information", RFC 4769, November 2006. 1977 [RFC3969] Camarillo, G., "The Internet Assigned Number Authority 1978 (IANA) Uniform Resource Identifier (URI) Parameter 1979 Registry for the Session Initiation Protocol (SIP)", 1980 BCP 99, RFC 3969, December 2004. 1982 [I-D.ietf-enum-cnam] 1983 Shockey, R., "IANA Registration for an Enumservice Calling 1984 Name Delivery (CNAM) Information and IANA Registration for 1985 URI type 'pstndata'", draft-ietf-enum-cnam-08 (work in 1986 progress), September 2008. 1988 [I-D.ietf-sipcore-rfc4244bis] 1989 Barnes, M., Audet, F., Schubert, S., Elburg, H., and C. 1990 Holmberg, "An Extension to the Session Initiation Protocol 1991 (SIP) for Request History Information", 1992 draft-ietf-sipcore-rfc4244bis-11 (work in progress), 1993 January 2013. 1995 Authors' Addresses 1997 Mary Barnes 1998 Polycom 1999 TX 2000 US 2002 Email: mary.ietf.barnes@gmail.com 2004 Francois Audet 2005 Skype 2007 Email: francois.audet@skype.net 2009 Shida Schubert 2010 NTT 2011 Tokyo 2012 Japan 2014 Email: shida@ntt-at.com 2016 Hans Erik van Elburg 2017 Detecon International Gmbh 2018 Oberkasseler str. 2 2019 Bonn, 2020 Germany 2022 Email: ietf.hanserik@gmail.com 2024 Christer Holmberg 2025 Ericsson 2026 Hirsalantie 11, Jorvas 2027 Finland 2029 Email: christer.holmberg@ericsson.com