idnits 2.17.1 draft-ietf-sipcore-rfc4244bis-callflows-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 139 has weird spacing: '... Alice exam...' == Line 408 has weird spacing: '... Alice atlan...' == Line 630 has weird spacing: '... Alice atla...' -- The document date (Nov 08, 2013) is 3812 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'I-D.ietf-enum-cnam' is defined on line 2020, but no explicit reference was found in the text Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 2 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: May 12, 2014 Skype 6 S. Schubert 7 NTT 8 H. van Elburg 9 Detecon International Gmbh 10 C. Holmberg 11 Ericsson 12 Nov 08, 2013 14 Session Initiation Protocol (SIP) History-Info Header Call Flow Examples 15 draft-ietf-sipcore-rfc4244bis-callflows-08.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 May 12, 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 . . . . . . . . 16 65 3.4. Automatic Call Distribution . . . . . . . . . . . . . . . 20 66 3.5. Determining the Alias used. . . . . . . . . . . . . . . . 25 67 3.6. PBX Voicemail Example . . . . . . . . . . . . . . . . . . 28 68 3.7. Consumer Voicemail Example . . . . . . . . . . . . . . . . 33 69 3.8. GRUU . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 70 3.9. Limited Use Address . . . . . . . . . . . . . . . . . . . 40 71 3.10. Service Invocation . . . . . . . . . . . . . . . . . . . . 43 72 3.11. Toll Free Number . . . . . . . . . . . . . . . . . . . . . 43 73 4. Security Considerations . . . . . . . . . . . . . . . . . . . 45 74 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 75 5.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 46 76 6. Informative References . . . . . . . . . . . . . . . . . . . . 46 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 47 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 "address-of-record (AOR)" are used consistent with the 95 terminology in [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 141 | | | | | 142 | INVITE F1 | | | | 143 |----------->| INVITE F2 | | | 144 | |----------------->| | | 145 | 100 Trying F3 | | | 146 |<-----------| 302 Move Temporarily F4 | | 147 | |<-----------------| | | 148 | | ACK F5 | | | 149 | |----------------->| | | 150 | | INVITE F6 | | 151 | |-------------------------->| | 152 | | 180 Ringing F7 | | 153 | |<--------------------------| | 154 | 180 Ringing F8 | | 155 |<-----------| retransmit INVITE | | 156 | |-------------------------->| | 157 | | ( timeout ) | | 158 | | INVITE F9 | 159 | |----------------------------------->| 160 | | 100 Trying F10 | 161 | |<-----------------------------------| 162 | | 486 Busy Here F11 | 163 | |<-----------------------------------| 164 | 486 Busy Here F12 | 165 |<-----------| ACK F13 | 166 | |----------------------------------->| 167 | ACK F14 | | 168 |----------->| | 170 Figure 1: Example with Sequential Forking 172 Message Details 174 F1 INVITE alice -> example.com 176 INVITE sip:bob@example.com SIP/2.0 177 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 178 Max-Forwards: 70 179 From: Alice ;tag=sr3dds 180 To: Bob 181 Supported: histinfo 182 Call-Id: 12345600@example.com 183 CSeq: 1 INVITE 184 History-Info: ;index=1 185 Contact: Alice 186 Content-Type: application/sdp 187 Content-Length: 188 190 F2 INVITE example.com -> Bob 192 INVITE sip:bob@192.0.2.4 SIP/2.0 193 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 194 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 195 Max-Forwards: 69 196 From: Alice ;tag=sr3dds 197 To: Bob 198 Supported: histinfo 199 Call-Id: 12345600@example.com 200 CSeq: 1 INVITE 201 Record-Route: 202 History-Info: ;index=1 203 History-Info: ;index=1.1;rc=1 204 Contact: Alice 205 Content-Type: application/sdp 206 Content-Length: 207 208 F3 100 Trying example.com -> alice 210 SIP/2.0 100 Trying 211 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 212 From: Alice ;tag=sr3dds 213 To: Bob 214 Supported: histinfo 215 Call-Id: 12345600@example.com 216 CSeq: 1 INVITE 217 Content-Length: 0 219 F4 302 Moved Temporarily Bob -> example.com 221 SIP/2.0 302 Moved Temporarily 222 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 223 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 224 From: Alice ;tag=sr3dds 225 To: Bob ;tag=es43sd 226 Supported: histinfo 227 Call-Id: 12345600@example.com 228 CSeq: 1 INVITE 229 History-Info: ;index=1 230 History-Info: ;index=1.1;rc=1 231 Contact: ;mp=1 232 Content-Length: 0 234 F5 ACK example.com -> Bob 236 ACK sip:bob@example.com SIP/2.0 237 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st 238 Max-Forwards: 70 239 From: Alice ;tag=sr3dds 240 To: Bob ;tag=es43sd 241 Call-Id: 12345600@example.com 242 CSeq: 1 ACK 243 Content-Length: 0 244 F6 INVITE example.com -> office 246 INVITE sip:office@192.0.2.5 SIP/2.0 247 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 248 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 249 Max-Forwards: 69 250 From: Alice ;tag=sr3dds 251 To: Bob 252 Supported: histinfo 253 Call-Id: 12345600@example.com 254 Record-Route: 255 History-Info: ;index=1 256 History-Info: ;\ 257 index=1.1;rc=1 258 History-Info: ;index=1.2;mp=1 259 History-Info: ;index=1.2.1;rc=1.2 260 CSeq: 1 INVITE 261 Contact: Alice 262 Content-Type: application/sdp 263 Content-Length: 264 266 F7 180 Ringing office -> example.com 268 SIP/2.0 180 Ringing 269 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st 270 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 271 From: Alice ;tag=sr3dds 272 To: Bob ;tag=53rdds 273 Supported: histinfo 274 Call-ID: 12345600@example.com 275 Record-Route: 276 History-Info: ;index=1 277 History-Info: ;\ 278 index=1.1;rc=1 279 History-Info: ;index=1.2;mp=1 280 History-Info: ;index=1.2.1;rc=1.2 281 CSeq: 1 INVITE 282 Contact: Office 283 Content-Length: 0 284 F8 180 Ringing example.com -> alice 286 SIP/2.0 180 Ringing 287 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 288 From: Alice ;tag=sr3dds 289 To: Bob ;tag=53rdds 290 Supported: histinfo 291 Call-Id: 12345600@example.com 292 Record-Route: 293 History-Info: ;index=1 294 History-Info: ;\ 295 index=1.1;rc=1 296 History-Info: ;index=1.2;mp=1 297 History-Info: ;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-Forwards: 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: ;\ 317 index=1.2;mp=1 318 History-Info: ;\ 319 index=1.2.1;rc=1.2 320 History-Info: ;index=1.3;mp=1 321 History-Info: ;index=1.3.1;rc=1.3 322 CSeq: 1 INVITE 323 Contact: Alice 324 Content-Type: application/sdp 325 Content-Length: 326 327 F10 100 Trying home -> example.com 329 SIP/2.0 100 Trying 330 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 331 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 332 From: Alice ;tag=sr3dds 333 To: Bob 334 Call-Id: 12345600@example.com 335 CSeq: 1 INVITE 336 Content-Length: 0 338 F11 486 Busy Here home -> example.com 340 SIP/2.0 486 Busy Here 341 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 342 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 343 From: Alice ;tag=sr3dds 344 To: Bob ;tag=55rdds 345 Call-Id: 12345600@example.com 346 History-Info: ;index=1 347 History-Info: ;\ 348 index=1.1;rc=1 349 History-Info: ;\ 350 index=1.2;mp=1 351 History-Info: ;\ 352 index=1.2.1;rc=1.2 353 History-Info: ;index=1.3;mp=1 354 History-Info: ;index=1.3.1;rc=1.3 355 CSeq: 1 INVITE 356 Content-Length: 0 357 F12 486 Busy Here example.com -> alice 359 SIP/2.0 486 Busy Here 360 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 361 From: Alice ;tag=sr3dds 362 To: Bob ;tag=55rdds 363 Call-Id: 12345600@example.com 364 History-Info: ;index=1 365 History-Info: ;\ 366 index=1.1;rc=1 367 History-Info: ;\ 368 index=1.2;mp=1 369 History-Info: ;\ 370 index=1.2.1;rc=1.2 371 History-Info: ;index=1.3;mp=1 372 History-Info: ;index=1.3.1;rc=1.3 373 CSeq: 1 INVITE 374 Content-Length: 0 376 F13 ACK example.com -> home 378 ACK sip:home@192.0.2.6 SIP/2.0 379 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st 380 Max-Forwards: 70 381 From: Alice ;tag=sr3dds 382 To: Bob ;tag=55rdds 383 Call-Id: 12345600@example.com 384 CSeq: 1 ACK 385 Content-Length: 0 387 F14 ACK alice -> example.com 389 ACK sip:bob@example.com SIP/2.0 390 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 391 Max-Forwards: 70 392 From: Alice ;tag=sr3dds 393 To: Bob ;tag=55rdds 394 Call-Id: 12345600@example.com 395 Route: 396 CSeq: 1 ACK 397 Content-Length: 0 399 3.2. History-Info with Privacy Header Field 401 This is an example of the use of the Privacy header field with a 402 value of "history" added by an intermediary. The intermediary 403 responsible for the biloxi.example.com domain adds a Privacy header 404 field with a value of "history" indicating that all the History-Info 405 header field information is anonymized outside the biloxi.example.com 406 domain. 408 Alice atlanta.example.com biloxi.example.com Bob Work Bob Home 410 | | | | | 411 | INVITE F1 | | | | 412 |------------>| | | | 413 | | | | | 414 | | INVITE F2 | | | 415 | |--------------->| | | 416 | | | | | 417 | | | INVITE F3 | | 418 | | |---------------->| | 419 | | |302 Move Temporarily F4 | 420 | | |<----------------| | 421 | | | ACK F5 | | 422 | | |---------------->| | 423 | | | | | 424 | | | INVITE F6 | | 425 | | |--------------------------->| 426 | | | 200 F7 | | 427 | | |<---------------------------| 428 | | | | | 429 | | 200 F8 | | | 430 | |<---------------| | | 431 | | | | | 432 | 200 F9 | | | | 433 |<------------| | | | 434 | | | | | 435 | | ACK | | | 436 |---------------------------------------------------------->| 437 | | | | | 439 Figure 2: Example with Privacy Header Fields 441 Message Details 443 F1 INVITE alice -> atlanta.example.com 445 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 446 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 447 Max-Forwards: 70 448 From: Alice ;tag=22 449 To: Bob 450 Supported: histinfo 451 Privacy: history 452 Call-Id: 12345600@atlanta.example.com 453 CSeq: 1 INVITE 454 History-Info: ;index=1 455 Contact: Alice 456 Content-Type: application/sdp 457 Content-Length: 458 460 F2 INVITE atlanta.example.com -> biloxi.example.com 462 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 463 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 464 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 465 Max-Forwards: 69 466 From: Alice ;tag=22 467 To: Bob 468 Supported: histinfo 469 Call-Id: 12345600@atlanta.example.com 470 CSeq: 1 INVITE 471 History-Info: ;index=1 472 History-Info: ;index=1.1 473 Contact: Alice 474 Content-Type: application/sdp 475 Content-Length: 476 477 F3 INVITE biloxi.example.com -> Bob Work 479 INVITE sip:bob@192.0.1.11 SIP/2.0 480 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 481 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 482 received=192.0.2.3 483 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 484 Max-Forwards: 68 485 From: Alice ;tag=22 486 To: Bob 487 Privacy: history 488 Supported: histinfo 489 Call-Id: 12345600@atlanta.example.com 490 CSeq: 1 INVITE 491 History-Info: ;index=1 492 History-Info: ;index=1.1 493 History-Info: ;index=1.1.1;rc=1.1 494 Contact: Alice 495 Content-Type: application/sdp 496 Content-Length: 497 499 F4 302 Moved Temporarily Bob Work -> biloxi.example.com 501 SIP/2.0 302 Moved Temporarily 502 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33;\ 503 received=192.0.2.102 504 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 505 received=192.0.2.3 506 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 507 From: Alice ;tag=22 508 To: Bob ;tag=11 509 Privacy: history 510 Supported: histinfo 511 Call-Id: 12345600@atlanta.example.com 512 CSeq: 1 INVITE 513 History-Info: ;index=1 514 History-Info: ;index=1.1 515 History-Info: ;index=1.1.1;rc=1.1 516 Contact: Bob Home 517 Content-Type: application/sdp 518 Content-Length: 520 521 F5 ACK biloxi.example.com -> Bob Work 523 ACK sip:bob@192.0.1.11 SIP/2.0 524 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 525 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 526 received=192.0.2.3 527 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 528 Max-Forwards: 68 529 From: Alice ;tag=22 530 To: Bob ;tag=11 531 Call-Id: 12345600@atlanta.example.com 532 CSeq: 1 ACK 533 Content-Length: 534 536 F6 INVITE biloxi.example.com -> Bob Home 538 INVITE sip:bob@192.0.1.15 SIP/2.0 539 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32 540 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 541 received=192.0.2.3 542 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 543 Max-Forwards: 68 544 From: Alice ;tag=22 545 To: Bob 546 Privacy: history 547 Supported: histinfo 548 Call-Id: 12345600@atlanta.example.com 549 CSeq: 1 INVITE 550 History-Info: ;index=1 551 History-Info: ;index=1.1 552 History-Info: ;\ 553 index=1.1.1;rc=1 554 History-Info: ;index=1.1.2 555 Contact: Alice 556 Content-Type: application/sdp 557 Content-Length: 558 559 F7 200 OK Bob -> biloxi.example.com 561 SIP/2.0 200 OK 562 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 563 received=192.0.2.101 564 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 565 received=192.0.2.3 566 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 567 From: Alice ;tag=22 568 To: Bob ;tag=33 569 Privacy: history 570 Supported: histinfo 571 Call-Id: 12345600@atlanta.example.com 572 CSeq: 1 INVITE 573 History-Info: ;index=1 574 History-Info: ;index=1.1 575 History-Info: ;\ 576 index=1.1.1;rc=1 577 History-Info: ;index=1.1.2;rc=1.1 578 Content-Type: application/sdp 579 Content-Length: 580 582 F8 200 OK biloxi.example.com -> atlanta.example.com 584 SIP/2.0 200 OK 585 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 586 received=192.0.2.3 587 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 588 From: Alice ;tag=22 589 To: Bob ;tag=33 590 Privacy: history 591 Supported: histinfo 592 Call-Id: 12345600@atlanta.example.com 593 CSeq: 1 INVITE 594 History-Info: ;index=1 595 History-Info: ;index=1.1 596 History-Info: ;index=1.1.1;rc=1 597 History-Info: ;index=1.1.2;rc=1.1 598 Contact: Bob 599 Content-Type: application/sdp 600 Content-Length: 601 602 F9 200 OK atlanta.example.com -> Alice 604 SIP/2.0 200 OK 605 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 606 From: Alice ;tag=22 607 To: Bob ;tag=33 608 Privacy: history 609 Supported: histinfo 610 Call-Id: 12345600@atlanta.example.com 611 CSeq: 1 INVITE 612 History-Info: ;index=1 613 History-Info: ;index=1.1 614 History-Info: ;index=1.1.1;rc=1 615 History-Info: ;index=1.1.2;rc=1.1 616 Contact: Bob 617 Content-Type: application/sdp 618 Content-Length: 619 621 3.3. Privacy for a Specific History-Info Entry 623 This example provides a basic call scenario similar to Section 3.2, 624 however, due to local policy at sip:biloxi.example.com, only the 625 final hi-entry in the History-Info, which is Bob's local URI, 626 contains a privacy header field with a priv-value of "history", thus 627 providing Alice with some information about the history of the 628 request, but anonymizing Bob's local URI. 630 Alice atlanta.example.com biloxi.example.com Bob 631 | | | | 632 | INVITE F1 | | | 633 |--------------->| | | 634 | | | | 635 | | INVITE F2 | | 636 | |--------------->| | 637 | | | | 638 | | | INVITE F3 | 639 | | |--------------->| 640 | | | | 641 | | | 200 F4 | 642 | | |<---------------| 643 | | | | 644 | | 200 F5 | | 645 | |<---------------| | 646 | | | | 647 | 200 F6 | | | 648 |<---------------| | | 649 | | | | 650 | | ACK | | 651 |------------------------------------------------->| 652 | | | | 654 Figure 3: Example with Privacy Header Field for Specific URI 656 Message Details 658 F1 INVITE alice -> atlanta.example.com 660 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 661 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 662 Max-Forwards: 70 663 From: Alice ;tag=22 664 To: Bob 665 Supported: histinfo 666 Call-Id: 12345600@atlanta.example.com 667 CSeq: 1 INVITE 668 History-Info: ;index=1 669 Contact: Alice 670 Content-Type: application/sdp 671 Content-Length: 672 673 F2 INVITE atlanta.example.com -> biloxi.example.com 675 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 676 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 677 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 678 Max-Forwards: 69 679 From: Alice ;tag=22 680 To: Bob 681 Supported: histinfo 682 Call-Id: 12345600@atlanta.example.com 683 CSeq: 1 INVITE 684 History-Info: ;index=1 685 History-Info: ;index=1.1;np=1 686 Contact: Alice 687 Content-Type: application/sdp 688 Content-Length: 689 691 F3 INVITE biloxi.example.com -> Bob 693 INVITE sip:bob@192.0.1.11 SIP/2.0 694 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset 695 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 696 received=192.0.2.101 697 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 698 Max-Forwards: 68 699 From: Alice ;tag=22 700 To: Bob 701 Supported: histinfo 702 Call-Id: 12345600@atlanta.example.com 703 CSeq: 1 INVITE 704 History-Info: ;index=1 705 History-Info: ;index=1.1;np=1 706 History-Info: ;index=1.1.1;rc=1.1 707 Contact: Alice 708 Content-Type: application/sdp 709 Content-Length: 710 711 F4 200 OK Bob -> biloxi.example.com 713 SIP/2.0 200 OK 714 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\ 715 received=192.0.2.5 716 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 717 received=192.0.2.101 718 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 719 From: Alice ;tag=22 720 To: Bob ;tag=33 721 Supported: histinfo 722 Call-Id: 12345600@atlanta.example.com 723 CSeq: 1 INVITE 724 History-Info: ;index=1 725 History-Info: ;index=1.1;np=1 726 History-Info: ;index=1.1.1;rc=1.1 727 Contact: Bob 728 Content-Type: application/sdp 729 Content-Length: 730 732 F5 200 OK biloxi.example.com -> atlanta.example.com 734 SIP/2.0 200 OK 735 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\ 736 received=192.0.2.101 737 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 738 From: Alice ;tag=22 739 To: Bob ;tag=33 740 Supported: histinfo 741 Call-Id: 12345600@atlanta.example.com 742 CSeq: 1 INVITE 743 History-Info: ;index=1 744 History-Info: ;index=1.1;np=1 745 History-Info: ;index=1.1.1;rc=1.1 746 Contact: Bob 747 Content-Type: application/sdp 748 Content-Length: 749 750 F6 200 OK atlanta.example.com -> Alice 752 SIP/2.0 200 OK 753 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 754 From: Alice ;tag=22 755 To: Bob ;tag=33 756 Supported: histinfo 757 Call-Id: 12345600@atlanta.example.com 758 CSeq: 1 INVITE 759 History-Info: ;index=1 760 History-Info: ;index=1.1;np=1 761 History-Info: ;index=1.1.1;rc=1.1 762 Contact: Bob 763 Content-Type: application/sdp 764 Content-Length: 765 767 3.4. Automatic Call Distribution 769 This scenario highlights an example of an Automatic Call Distribution 770 service, where the agents are divided into groups based upon the type 771 of customers they handle. In this example, the Gold customers are 772 given higher priority than Silver customers, so a Gold call would get 773 serviced even if all the agents servicing the Gold group were busy, 774 by retargeting the request to the Silver Group for delivery to an 775 agent. Upon receipt of the call at the agent assigned to handle the 776 incoming call, based upon the History-Info header in the message, the 777 application at the agent can provide an indication that this is a 778 Gold call by extracting the hi-entry associated with the incoming 779 request which is determined by locating the hi-entry whose index is 780 reflected in the first hi-entry with an hi-target of "mp". In the 781 example this would be the hi-entry referenced by the value of the 782 first "mp" header field parameter -i.e., the hi-entry containing an 783 index of "1". An application can also determine how many groups from 784 which the call may have overflowed before reaching the agent, etc. 785 and present the information to the agent so that the call can be 786 handled appropriately by the agent - i.e., "I'm so sorry for the 787 delay, blah, blah, blah..." 789 For scenarios whereby calls might overflow from the Silver to the 790 Gold, clearly the alternate group identification, internal routing, 791 or actual agent that handles the call should not be sent to UA1. 792 Thus, for this scenario, one would expect that the Proxy would not 793 support the sending of the History-Info in the response, even if 794 requested by Alice or the proxy could anonymize the Silver related 795 hi-entries by adding privacy in the Silver hi-entries. 797 As with the other examples, this is not a complete prescription of 798 how one would do this type of service but an example of a subset of 799 processing that might be associated with such a service. In 800 addition, this example is not addressing any aspects of Agent 801 availability resulting in the call being sent to an agent in another 802 group, which might also be done via a SIP interface. 804 Alice example.com Gold Silver Agent 806 | | | | | 807 | INVITE F1 | | | | 808 |------------->| | | | 809 | | | | | 810 | | INVITE F2 | | | 811 | |------------->| | | 812 | | | | | 813 | | 302 Moved Temporarily F3 | | 814 | |<-------------| | | 815 | | | | | 816 | | ACK | | | 817 | |------------->| | | 818 | | | | | 819 | | INVITE F4 | | | 820 | |--------------------------->| | 821 | | | | | 822 | | | | INVITE F5 | 823 | | | |----------->| 824 | | | | | 825 | | | | 200 OK F6 | 826 | | | |<-----------| 827 | | | | | 828 | | 200 OK F7 | | 829 | |<---------------------------| | 830 | | | | | 831 | 200 OK F8 | | | | 832 |<-------------| | | | 833 | | | | | 834 | ACK F9 | 835 |------------------------------------------------------->| 837 F1 INVITE Alice -> Example.com 839 INVITE sip:Gold@example.com SIP/2.0 840 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 841 Max-Forwards: 70 842 From: Alice ;tag=1235 843 To: Gold Member Assistance 844 Supported: histinfo 845 Call-Id: 12345600@example.com 846 CSeq: 1 INVITE 847 History-Info: ;index=1 848 Contact: Alice 849 Content-Type: application/sdp 850 Content-Length: 852 [SDP Not Shown] 854 F2 INVITE Example.com -> Gold.Example.com 856 INVITE sip:Gold@gold.example.com SIP/2.0 857 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 858 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 859 Max-Forwards: 69 860 From: Alice ;tag=1235 861 To: Gold Member Assistance 862 Supported: histinfo 863 Call-Id: 12345600@example.com 864 CSeq: 1 INVITE 865 History-Info: ;index=1 866 History-Info: ;rc=1;index=1.1 867 Contact: Alice 868 Content-Type: application/sdp 869 Content-Length: 871 [SDP Not Shown] 873 F3 302 Moved Temporarily Gold.Example.com -> Example.com 875 SIP/2.0 302 Moved Temporarily 876 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 877 received=192.0.2.101 878 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 879 From: Alice ;tag=1235 880 To: Gold Member Assistance ;tag=kkaz- 881 Supported: histinfo 882 Call-Id: 12345600@example.com 883 CSeq: 1 INVITE 884 History-Info: ;index=1 885 History-Info: ;rc=1;index=1.1 886 Contact: ;mp=1 887 Content-Type: application/sdp 888 Content-Length: 890 [SDP Not Shown] 892 F4 INVITE Example.com -> Silver.Example.com 893 INVITE sip:Silver@example.com SIP/2.0 894 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 895 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 896 Max-Forwards: 69 897 From: Alice ;tag=1235 898 To: Gold Member Assistance 899 Supported: histinfo 900 Call-Id: 12345600@example.com 901 CSeq: 1 INVITE 902 History-Info: ;index=1 903 History-Info: ;\ 904 rc=1;index=1.1 905 History-Info: ;index=1.2;mp=1 906 History-Info: ;index=1.2.1;rc=1.2 907 Contact: Alice 908 Content-Type: application/sdp 909 Content-Length: 911 [SDP Not Shown] 913 F5 INVITE Silver.Example.com -> Agent 915 INVITE sip:Silver@192.0.2.7 SIP/2.0 916 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs 917 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 918 received=192.0.2.101 919 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 920 Max-Forwards: 68 921 From: Alice ;tag=1235 922 To: Gold Member Assistance 923 Supported: histinfo 924 Call-Id: 12345600@example.com 925 CSeq: 1 INVITE 926 History-Info: ;index=1 927 History-Info: ;\ 928 rc=1;index=1.1 929 History-Info: ;index=1.2;mp=1 930 History-Info: ;index=1.2.1;rc=1.2 931 History-Info: ;index=1.2.1.1;rc=1.2.1 932 Contact: Alice 933 Content-Type: application/sdp 934 Content-Length: 936 [SDP Not Shown] 938 F6 200 OK Agent -> Silver.Example.com 940 SIP/2.0 200 OK 941 Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ 942 received=192.0.2.5 943 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 944 received=192.0.2.101 945 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 946 From: Alice ;tag=1235 947 To: Gold Member Assistance ;tag=2325 948 Supported: histinfo 949 Call-Id: 12345600@example.com 950 CSeq: 1 INVITE 951 History-Info: ;index=1 952 History-Info: ;\ 953 rc=1;index=1.1 954 History-Info: ;index=1.2;mp=1 955 History-Info: ;index=1.2.1;rc=1.2 956 History-Info: ;index=1.2.1.1;rc=1.2.1 957 Contact: Agent 958 Content-Type: application/sdp 959 Content-Length: 961 [SDP Not Shown] 963 F7 200 OK Silver.Example.com -> Example.com 965 SIP/2.0 200 OK 966 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ 967 received=192.0.2.101 968 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 969 From: Alice ;tag=1235 970 To: Gold Member Assistance ;tag=2325 971 Supported: histinfo 972 Call-Id: 12345600@example.com 973 CSeq: 1 INVITE 974 History-Info: ;index=1 975 History-Info: ;\ 976 rc=1;index=1.1 977 History-Info: ;index=1.2;mp=1 978 History-Info: ;index=1.2.1;rc=1.2 979 History-Info: ;index=1.2.1.1;rc=1.2.1 980 Contact: Agent 981 Content-Type: application/sdp 982 Content-Length: 984 [SDP Not Shown] 986 F8 200 OK Example.com -> Alice 987 SIP/2.0 200 OK 988 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 989 From: Alice ;tag=1235 990 To: Gold Member Assistance ;tag=2325 991 Supported: histinfo 992 Call-Id: 12345600@example.com 993 CSeq: 1 INVITE 994 History-Info: ;index=1 995 History-Info: ;\ 996 rc=1;index=1.1 997 History-Info: ;index=1.2;mp=1 998 History-Info: ;index=1.2.1;rc=1.2 999 History-Info: ;index=1.2.1.1;rc=1.2.1 1000 Contact: Agent 1001 Content-Type: application/sdp 1002 Content-Length: 1004 [SDP Not Shown] 1006 F9 ACK Alice -> Agent 1008 ACK sip:Silver@192.0.2.7 SIP/2.0 1009 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3 1010 Max-Forwards: 70 1011 From: Alice ;tag=1235 1012 To: Gold Member Assistance ;tag=2325 1013 Supported: histinfo 1014 Call-Id: 12345600@example.com 1015 CSeq: 1 ACK 1016 Contact: Alice 1017 Content-Type: application/sdp 1018 Content-Length: 1020 [SDP Not Shown] 1022 Figure 4: Example for Automatic Call Distribution 1024 The first hi-entry with the "mp" header field parameter contains a 1025 "mp" header field parameter value of 1 which points to the original- 1026 target which allows the operator to identify that the call was from 1027 the "Gold" customer. 1029 3.5. Determining the Alias used. 1031 SIP user agents are associated with an address-of-record (AOR). It 1032 is possible for a single UA to actually have multiple AORs associated 1033 with it. One common usage for this is aliases. For example, a user 1034 might have an AOR of sip:john@example.com but also have the AORs 1035 sip:john.smith@example.com and sip:jsmith@example.com. Rather than 1036 registering against each of these AORs individually, the user would 1037 register against just one of them, and the home proxy would 1038 automatically accept incoming calls for any of the aliases, treating 1039 them identically and ultimately forwarding them towards the UA. This 1040 is common practice in the Internet Multimedia Subsystem (IMS), where 1041 it is called implicit registration and each alias is called a public 1042 user identity (PUID). 1044 It is a common requirement for a UAS, on receipt of a call, to know 1045 which of its aliases was used to reach it. This knowledge can be 1046 used to choose ringtones to play, determine call treatment, and so 1047 on. For example, a user might give out one alias to friends and 1048 family only, resulting in a special ring that alerts the user to the 1049 importance of the call. 1051 The following call-flow and example messages show how History-Info 1052 can be used to find out the alias used to reach the callee. The 1053 alias for the call is determined by hi-entry with the index that 1054 matches the value of the last hi-entry with a "rc" header field 1055 parameter in the Request received. 1057 Alice Example.com John 1058 | | REGISTER F1 | 1059 | |<--------------------| 1060 | | 200 OK F2 | 1061 | |-------------------->| 1062 | INVITE F3 | | 1063 |-------------------->| | 1064 | | INVITE F4 | 1065 | |-------------------->| 1066 * Rest of flow not shown * 1068 F1 REGISTER John -> Example.com 1070 REGISTER sip:example.com SIP/2.0 1071 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1072 Max-Forwardss: 70 1073 From: John ;tag=a73kszlfl 1074 To: John 1075 Supported: histinfo 1076 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1077 CSeq: 1 REGISTER 1078 Contact: 1079 Content-Length: 0 1080 F2 200 OK Example.com -> John 1082 SIP/2.0 200 OK 1083 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1084 From: John ;tag=a73kszlfl 1085 To: John ;tag=d2dstee2 1086 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1087 CSeq: 1 REGISTER 1088 Contact: ;expires=3600 1089 Content-Length: 0 1091 F3 INVITE Alice -> Example.com 1093 INVITE sip:john.smith@example.com SIP/2.0 1094 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1095 Max-Forwardss: 70 1096 From: Alice ;tag=a73kszlfl 1097 To: John 1098 Supported: histinfo 1099 Call-Id: 12345600@example.com 1100 CSeq: 1 INVITE 1101 History-Info: ;index=1 1102 Contact: Alice 1103 Content-Type: application/sdp 1104 Content-Length: 1106 [SDP Not Shown] 1108 F4 INVITE Example.com -> John 1110 INVITE sip:john@192.0.2.1 SIP/2.0 1111 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1112 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1113 Max-Forwardss: 69 1114 From: Alice ;tag=a73kszlfl 1115 To: John 1116 Supported: histinfo 1117 Call-Id: 12345600@example.com 1118 CSeq: 1 INVITE 1119 Record-Route: 1120 History-Info: ;index=1 1121 History-Info: ;index=1.1;rc=1 1122 Contact: Alice 1123 Content-Type: application/sdp 1124 Content-Length: 1126 [SDP Not Shown] 1127 Figure 5: Alias Example 1129 The last hi-entry with the "rc" header field parameter references the 1130 source of retargeting pointing at the alias AoR, which in the example 1131 is "john.smith@example.com". 1133 3.6. PBX Voicemail Example 1135 A typical use case for voicemail is one whereby the original called 1136 party is not reachable and the call arrives at a voicemail system. 1137 In some cases multiple alternate destinations may be tried without 1138 success. The voicemail system typically requires the original called 1139 party information to determine the appropriate mailbox so an 1140 appropriate greeting can be provided and the appropriate party 1141 notified of the message. 1143 In this example, Alice calls Bob, whose SIP client is forwarded to 1144 Carol. Carol does not answer the call, thus it is forwarded to a VM 1145 (voicemail) server (VMS). In order to determine the appropriate 1146 mailbox to use for this call, the VMS needs the original target for 1147 the request. The original target is determined by finding the first 1148 hi-entry tagged with "rc" or "mp" and using the hi-entry referenced 1149 by the index of "rc" or "mp" header field parameter as the target for 1150 determining the appropriate mailbox. This hi-entry is used to 1151 populate the "target" URI parameter as defined in [RFC4458]. The 1152 reason associated with the first hi-entry tagged with "rc" or "mp" 1153 (i.e., 302) could be used to provide a customized voicemail greeting 1154 and is used to populate the "cause" URI parameter as defined in 1155 [RFC4458]. Note that some VMSs may also (or instead) use the 1156 information available in the History-Info headers for custom handling 1157 of the VM based on how and why the call arrived at the VMS. 1159 Furthermore it is the proxy forwarding the call to VMS that 1160 determines the target of the voicemail, it is the proxy that sets the 1161 target of voicemail which is also the entity that utilizes 1162 [I-D.ietf-sipcore-rfc4244bis] to find the target which is usually 1163 based on local policy installed by the user or an administrator. 1165 Alice example.com Bob Carol VM 1167 | INVITE F1 | | | | 1168 |------------->| | | | 1169 | | INVITE F2 | | | 1170 | |------------->| | | 1171 | | | | | 1172 | 100 Trying | | | | 1173 |<-------------| 302 Moved Temporarily F3 | | 1174 | |<-------------| | | 1175 | | | | | 1176 | | ACK | | | 1177 | |------------->| | | 1178 | | | | | 1179 | | INVITE F4 | | | 1180 | |--------------------------->| | 1181 | | | | | 1182 | | 180 Ringing F5 | | 1183 | |<---------------------------| | 1184 | | | | | 1185 | 180 Ringing | | | | 1186 |<-------------| | | | 1187 | | | | | 1188 | | (timeout) | | 1189 | | | | | 1190 | | INVITE F6 | | | 1191 | |-------------------------------------->| 1192 | | | | | 1193 | | 200 OK F7 | 1194 | |<--------------------------------------| 1195 | 200 OK | | | | 1196 |<-------------| | | | 1197 | | | | | 1198 | ACK | 1199 |----------------------------------------------------->| 1201 F1 INVITE Alice -> Example.com 1203 INVITE sip:bob@example.com SIP/2.0 1204 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1205 Max-Forwards: 70 1206 From: Alice ;tag=kkaz- 1207 To: Bob 1208 Supported: histinfo 1209 Call-Id: 12345600@example.com 1210 CSeq: 1 INVITE 1211 History-Info: ;index=1 1212 Contact: Alice 1213 Content-Length: 1215 [SDP Not Shown] 1217 F2 INVITE Example.com -> Bob 1219 INVITE sip:bob@192.0.2.5 SIP/2.0 1220 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1221 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1222 Max-Forwards: 69 1223 From: Alice ;tag=kkaz- 1224 To: Bob 1225 Supported: histinfo 1226 Call-Id: 12345600@example.com 1227 CSeq: 1 INVITE 1228 History-Info: ;index=1 1229 History-Info: ;index=1.1;rc=1 1230 Contact: Alice 1231 Content-Type: application/sdp 1232 Content-Length: 1234 [SDP Not Shown] 1236 F3 302 Moved Temporarily Bob -> Example.com 1238 SIP/2.0 302 Moved Temporarily 1239 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1240 received=192.0.2.101 1241 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1242 From: Alice ;tag=kkaz- 1243 To: Bob ;tag=2g22d-lnf 1244 Supported: histinfo 1245 Call-Id: 12345600@example.com 1246 CSeq: 1 INVITE 1247 History-Info: ;index=1 1248 History-Info: ;index=1.1;rc=1 1249 Contact: ;mp=1 1250 Content-Type: application/sdp 1251 Content-Length: 1253 [SDP Not Shown] 1255 F4 INVITE Example.com -> Carol 1257 INVITE sip:carol@192.0.2.4 SIP/2.0 1258 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 1259 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1260 Max-Forwards: 69 1261 From: Alice ;tag=kkaz- 1262 To: Bob 1263 Supported: histinfo 1264 Call-Id: 12345600@example.com 1265 CSeq: 1 INVITE 1266 History-Info: ;index=1 1267 History-Info: ;\ 1268 index=1.1;rc=1 1269 History-Info: ;index=1.2;mp=1 1270 History-Info: ;index=1.2.1;rc=1.2 1271 Contact: Alice 1272 Content-Type: application/sdp 1273 Content-Length: 1275 [SDP Not Shown] 1277 F5 180 Ringing Carol -> Example.com 1279 SIP/2.0 180 Ringing 1280 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\ 1281 received=192.0.2.101 1282 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1283 From: Alice ;tag=kkaz- 1284 To: Bob ;tag=setss3x 1285 Supported: histinfo 1286 Call-Id: 12345600@example.com 1287 CSeq: 1 INVITE 1288 History-Info: ;index=1 1289 History-Info: ;\ 1290 index=1.1;rc=1 1291 History-Info: ;index=1.2;mp=1 1292 History-Info: ;index=1.2.1;rc=1.2 1293 Contact: 1294 Content-Type: application/sdp 1295 Content-Length: 1297 [SDP Not Shown] 1299 F6 INVITE Example.com -> VM 1301 INVITE sip:vm@192.0.2.6;target=sip:bob%40example.com;cause=480\ 1302 SIP/2.0 1303 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523 1304 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1305 Max-Forwards: 69 1306 From: Alice ;tag=kkaz- 1307 To: Bob 1308 Supported: histinfo 1309 Call-Id: 12345600@example.com 1310 CSeq: 1 INVITE 1311 History-Info: ;index=1 1312 History-Info: ;\ 1313 index=1.1;rc=1 1314 History-Info: ;index=1.2;mp=1 1317 History-Info: ;index=1.2.1;rc=1.2 1319 History-Info: ;\ 1321 index=1.3;mp=1 1322 History-Info: ;\ 1324 index=1.3.1;rc=1.3 1325 Contact: Alice 1326 Content-Type: application/sdp 1327 Content-Length: 1329 [SDP Not Shown] 1331 F7 200 OK VM -> Example.com 1333 SIP/2.0 200 OK 1334 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523;\ 1335 received=192.0.2.101 1336 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1337 From: Alice ;tag=kkaz- 1338 To: Bob ;tag=3dweggs 1339 Supported: histinfo 1340 Call-Id: 12345600@example.com 1341 CSeq: 1 INVITE 1342 History-Info: ;index=1 1343 History-Info: ;\ 1344 index=1.1;rc=1 1345 History-Info: ;index=1.2;mp=1 1347 History-Info: ;index=1.2.1;rc=1.2 1349 History-Info: ;\ 1351 index=1.3;mp=1 1352 History-Info: ;\ 1354 index=1.3.1;rc=1.3 1355 Contact: 1356 Content-Type: application/sdp 1357 Content-Length: 1359 [SDP Not Shown] 1361 Figure 6: Enterprise Voivemail Example 1363 The VMS can look at the last hi-entry and find the target of the 1364 mailbox by looking at the URI entry in the "target" URI parameter in 1365 the hi-entry. 1367 3.7. Consumer Voicemail Example 1369 In the case of a consumer, when the call is retargeted, it is usually 1370 to another administrative domain. The voicemail system in these 1371 environment typically requires the last called party information to 1372 determine the appropriate mailbox so an appropriate greeting can be 1373 provided and the appropriate party notified of the message. 1375 In this example, Alice calls the Bob but Bob has temporarily 1376 forwarded his phone to Carol because she is his wife. Carol does not 1377 answer the call, thus it is forwarded to a VM (voicemail) server 1378 (VMS). In order to determine the appropriate mailbox to use for this 1379 call, the VMS needs the appropriate target for the request. The last 1380 target is determined by finding the hi-entry referenced by the index 1381 of last hi-entry tagged with "mp" for determining the appropriate 1382 mailbox. This hi-entry is used to populate the "target" URI 1383 parameter as defined in [RFC4458]. Note that some VMSs may also (or 1384 instead) use the information available in the History-Info headers 1385 for custom handling of the VM in terms of how and why the called 1386 arrived at the VMS. 1388 Alice example.com Bob Carol VM 1390 | INVITE F1 | | | | 1391 |------------->| | | | 1392 | | INVITE F2 | | | 1393 | |------------->| | | 1394 | | | | | 1395 | 100 Trying | | | | 1396 |<-------------| 302 Moved Temporarily F3 | | 1397 | |<-------------| | | 1398 | | | | | 1399 | | ACK | | | 1400 | |------------->| | | 1401 | | | | | 1402 | | INVITE F4 | | | 1403 | |--------------------------->| | 1404 | | | | | 1405 | | 180 Ringing F5 | | 1406 | |<---------------------------| | 1407 | | | | | 1408 | 180 Ringing | | | | 1409 |<-------------| | | | 1410 | | | | | 1411 | | (timeout) | | 1412 | | | | | 1413 | | INVITE F6 | | | 1414 | |-------------------------------------->| 1415 | | | | | 1416 | | 200 OK F7 | 1417 | |<--------------------------------------| 1418 | 200 OK | | | | 1419 |<-------------| | | | 1420 | | | | | 1421 | ACK | 1422 |----------------------------------------------------->| 1424 F1 INVITE Alice -> Example.com 1426 INVITE sip:bob@example.com SIP/2.0 1427 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1428 Max-Forwards: 70 1429 From: Alice ;tag=kkaz- 1430 To: Bob 1431 Supported: histinfo 1432 Call-Id: 12345600@example.com 1433 CSeq: 1 INVITE 1434 History-Info: ;index=1 1435 Contact: Alice 1436 Content-Length: 1438 [SDP Not Shown] 1440 F2 INVITE Example.com -> Bob 1442 INVITE sip:bob@192.0.2.5 SIP/2.0 1443 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1444 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1445 Max-Forwards: 69 1446 From: Alice ;tag=kkaz- 1447 To: Bob 1448 Supported: histinfo 1449 Call-Id: 12345600@example.com 1450 CSeq: 1 INVITE 1451 History-Info: ;index=1 1452 History-Info: ;index=1.1;rc=1 1453 Contact: Alice 1454 Content-Type: application/sdp 1455 Content-Length: 1457 [SDP Not Shown] 1459 F3 302 Moved Temporarily Bob -> Example.com 1461 SIP/2.0 302 Moved Temporarily 1462 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ 1463 received=192.0.2.101 1464 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1465 From: Alice ;tag=kkaz- 1466 To: Bob ;tag=224ls3s-t 1467 Supported: histinfo 1468 Call-Id: 12345600@example.com 1469 CSeq: 1 INVITE 1470 History-Info: ;index=1 1471 History-Info: ;index=1.1;rc=1 1472 Contact: ;mp=1 1473 Content-Type: application/sdp 1474 Content-Length: 1476 [SDP Not Shown] 1478 F4 INVITE Example.com -> Carol 1480 INVITE sip:carol@192.0.2.4 SIP/2.0 1481 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 1482 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1483 Max-Forwards: 69 1484 From: Alice ;tag=kkaz- 1485 To: Bob 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: ;index=1.2;mp=1 1494 History-Info: ;index=1.2.1;rc=1.2 1495 Contact: Alice 1496 Content-Type: application/sdp 1497 Content-Length: 1499 [SDP Not Shown] 1501 F5 180 Ringing Carol -> Example.com 1503 SIP/2.0 180 Ringing 1504 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ 1505 received=192.0.2.101 1506 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1507 From: Alice ;tag=kkaz- 1508 To: Bob ;tag=setss3x 1509 Supported: histinfo 1510 Call-Id: 12345600@example.com 1511 CSeq: 1 INVITE 1512 History-Info: ;index=1 1513 History-Info: ;\ 1515 index=1.1;rc=1 1516 History-Info: ;index=1.2;mp=1 1517 History-Info: ;index=1.2.1;rc=1.2 1518 Contact: 1519 Content-Type: application/sdp 1520 Content-Length: 1522 [SDP Not Shown] 1524 F6 INVITE Example.com -> VM 1526 INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com SIP/2.0 1527 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1528 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1529 Max-Forwards: 69 1530 From: Alice ;tag=kkaz- 1531 To: Bob 1532 Supported: histinfo 1533 Call-Id: 12345600@example.com 1534 CSeq: 1 INVITE 1535 History-Info: ;index=1 1536 History-Info: ;\ 1538 index=1.1;rc=1 1539 History-Info: ;\ 1540 index=1.2;mp=1 1541 History-Info: ;\ 1542 index=1.2.1;rc=1.2 1543 History-Info: ;index=1.2.2;mp=1.2 1545 History-Info: ;index=1.2.2.1;rc=1.2.2 1547 Contact: Alice 1548 Content-Type: application/sdp 1549 Content-Length: 1551 [SDP Not Shown] 1552 F7 200 OK VM -> Example.com 1554 SIP/2.0 200 OK 1555 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 1556 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1557 From: Alice ;tag=kkaz- 1558 To: Bob ;tag=3dweggs 1559 Supported: histinfo 1560 Call-Id: 12345600@example.com 1561 CSeq: 1 INVITE 1562 History-Info: ;index=1 1563 History-Info: ;\ 1565 index=1.1;rc=1 1566 History-Info: ;\ 1567 index=1.2;mp=1 1568 History-Info: ;\ 1569 index=1.2.1;rc=1.2 1570 History-Info: ;index=1.2.2;mp=1.2 1572 History-Info: ;index=1.2.2.1;rc=1.2.2 1574 Contact: 1575 Content-Type: application/sdp 1576 Content-Length: 1578 [SDP Not Shown] 1580 Figure 7: Consumer Voivemail Example 1582 The VMS can look at the last hi-entry and find the target of the 1583 mailbox by looking for the "target" URI parameter in the hi-entry and 1584 the reason by the "cause" URI parameter in the same hi-entry. 1586 3.8. GRUU 1588 A variation on the problem in Section 3.5 occurs with Globally 1589 Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned 1590 to a UA instance which has many of the same properties as the AOR, 1591 but causes requests to be routed only to that specific instance. It 1592 is desirable for a UA to know whether it was reached because a 1593 correspondent sent a request to its GRUU or to its AOR. This can be 1594 used to drive differing authorization policies on whether the request 1595 should be accepted or rejected, for example. However, like the AOR 1596 itself, the GRUU is lost in translation at the home proxy. Thus, the 1597 UAS cannot know whether it was contacted via the GRUU or its AOR. 1599 Following call-flow and example messages show how History-Info can be 1600 used to find out the GRUU used to reach the callee. 1602 While a GRUU is comprised of an AoR with a URI parameter as defined 1603 in [RFC5627] , the GRUU construct itself is not an AoR. Thus, the 1604 retargeting of a request based on a GRUU does not result in the 1605 addition of an "rc" header field parameter to the hi-entry containing 1606 the GRUU. The lack of an "rc" header field parameter in the hi- 1607 entries can be a hint that the source of retargeting is a GRUU. 1608 However, to ensure this is the case, the UAS needs to search for a 1609 "gr" parameter in the hi-entry prior to the last hi-entry. If there 1610 is a GRUU, the URI will always be prior to the last hi-entry as GRUU 1611 does not allow multiple instance to be mapped to a contact address. 1613 Alice Example.com John 1614 | | REGISTER F1 | 1615 | |<--------------------| 1616 | | 200 OK F2 | 1617 | |-------------------->| 1618 | INVITE F3 | | 1619 |-------------------->| | 1620 | | INVITE F4 | 1621 | |-------------------->| 1622 * Rest of flow not shown * 1624 F1 REGISTER John -> Example.com 1626 REGISTER sip:example.com SIP/2.0 1627 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1628 Max-Forwardss: 70 1629 From: John ;tag=a73kszlfl 1630 Supported: gruu 1631 To: John 1632 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1633 CSeq: 1 REGISTER 1634 Contact: ;+sip.instance=\ 1635 1636 Content-Length: 0 1638 [SDP Not Shown] 1640 F2 200 OK Example.com -> John 1642 SIP/2.0 200 OK 1643 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 1644 From: John ;tag=a73kszlfl 1645 To: John ;tag=b88sn 1646 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1647 CSeq: 1 REGISTER 1648 Contact: ;\ 1649 pub-gruu="sip:john@example.com;\ 1650 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1651 temp-gruu=\ 1652 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1653 gr";+sip.instance=\ 1654 "";\ 1655 expires=3600 1656 Content-Length: 0 1658 [SDP Not Shown] 1660 Assuming Alice has a knowledge of a gruu either through 1661 prior communication or through other means such as presence 1662 places a call to John's gruu. 1664 F3 INVITE Alice -> Example.com 1666 INVITE sip:john@example.com;\ 1667 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 1668 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1669 Max-Forwards: 70 1670 From: Alice ;tag=kkaz- 1671 To: 1673 Supported: gruu, histinfo 1674 Call-Id: 12345600@example.com 1675 CSeq: 1 INVITE 1676 History-Info: ;index=1 1678 Contact: Alice 1679 Content-Length: 1681 [SDP Not Shown] 1683 F4 INVITE Example.com -> John 1685 INVITE sip:john@192.0.2.1 SIP/2.0 1686 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 1687 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 1688 Max-Forwards: 69 1689 From: Alice ;tag=kkaz- 1690 To: 1693 Supported: gruu, histinfo 1694 Call-Id: 12345600@example.com 1695 CSeq: 1 INVITE 1696 Record-Route: 1697 History-Info: ;index=1 1699 History-Info: ;index=1.1;rc=1 1700 Contact: Alice 1701 Content-Type: application/sdp 1702 Content-Length: 1704 [SDP Not Shown] 1706 Figure 8: GRUU Example 1708 By analyzing the entry referenced by the entry with the last "rc", 1709 one can realize that the URI used to reach the device was GRUU by 1710 finding the "gr" parameter. 1712 3.9. Limited Use Address 1714 A limited use address is a SIP URI that is minted on-demand, and 1715 passed out to a small number (usually one) remote correspondent. 1716 Incoming calls targeted to that limited use address are accepted as 1717 long as the UA still desires communications from the remote target. 1718 Should they no longer wish to be bothered by that remote 1719 correspondent, the URI is invalidated so that future requests 1720 targeted to it are rejected. 1722 Limited use addresses are used in battling voice spam [RFC5039]. The 1723 easiest way to provide them would be for a UA to be able to take its 1724 AOR, and "mint" a limited use address by appending additional 1725 parameters to the URI. It could then give out the URI to a 1726 particular correspondent, and remember that URI locally. When an 1727 incoming call arrives, the UAS would examine the parameter in the URI 1728 and determine whether or not the call should be accepted. 1729 Alternatively, the UA could push authorization rules into the 1730 network, so that it need not even see incoming requests that are to 1731 be rejected. 1733 This approach, especially when executed on the UA, requires that 1734 parameters attached to the AOR, but not used by the home proxy in 1735 processing the request, will survive the translation at the home 1736 proxy and be presented to the UA. This will not be the case with the 1737 logic in RFC 3261, since the Request-URI is replaced by the 1738 registered contact, and any such parameters are lost. 1740 Using the history-info John's UA can easily see if the call was 1741 addressed to its AoR, GRUU or a temp-gruu and treat the call 1742 accordingly by looking for a "gr" tag in the hi-entry prior to the 1743 last hi-entry. 1745 Alice Example.com John 1746 | | REGISTER F1 | 1747 | |<--------------------| 1748 | | 200 OK F2 | 1749 | |-------------------->| 1750 | INVITE F3 | | 1751 |-------------------->| | 1752 | | INVITE F4 | 1753 | |-------------------->| 1754 * Rest of flow not shown * 1756 F1 REGISTER John -> Example.com 1758 REGISTER sip:example.com SIP/2.0 1759 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1760 Max-Forwardss: 70 1761 From: John ;tag=a73kszlfl 1762 Supported: gruu 1763 To: John 1764 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1765 CSeq: 1 REGISTER 1766 Contact: ;\ 1767 +sip.instance="" 1768 Content-Length: 0 1770 F2 200 OK Example.com -> John 1772 SIP/2.0 200 OK 1773 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 1774 From: John ;tag=a73kszlfl 1775 To: John ;tag=b88sn 1776 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 1777 CSeq: 1 REGISTER 1778 Contact: ;\ 1779 pub-gruu="sip:john@example.com;\ 1780 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ 1781 temp-gruu=\ 1782 "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ 1783 +sip.instance="";\ 1784 expires=3600 1785 Content-Length: 0 1786 Assuming Alice has a knowledge of a temp-gruu, she places a 1787 call to the temp-gruu. 1789 F3 INVITE Alice -> Example.com 1791 INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ 1792 gr SIP/2.0 1793 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1794 Max-Forwards: 70 1795 From: Alice ;tag=kkaz- 1796 To: 1798 Supported: gruu, histinfo 1799 Call-Id: 12345600@example.com 1800 CSeq: 1 INVITE 1801 History-Info: \ 1802 \ 1803 ;index=1 1804 Contact: Alice 1805 Content-Length: 1807 F4 INVITE Example.com -> John 1809 INVITE sip:john@192.0.2.1 SIP/2.0 1810 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 1811 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 1812 Max-Forwards: 69 1813 From: Alice ;tag=kkaz- 1814 To: 1816 Supported: gruu, histinfo 1817 Call-Id: 12345600@example.com 1818 CSeq: 1 INVITE 1819 Record-Route: 1820 History-Info: \ 1821 \ 1822 ;index=1 1823 History-Info: ;index=1.1;rc=1 1824 Contact: Alice 1825 Content-Type: application/sdp 1826 Content-Length: 1828 Figure 9: Limited Use Address Example 1830 By analyzing the entry referenced by the entry with the last "rc", 1831 one can realize that the URI used to reach the device was GRUU by 1832 finding the "gr" parameter. 1834 3.10. Service Invocation 1836 Several SIP specifications have been developed which make use of 1837 complex URIs to address services within the network rather than 1838 subscribers. The URIs are complex because they contain numerous 1839 parameters that control the behavior of the service. Examples of 1840 this include the specification which first introduced the concept, 1841 [RFC3087], control of network announcements and IVR with SIP URI 1842 [RFC4240], and control of voicemail access with SIP URI [RFC4458]. 1844 A common problem with all of these mechanisms is that once a proxy 1845 has decided to rewrite the Request-URI to point to the service, it 1846 cannot be sure that the Request-URI will not be destroyed by a 1847 downstream proxy which decides to forward the request in some way, 1848 and does so by rewriting the Request-URI. 1850 Section on voicemail (Section 3.6) shows how History-Info can be used 1851 to invoke a service. 1853 3.11. Toll Free Number 1855 Toll free numbers, also known as 800 or 8xx numbers in the United 1856 States, are telephone numbers that are free for users to call. 1858 In the telephone network, toll free numbers are just aliases to 1859 actual numbers which are used for routing of the call. In order to 1860 process the call in the PSTN, a switch will perform a query (using a 1861 protocol called TCAP), which will return either a phone number or the 1862 identity of a carrier which can handle the call. 1864 There has been recent work on allowing such PSTN translation services 1865 to be accessed by SIP proxy servers through IP querying mechanisms. 1866 ENUM, for example [RFC6117] has already been proposed as a mechanism 1867 for performing Local Number Portability (LNP) queries [RFC4769]. 1868 Using it for 8xx number translations is a logical next-step. 1870 The new target from translating the 8xx number may be in PSTN or in 1871 SIP netwrok. If the new target is an entity in the PSTN network, the 1872 proper treatment in the PSTN (and in particular, correct 1873 reconciliation of billing records) requires that the call be marked 1874 with both the originating number (8xx number) and the new target 1875 number, History-info would come in play here to assure original 8xx 1876 number is not lost.. 1878 Although not required to have both the originating number (8xx 1879 number) and the new target in the SIP network, enterprise or user who 1880 utilize the 8xx service can benefit by knowing whether the call came 1881 in via 8xx number in order to treat the call differently (for example 1882 to play a special announcement..) but if the original R-URI is lost 1883 through translation, there is no way to tell if the call came in via 1884 8xx number. History-info again would come in play here. 1886 Similar problems arise with other "special" numbers and services used 1887 in the PSTN, such as operator services, pay/premium numbers (9xx 1888 numbers in the U.S), and short service codes such as 311. 1890 To find the service number, the UAS can extract the hi-entry whose 1891 index matches the value of the first hi-entry with an "mp" tag. 1892 Technically the call can be forwarded to these "special" numbers from 1893 non "special" numbers, however that is uncommon based on the way 1894 these services authorize translations. 1896 This example call-flow shows an UAC that does not support history- 1897 info. 1899 Alice Toll Free Service Atlanta.com John 1900 | | | | 1901 | INVITE F1 | | | 1902 |--------------->| INVITE F2 | | 1903 | |------------->| | 1904 | | | INVITE F3 | 1905 | | |------------------>| 1907 * Rest of flow not shown * 1909 F1: INVITE 192.0.2.1 -> Toll Free Service 1911 INVITE sip:+18005551002@example.com;user=phone SIP/2.0 1912 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1913 From: Alice ;tag=9fxced76sl 1914 To: 1915 Call-ID: c3x842276298220188511 1916 CSeq: 1 INVITE 1917 Max-Forwardss: 70 1918 Contact: 1919 Content-Type: application/sdp 1920 Content-Length: 1922 [SDP Not Shown] 1924 F2: INVITE Toll Free Service -> Atlanta.com 1926 INVITE sip:+15555551002@atlanta.com SIP/2.0 1927 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1928 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1929 From: Alice ;tag=9fxced76sl 1930 To: 1931 Call-ID: c3x842276298220188511 1932 CSeq: 1 INVITE 1933 Max-Forwardss: 69 1934 Supported: histinfo 1935 History-Info: ;index=1 1936 History-Info: ;index=1.1;mp=1 1937 Contact: 1938 Content-Type: application/sdp 1939 Content-Length: 1941 [SDP Not Shown] 1943 F3: INVITE Atlanta.com -> John 1945 INVITE sip:john@198.51.100.2 SIP/2.0 1946 Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g 1947 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 1948 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf 1949 From: Alice ;tag=9fxced76sl 1950 To: 1951 Call-ID: c3x842276298220188511 1952 CSeq: 1 INVITE 1953 Max-Forwardss: 68 1954 Supported: histinfo 1955 History-Info: ;index=1 1956 History-Info: ;index=1.1;mp=1 1957 History-Info: ;index=1.1.1;rc=1.1 1958 History-Info: ;index=1.1.1.1;rc=1.1.1 1959 Contact: 1960 Content-Type: application/sdp 1961 Content-Length: 1963 [SDP Not Shown] 1965 Figure 10: Service Number Example 1967 4. Security Considerations 1969 The security considerations for the History-Info header field are 1970 specified in [I-D.ietf-sipcore-rfc4244bis]. 1972 5. IANA Considerations 1974 This document has no IANA considerations. 1976 5.1. Acknowledgements 1978 Jonathan Rosenberg et al produced the document that provided 1979 additional use cases precipitating the requirement for the new 1980 "target" parameter in the History-Info header field and the new SIP/ 1981 SIPS URI parameter. Hadriel Kaplan provided some comments. 1983 Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley and 1984 Marianne Mohali provided extensive review and comments on call-flow, 1985 message examples and text. 1987 6. Informative References 1989 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 1990 A., Peterson, J., Sparks, R., Handley, M., and E. 1991 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 1992 June 2002. 1994 [RFC5627] Rosenberg, J., "Obtaining and Using Globally Routable User 1995 Agent URIs (GRUUs) in the Session Initiation Protocol 1996 (SIP)", RFC 5627, October 2009. 1998 [RFC3087] Campbell, B. and R. Sparks, "Control of Service Context 1999 using SIP Request-URI", RFC 3087, April 2001. 2001 [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network 2002 Media Services with SIP", RFC 4240, December 2005. 2004 [RFC5039] Rosenberg, J. and C. Jennings, "The Session Initiation 2005 Protocol (SIP) and Spam", RFC 5039, January 2008. 2007 [RFC4458] Jennings, C., Audet, F., and J. Elwell, "Session 2008 Initiation Protocol (SIP) URIs for Applications such as 2009 Voicemail and Interactive Voice Response (IVR)", RFC 4458, 2010 April 2006. 2012 [RFC6117] Hoeneisen, B., Mayrhofer, A., and J. Livingood, "IANA 2013 Registration of Enumservices: Guide, Template, and IANA 2014 Considerations", RFC 6117, March 2011. 2016 [RFC4769] Livingood, J. and R. Shockey, "IANA Registration for an 2017 Enumservice Containing Public Switched Telephone Network 2018 (PSTN) Signaling Information", RFC 4769, November 2006. 2020 [I-D.ietf-enum-cnam] 2021 Shockey, R., "IANA Registration for an Enumservice Calling 2022 Name Delivery (CNAM) Information and IANA Registration for 2023 URI type 'pstndata'", draft-ietf-enum-cnam-08 (work in 2024 progress), September 2008. 2026 [I-D.ietf-sipcore-rfc4244bis] 2027 Barnes, M., Audet, F., Schubert, S., Elburg, H., and C. 2028 Holmberg, "An Extension to the Session Initiation Protocol 2029 (SIP) for Request History Information", 2030 draft-ietf-sipcore-rfc4244bis-12 (work in progress), 2031 October 2013. 2033 Authors' Addresses 2035 Mary Barnes 2036 Polycom 2037 TX 2038 US 2040 Email: mary.ietf.barnes@gmail.com 2042 Francois Audet 2043 Skype 2045 Email: francois.audet@skype.net 2047 Shida Schubert 2048 NTT 2049 Tokyo 2050 Japan 2052 Email: shida@ntt-at.com 2054 Hans Erik van Elburg 2055 Detecon International Gmbh 2056 Oberkasseler str. 2 2057 Bonn, 2058 Germany 2060 Email: ietf.hanserik@gmail.com 2061 Christer Holmberg 2062 Ericsson 2063 Hirsalantie 11, Jorvas 2064 Finland 2066 Email: christer.holmberg@ericsson.com