draft-ietf-sipcore-rfc4244bis-callflows-01.txt   draft-ietf-sipcore-rfc4244bis-callflows-02.txt 
Network Working Group M. Barnes Network Working Group M. Barnes
Internet-Draft Polycom Internet-Draft Polycom
Intended status: Informational F. Audet Intended status: Informational F. Audet
Expires: March 5, 2013 Skype Expires: July 5, 2013 Skype
S. Schubert S. Schubert
NTT NTT
J. van Elburg J. van Elburg
Detecon International Gmbh Detecon International Gmbh
C. Holmberg C. Holmberg
Ericsson Ericsson
Sep 2012 Jan 2013
Session Initiation Protocol (SIP) History-Info Header Call Flow Examples Session Initiation Protocol (SIP) History-Info Header Call Flow Examples
draft-ietf-sipcore-rfc4244bis-callflows-01.txt draft-ietf-sipcore-rfc4244bis-callflows-02.txt
Abstract Abstract
This document describes use cases and documents call flows which This document describes use cases and documents call flows which
require the History-Info header field to capture the Request-URIs as require the History-Info header field to capture the Request-URIs as
a Session Initiation Protocol (SIP) Request is retargeted. The use a Session Initiation Protocol (SIP) Request is retargeted. The use
cases are described along with the corresponding call flow diagrams cases are described along with the corresponding call flow diagrams
and messaging details. and messaging details.
Status of this Memo Status of this Memo
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 5, 2013. This Internet-Draft will expire on July 5, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3
3. Detailed call flows . . . . . . . . . . . . . . . . . . . . . 3 3. Detailed call flows . . . . . . . . . . . . . . . . . . . . . 3
3.1. Sequentially Forking (History-Info in Response) . . . . . 3 3.1. Sequentially Forking (History-Info in Response) . . . . . 3
3.2. History-Info with Privacy Header Field . . . . . . . . . . 10 3.2. History-Info with Privacy Header Field . . . . . . . . . . 11
3.3. Privacy for a Specific History-Info Entry . . . . . . . . 14 3.3. Privacy for a Specific History-Info Entry . . . . . . . . 14
3.4. Automatic Call Distribution . . . . . . . . . . . . . . . 18 3.4. Automatic Call Distribution . . . . . . . . . . . . . . . 18
3.5. Determining the Alias used. . . . . . . . . . . . . . . . 23 3.5. Determining the Alias used. . . . . . . . . . . . . . . . 23
3.6. PBX Voicemail Example . . . . . . . . . . . . . . . . . . 25 3.6. PBX Voicemail Example . . . . . . . . . . . . . . . . . . 26
3.7. Consumer Voicemail Example . . . . . . . . . . . . . . . . 30 3.7. Consumer Voicemail Example . . . . . . . . . . . . . . . . 31
3.8. GRUU . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.8. GRUU . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.9. Limited Use Address . . . . . . . . . . . . . . . . . . . 37 3.9. Limited Use Address . . . . . . . . . . . . . . . . . . . 38
3.10. Service Invocation . . . . . . . . . . . . . . . . . . . . 40 3.10. Service Invocation . . . . . . . . . . . . . . . . . . . . 41
3.11. Toll Free Number . . . . . . . . . . . . . . . . . . . . . 40 3.11. Toll Free Number . . . . . . . . . . . . . . . . . . . . . 41
4. Security Considerations . . . . . . . . . . . . . . . . . . . 42 4. Security Considerations . . . . . . . . . . . . . . . . . . . 44
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44
5.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 43 5.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 44
6. Informative References . . . . . . . . . . . . . . . . . . . . 43 6. Informative References . . . . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45
1. Overview 1. Overview
Many services that use SIP require the ability to determine why and Many services that use SIP require the ability to determine why and
how the call arrived at a specific application. The use cases how the call arrived at a specific application. The use cases
provided in this document illustrate the use of the History-Info provided in this document illustrate the use of the History-Info
header [I-D.ietf-sipcore-rfc4244bis] for example applications and header [I-D.ietf-sipcore-rfc4244bis] for example applications and
common scenarios. The optional "rc" and "mp" header field parameters common scenarios. The optional "rc" and "mp" header field parameters
defined in [I-D.ietf-sipcore-rfc4244bis] are required for several of defined in [I-D.ietf-sipcore-rfc4244bis] are required for several of
the use cases. Descriptions of the example use cases, call flow the use cases. Descriptions of the example use cases, call flow
diagrams and messaging details are provided. diagrams and messaging details are provided.
2. Conventions and Terminology 2. Conventions and Terminology
The term "retarget" is used as defined in The term "retarget" is used as defined in
[I-D.ietf-sipcore-rfc4244bis]. The terms "location service", [I-D.ietf-sipcore-rfc4244bis]. The terms "location service",
"redirect", "redirect" and "AOR" are used consistent with the "redirect" and "AOR" are used consistent with the terminology in
terminology in [RFC3261]. [RFC3261].
3. Detailed call flows 3. Detailed call flows
The scenarios in this section provide sample use cases for the The scenarios in this section provide sample use cases for the
History-Info header for informational purposes only. They are not History-Info header for informational purposes only. They are not
intended to be normative. In many cases, only the relevant messaging intended to be normative. In many cases, only the relevant messaging
details are included in the body of the call flow. details are included in the body of the call flow.
3.1. Sequentially Forking (History-Info in Response) 3.1. Sequentially Forking (History-Info in Response)
skipping to change at page 3, line 45 skipping to change at page 3, line 45
Alice sends a call to Bob via sip:example.com. The proxy sip: Alice sends a call to Bob via sip:example.com. The proxy sip:
example.com sequentially tries Bob on a SIP UA that has bound a example.com sequentially tries Bob on a SIP UA that has bound a
contact with the sip:bob@example.com AOR, and then several alternate contact with the sip:bob@example.com AOR, and then several alternate
addresses (Office and Home) unsuccessfully before sending a response addresses (Office and Home) unsuccessfully before sending a response
to Alice. The hi-entry containing the initial contact is the hi- to Alice. The hi-entry containing the initial contact is the hi-
entry just prior to the first hi-entry tagged with an "rc" header entry just prior to the first hi-entry tagged with an "rc" header
field parameter. In this example, the Office and Home are not the field parameter. In this example, the Office and Home are not the
same AOR as sip:bob@example.com, but rather different AORs that have same AOR as sip:bob@example.com, but rather different AORs that have
been configured as alternate addresses for Bob in the proxy. In been configured as alternate addresses for Bob in the proxy. In
other words, Office and Bob are not bound through SIP Registration other words, Office and *Home* are not bound through SIP Registration
with Bob's AOR. This type of arrangement is common for example when with Bob's AOR. This type of arrangement is common for example when
a "routing" rule to a PSTN number is manually configured in a proxy. a "routing" rule to a PSTN number is manually configured in a proxy.
These hi-entries are identified by the index contained in the hi- These hi-entries are identified by the index contained in the hi-
target-param "mp" header field parameter in the hi-entries. target-param "mp" header field parameter in the hi-entries.
This scenario illustrates that by providing the History-Info to This scenario illustrates that by providing the History-Info to
Alice, the end-user or an application at Alice could make a decision Alice, the end-user or an application at Alice could make a decision
on how best to attempt finding Bob without sending multiple requests on how best to attempt finding Bob without sending multiple requests
to the same destination. Upon receipt of the response containing the to the same destination. Upon receipt of the response containing the
History-Info entries, the Request URIs for the History-Info entries History-Info entries, the Request URIs for the History-Info entries
tagged with "mp" header field parameter are extracted. Those tagged with "mp" header field parameter are extracted. Those
Request-URIs can be compared to other URIs (if any) that might be Request-URIs can be compared to other URIs (if any) that might be
attempted in order to establish the session with Bob. Thus, avoiding attempted in order to establish the session with Bob. This results in
another INVITE to Bob's home phone. Without this mechanism, Alice avoiding the sending of another INVITE to Bob's home phone. Without
might well attempt to reach Bob at his office phone, which would then this mechanism, Alice might well attempt to reach Bob at his office
retarget the request to Bob's home phone. When that attempt failed, phone, which would then retarget the request to Bob's home phone.
then Alice might attempt to reach Bob directly at his home phone, When that attempt failed, then Alice might attempt to reach Bob
unknowingly for a third time. directly at his home phone, unknowingly for a third time.
Alice example.com Bob Office Home Alice example.com Bob Office Home
| | | | | | | | | |
| INVITE F1 | | | | | INVITE F1 | | | |
|----------->| INVITE F2 | | | |----------->| INVITE F2 | | |
| |----------------->| | | | |----------------->| | |
| 100 Trying F3 | | | | 100 Trying F3 | | |
|<-----------| 302 Move Temporarily F4 | | |<-----------| 302 Move Temporarily F4 | |
| |<-----------------| | | | |<-----------------| | |
| | ACK F5 | | | | | ACK F5 | | |
skipping to change at page 5, line 4 skipping to change at page 4, line 48
| |----------------------------------->| | |----------------------------------->|
| | 100 Trying F10 | | | 100 Trying F10 |
| |<-----------------------------------| | |<-----------------------------------|
| | 486 Busy Here F11 | | | 486 Busy Here F11 |
| |<-----------------------------------| | |<-----------------------------------|
| 486 Busy Here F12 | | 486 Busy Here F12 |
|<-----------| ACK F13 | |<-----------| ACK F13 |
| |----------------------------------->| | |----------------------------------->|
| ACK F14 | | | ACK F14 | |
|----------->| | |----------->| |
Figure 1: Figure 1. Example with Sequential Forking
Message Details Message Details
F1 INVITE alice -> example.com F1 INVITE alice -> example.com
INVITE sip:bob@example.com SIP/2.0 INVITE sip:bob@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F2 INVITE example.com -> Bob F2 INVITE example.com -> Bob
INVITE sip:bob@192.0.2.4 SIP/2.0 INVITE sip:bob@192.0.2.4 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1 History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
skipping to change at page 5, line 38 skipping to change at page 6, line 4
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1 History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F3 100 Trying example.com -> alice F3 100 Trying example.com -> alice
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 302 Moved Temporarily Bob -> example.com F4 302 Moved Temporarily Bob -> example.com
SIP/2.0 302 Moved Temporarily SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>;tag=es43sd
Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1 History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1
Contact: <sip:office@example.com>;mp=1 Contact: <sip:office@example.com>;mp=1
Content-Length: 0 Content-Length: 0
F5 ACK 192.0.2.4 -> Bob F5 ACK example.com -> Bob
ACK sip:bob@example.com SIP/2.0 ACK sip:bob@example.com SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>;tag=es43sd
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F6 INVITE example.com -> office F6 INVITE example.com -> office
INVITE sip:office@192.0.2.5 SIP/2.0 INVITE sip:office@192.0.2.5 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 68
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2 History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F7 180 Ringing office -> example.com F7 180 Ringing office -> example.com
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com>;tag=53rdds To: Bob <sip:bob@example.com>;tag=53rdds
Supported: histinfo Supported: histinfo
Call-ID: 12345600@example.com Call-ID: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2 History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: Office <sip:office@192.0.2.5>
Content-Length: 0 Content-Length: 0
F8 180 Ringing example.com -> alice F8 180 Ringing example.com -> alice
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com>;tag=53rdds To: Bob <sip:bob@example.com>;tag=53rdds
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2 History-Info: <sip:office@192.0.2.5>;index=1.2.1;rc=1.2
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: Office <sip:office@192.0.2.5>
Content-Length: 0 Content-Length: 0
F9 INVITE example.com -> home F9 INVITE example.com -> home
INVITE sip:home@192.0.2.6 SIP/2.0 INVITE sip:home@192.0.2.6 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 67
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\
index=1.2.1>;index=1.2.1;rc=1.2 index=1.2.1;index=1.2.1;rc=1.2
History-Info: <sip:home@example.com>;index=1.3;mp=1 History-Info: <sip:home@example.com>;index=1.3;mp=1
History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3 History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F10 100 Trying home -> example.com F10 100 Trying home -> example.com
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F11 486 Busy Here home -> example.com F11 486 Busy Here home -> example.com
SIP/2.0 486 Busy Here SIP/2.0 486 Busy Here
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com>;tag=53rdds To: Bob <sip:bob@example.com>;tag=55rdds
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\
index=1.2.1>;index=1.2.1;rc=1.2 index=1.2.1;index=1.2.1;rc=1.2
History-Info: <sip:home@example.com>;index=1.3;mp=1 History-Info: <sip:home@example.com>;index=1.3;mp=1
History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3 History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F12 486 Busy Here example.com -> alice F12 486 Busy Here example.com -> alice
SIP/2.0 486 Busy Here SIP/2.0 486 Busy Here
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>;tag=55rdds
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:office@example.com>;index=1.2;mp=1 History-Info: <sip:office@example.com>;index=1.2;mp=1
History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\
index=1.2.1>;index=1.2.1;rc=1.2 index=1.2.1;index=1.2.1;rc=1.2
History-Info: <sip:home@example.com>;index=1.3;mp=1 History-Info: <sip:home@example.com>;index=1.3;mp=1
History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3 History-Info: <sip:home@192.0.2.6>;index=1.3.1;rc=1.3
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F13 ACK example.com -> home F13 ACK example.com -> home
ACK sip:home@192.0.2.6 SIP/2.0 ACK sip:home@192.0.2.6 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st
From: Alice <sip:alice@example.com>;tag=sr3dds>; Max-Forward: 67
To: Bob <sip:bob@example.com> From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com>;tag=55rdds
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F14 ACK alice -> example.com F14 ACK alice -> example.com
ACK sip:bob@example.com SIP/2.0 ACK sip:bob@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=sr3dds From: Alice <sip:alice@example.com>;tag=sr3dds
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>;tag=55rdds
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
Route: <sip:proxy.example.com;lr> Route: <sip:proxy.example.com;lr>
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
3.2. History-Info with Privacy Header Field 3.2. History-Info with Privacy Header Field
This example provides a basic call scenario without forking. Alice This example provides a basic call scenario without forking. Alice
has indicated that she wants Privacy associated with the History-Info has indicated that she wants Privacy associated with the History-Info
header field entries. In addition, sip:biloxi.example.com adds header field entries. In addition, sip:biloxi.example.com adds
skipping to change at page 11, line 25 skipping to change at page 11, line 36
| | | | | | | |
| | | 200 F4 | | | | 200 F4 |
| | |<---------------| | | |<---------------|
| | | | | | | |
| | 200 F5 | | | | 200 F5 | |
| |<---------------| | | |<---------------| |
| | | | | | | |
| 200 F6 | | | | 200 F6 | | |
|<---------------| | | |<---------------| | |
| | | | | | | |
| ACK | | | | | ACK | |
|--------------->| ACK | | |------------------------------------------------->|
| |--------------->| ACK | | | | |
| | |--------------->|
Figure 1: Example with Privacy Header Fields Figure 2: Figure 2. Example with Privacy Header Fields
Message Details Message Details
F1 INVITE alice -> atlanta.example.com F1 INVITE alice -> atlanta.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 70
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Privacy: History Privacy: history
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F2 INVITE atlanta.example.com -> biloxi.example.com F2 INVITE atlanta.example.com -> biloxi.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 69
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F3 INVITE biloxi.example.com -> Bob F3 INVITE biloxi.example.com -> Bob
INVITE sip:bob@192.0.1.11 SIP/2.0 INVITE sip:bob@192.0.1.11 SIP/2.0
Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\
received=192.0.2.3
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 68
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1
History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1 History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F4 200 OK Bob -> biloxi.example.com F4 200 OK Bob -> biloxi.example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 received=192.0.2.101
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\
received=192.0.2.3
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1
History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1 History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F5 200 OK biloxi.example.com -> atlanta.example.com F5 200 OK biloxi.example.com -> atlanta.example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1
History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F6 200 OK atlanta.example.com -> Alice F6 200 OK atlanta.example.com -> Alice
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1
History-Info: <sip:anonymous@anonymous.invalidtarget userindex=1.1.1;rc=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
3.3. Privacy for a Specific History-Info Entry 3.3. Privacy for a Specific History-Info Entry
This example provides a basic call scenario similar to Section 3.2, This example provides a basic call scenario similar to Section 3.2,
however, due to local policy at sip:biloxi.example.com, only the however, due to local policy at sip:biloxi.example.com, only the
final hi-entry in the History-Info, which is Bob's local URI, final hi-entry in the History-Info, which is Bob's local URI,
contains a privacy header field with a priv-value of "history", thus contains a privacy header field with a priv-value of "history", thus
providing Alice with some information about the history of the providing Alice with some information about the history of the
request, but anonymizing Bob's local URI. request, but anonymizing Bob's local URI.
skipping to change at page 15, line 25 skipping to change at page 15, line 25
| | | | | | | |
| | | 200 F4 | | | | 200 F4 |
| | |<---------------| | | |<---------------|
| | | | | | | |
| | 200 F5 | | | | 200 F5 | |
| |<---------------| | | |<---------------| |
| | | | | | | |
| 200 F6 | | | | 200 F6 | | |
|<---------------| | | |<---------------| | |
| | | | | | | |
| ACK | | | | | ACK | |
|--------------->| ACK | | |------------------------------------------------->|
| |--------------->| ACK | | | | |
| | |--------------->|
Figure 2: Example with Privacy Header Field for Specific URI Figure 3: Figure 3. Example with Privacy Header Field for Specific
URI
Message Details Message Details
F1 INVITE alice -> atlanta.example.com F1 INVITE alice -> atlanta.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 70
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F2 INVITE atlanta.example.com -> biloxi.example.com F2 INVITE atlanta.example.com -> biloxi.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 INVITE sip:bob@biloxi.example.com;p=x SIP/2.0
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 69
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;np=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F3 INVITE biloxi.example.com -> Bob F3 INVITE biloxi.example.com -> Bob
INVITE sip:bob@192.0.1.11 SIP/2.0 INVITE sip:bob@192.0.1.11 SIP/2.0
Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
Max-Forward: 68
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com> To: Bob <sip:bob@biloxi.example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;np=1
History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1 History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F4 200 OK Bob -> biloxi.example.com F4 200 OK Bob -> biloxi.example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 received=192.0.2.5
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;np=1
History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1 History-Info: <sip:bob@192.0.1.11?Privacy=history>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F5 200 OK biloxi.example.com -> atlanta.example.com F5 200 OK biloxi.example.com -> atlanta.example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2 Via: SIP/2.0/TCP proxy.atlanta.example.com:5060;branch=z9hG4bKbst2;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;np=1
History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
F6 200 OK atlanta.example.com -> Alice F6 200 OK atlanta.example.com -> Alice
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321
From: Alice <sip:alice@atlanta.example.com>;tag=22 From: Alice <sip:alice@atlanta.example.com>;tag=22
To: Bob <sip:bob@biloxi.example.com>;tag=33 To: Bob <sip:bob@biloxi.example.com>;tag=33
Supported: histinfo Supported: histinfo
Call-Id: 12345600@atlanta.example.com Call-Id: 12345600@atlanta.example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1
History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;rc=1 History-Info: <sip:bob@biloxi.example.com;p=x>;index=1.1;np=1
History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1
Contact: Bob <sip:bob@192.0.1.11> Contact: Bob <sip:bob@192.0.1.11>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
<!-- SDP Not Shown --> <!-- SDP Not Shown -->
3.4. Automatic Call Distribution 3.4. Automatic Call Distribution
This scenario highlights an example of an Automatic Call Distribution This scenario highlights an example of an Automatic Call Distribution
service, where the agents are divided into groups based upon the type service, where the agents are divided into groups based upon the type
skipping to change at page 18, line 36 skipping to change at page 18, line 36
given higher priority than Silver customers, so a Gold call would get given higher priority than Silver customers, so a Gold call would get
serviced even if all the agents servicing the Gold group were busy, serviced even if all the agents servicing the Gold group were busy,
by retargeting the request to the Silver Group for delivery to an by retargeting the request to the Silver Group for delivery to an
agent. Upon receipt of the call at the agent assigned to handle the agent. Upon receipt of the call at the agent assigned to handle the
incoming call, based upon the History-Info header in the message, the incoming call, based upon the History-Info header in the message, the
application at the agent can provide an indication that this is a application at the agent can provide an indication that this is a
Gold call by extracting the hi-entry associated with the incoming Gold call by extracting the hi-entry associated with the incoming
request which is determined by locating the hi-entry whose index is request which is determined by locating the hi-entry whose index is
reflected in the first hi-entry with an hi-target of "mp". In the reflected in the first hi-entry with an hi-target of "mp". In the
example this would be the hi-entry referenced by the value of the example this would be the hi-entry referenced by the value of the
last "mp" header field parameter -i.e., the hi-entry containing an first "mp" header field parameter -i.e., the hi-entry containing an
index of "1". An application can also determine how many groups from index of "1". An application can also determine how many groups from
which the call may have overflowed before reaching the agent, etc. which the call may have overflowed before reaching the agent, etc.
and present the information to the agent so that the call can be and present the information to the agent so that the call can be
handled appropriately by the agent - i.e., "I'm so sorry for the handled appropriately by the agent - i.e., "I'm so sorry for the
delay, blah, blah, blah..." delay, blah, blah, blah..."
For scenarios whereby calls might overflow from the Silver to the For scenarios whereby calls might overflow from the Silver to the
Gold, clearly the alternate group identification, internal routing, Gold, clearly the alternate group identification, internal routing,
or actual agent that handles the call should not be sent to UA1. or actual agent that handles the call should not be sent to UA1.
Thus, for this scenario, one would expect that the Proxy would not Thus, for this scenario, one would expect that the Proxy would not
support the sending of the History-Info in the response, even if support the sending of the History-Info in the response, even if
requested by Alice. requested by Alice or the proxy could anonymize the Silver related
hi-entries by adding privacy in the Silver hi-entries.
As with the other examples, this is not a complete prescription of As with the other examples, this is not a complete prescription of
how one would do this type of service but an example of a subset of how one would do this type of service but an example of a subset of
processing that might be associated with such a service. In processing that might be associated with such a service. In
addition, this example is not addressing any aspects of Agent addition, this example is not addressing any aspects of Agent
availability resulting in the call being sent to an agent in another availability resulting in the call being sent to an agent in another
group, which might also be done via a SIP interface. group, which might also be done via a SIP interface.
Alice example.com Gold Silver Agent Alice example.com Gold Silver Agent
| | | | | | | | | |
| INVITE F1 | | | | | INVITE F1 | | | |
|------------->| | | | |------------->| | | |
| | | | | | | | | |
| | INVITE F2 | | | | | INVITE F2 | | |
| |------------->| | | | |------------->| | |
| | | | | | | | | |
| | 302 Moved Temporarily F3 | | | | 302 Moved Temporarily F3 | |
| |<-------------| | | | |<-------------| | |
| | | | | | | | | |
| ACK | | |
|---------------------------->| | |
| | | | |
| | INVITE F4 | | | | | INVITE F4 | | |
| |--------------------------->| | | |--------------------------->| |
| | | | | | | | | |
| | | | INVITE F5 | | | | | INVITE F5 |
| | | |----------->| | | | |----------->|
| | | | | | | | | |
| | | | 200 OK F6 | | | | | 200 OK F6 |
| | | |<-----------| | | | |<-----------|
| | | | | | | | | |
| | 200 OK F7 | | | | 200 OK F7 | |
skipping to change at page 19, line 44 skipping to change at page 19, line 49
| 200 OK F8 | | | | | 200 OK F8 | | | |
|<-------------| | | | |<-------------| | | |
| | | | | | | | | |
| ACK F9 | | ACK F9 |
|------------------------------------------------------->| |------------------------------------------------------->|
F1 INVITE Alice -> Example.com F1 INVITE Alice -> Example.com
INVITE sip:Gold@example.com SIP/2.0 INVITE sip:Gold@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com> To: Gold Member Assistance <sip:Gold@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F2 INVITE Example.com -> Gold.Example.com F2 INVITE Example.com -> Gold.Example.com
INVITE sip:john@192.0.2.1 SIP/2.0 INVITE sip:Gold@gold.example.com SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com> To: Gold Member Assistance <sip:Gold@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F3 302 Moved Temporarily Gold.Example.com -> Example.com F3 302 Moved Temporarily Gold.Example.com -> Example.com
SIP/2.0 302 Moved Temporarily SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com>;tag=kkaz- To: Gold Member Assistance <sip:Gold@example.com>;tag=kkaz-
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1
Contact: <sip:Silver@example.com>;mp=1 Contact: <sip:Silver@example.com>;mp=1
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
skipping to change at page 20, line 45 skipping to change at page 21, line 4
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1
Contact: <sip:Silver@example.com>;mp=1 Contact: <sip:Silver@example.com>;mp=1
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F4 INVITE Example.com -> Silver.Example.com F4 INVITE Example.com -> Silver.Example.com
INVITE sip:Silver@example.com SIP/2.0 INVITE sip:Silver@example.com SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 68
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com> To: Gold Member Assistance <sip:Gold@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\
rc=1;index=1.1 rc=1;index=1.1
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
skipping to change at page 21, line 24 skipping to change at page 21, line 31
[SDP Not Shown] [SDP Not Shown]
F5 INVITE Silver.Example.com -> Agent F5 INVITE Silver.Example.com -> Agent
INVITE sip:Silver@192.0.2.7 SIP/2.0 INVITE sip:Silver@192.0.2.7 SIP/2.0
Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 67
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com> To: Gold Member Assistance <sip:Gold@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\
index=1.1 index=1.1
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1 History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
skipping to change at page 21, line 50 skipping to change at page 22, line 10
F6 200 OK Agent -> Silver.Example.com F6 200 OK Agent -> Silver.Example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\
received=192.0.2.5 received=192.0.2.5
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com>;tag=2325 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\
index=1.1 index=1.1
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1 History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1
Contact: Agent <sip:Silver@192.0.2.7> Contact: Agent <sip:Silver@192.0.2.7>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F7 200 OK Silver.Example.com -> Example.com F7 200 OK Silver.Example.com -> Example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\
received=192.0.2.5 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com>;tag=2325 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\
index=1.1 index=1.1
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1 History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1
Contact: Agent <sip:Silver@192.0.2.7> Contact: Agent <sip:Silver@192.0.2.7>
skipping to change at page 22, line 42 skipping to change at page 23, line 4
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1 History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1
Contact: Agent <sip:Silver@192.0.2.7> Contact: Agent <sip:Silver@192.0.2.7>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F8 200 OK Example.com -> Alice F8 200 OK Example.com -> Alice
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com>;tag=2325 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@example.com>;index=1
History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\
index=1.1 index=1.1
History-Info: <sip:Silver@example.com>;index=1.2;mp=1 History-Info: <sip:Silver@example.com>;index=1.2;mp=1
History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2 History-Info: <sip:Silver@silver.example.com>;index=1.2.1;rc=1.2
History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1 History-Info: <sip:Silver@192.0.2.7>;index=1.2.1.1;rc=1.2.1
Contact: Agent <sip:Silver@192.0.2.7> Contact: Agent <sip:Silver@192.0.2.7>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F9 ACK Alice -> Agent F9 ACK Alice -> Agent
ACK sip:Silver@192.0.2.7 SIP/2.0 ACK sip:Silver@192.0.2.7 SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=1235 From: Alice <sip:alice@example.com>;tag=1235
To: John <sip:Gold@example.com>;tag=2325 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 ACK CSeq: 1 ACK
History-Info: <sip:Silver@192.0.2.7>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
The last hi-entry with the "mp" header field parameter contains a Figure 4: Figure 4. Example for Automatic Call Distribution
The first hi-entry with the "mp" header field parameter contains a
"mp" header field parameter value of 1 which points to the original- "mp" header field parameter value of 1 which points to the original-
target which allows the operator to identify that the call was from target which allows the operator to identify that the call was from
the "Gold" customer. the "Gold" customer.
3.5. Determining the Alias used. 3.5. Determining the Alias used.
SIP user agents are associated with an address-of-record (AOR). It SIP user agents are associated with an address-of-record (AOR). It
is possible for a single UA to actually have multiple AORs associated is possible for a single UA to actually have multiple AORs associated
with it. One common usage for this is aliases. For example, a user with it. One common usage for this is aliases. For example, a user
might have an AOR of sip:john@example.com but also have the AORs might have an AOR of sip:john@example.com but also have the AORs
sip:john.smith@example.com and sip:jsmith@example.com. Rather than sip:john.smith@example.com and sip:jsmith@example.com. Rather than
registering against each of these AORs individually, the user would registering against each of these AORs individually, the user would
register against just one of them, and the home proxy would register against just one of them, and the home proxy would
automatically accept incoming calls for any of the aliases, treating automatically accept incoming calls for any of the aliases, treating
them identically and ultimately forwarding them towards the UA. This them identically and ultimately forwarding them towards the UA. This
is common practice in the Internet Multimedia Subsystem (IMS), where is common practice in the Internet Multimedia Subsystem (IMS), where
it is called implicit registration and each alias is called a public it is called implicit registration and each alias is called a public
identity. user identity (PUID).
It is a common requirement for a UAS, on receipt of a call, to know It is a common requirement for a UAS, on receipt of a call, to know
which of its aliases was used to reach it. This knowledge can be which of its aliases was used to reach it. This knowledge can be
used to choose ringtones to play, determine call treatment, and so used to choose ringtones to play, determine call treatment, and so
on. For example, a user might give out one alias to friends and on. For example, a user might give out one alias to friends and
family only, resulting in a special ring that alerts the user to the family only, resulting in a special ring that alerts the user to the
importance of the call. importance of the call.
The following call-flow and example messages show how History-Info The following call-flow and example messages show how History-Info
can be used to find out the alias used to reach the callee. The can be used to find out the alias used to reach the callee. The
skipping to change at page 24, line 36 skipping to change at page 24, line 45
| |-------------------->| | |-------------------->|
* Rest of flow not shown * * Rest of flow not shown *
F1 REGISTER John -> Example.com F1 REGISTER John -> Example.com
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
Max-Forwards: 70 Max-Forwards: 70
From: John <sip:john@example.com>;tag=a73kszlfl From: John <sip:john@example.com>;tag=a73kszlfl
To: John <sip:john@example.com> To: John <sip:john@example.com>
Supported: histinfo
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1> Contact: <sip:john@192.0.2.1>
Content-Length: 0 Content-Length: 0
F2 200 OK Example.com -> John F2 200 OK Example.com -> John
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
From: John <sip:john@example.com>;tag=a73kszlfl From: John <sip:john@example.com>;tag=a73kszlfl
To: John <sip:john@example.com>;tag=d2dstee2 To: John <sip:john@example.com>;tag=d2dstee2
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1>;expires=3600 Contact: <sip:john@192.0.2.1>;expires=3600
Content-Length: 0 Content-Length: 0
skipping to change at page 25, line 4 skipping to change at page 25, line 14
F2 200 OK Example.com -> John F2 200 OK Example.com -> John
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
From: John <sip:john@example.com>;tag=a73kszlfl From: John <sip:john@example.com>;tag=a73kszlfl
To: John <sip:john@example.com>;tag=d2dstee2 To: John <sip:john@example.com>;tag=d2dstee2
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1>;expires=3600 Contact: <sip:john@192.0.2.1>;expires=3600
Content-Length: 0 Content-Length: 0
F3 INVITE Alice -> Example.com F3 INVITE Alice -> Example.com
INVITE sip:john.smith@example.com SIP/2.0 INVITE sip:john.smith@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forwards: 70
From: Alice <sip:alice@example.com>;tag=a73kszlfl From: Alice <sip:alice@example.com>;tag=a73kszlfl
To: John <sip:john.smith@example.com> To: John <sip:john.smith@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:john.smith@example.com>;index=1 History-Info: <sip:john.smith@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F4 INVITE Example.com -> John F4 INVITE Example.com -> John
INVITE sip:john@192.0.2.1 SIP/2.0 INVITE sip:john@192.0.2.1 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forwards: 69
From: Alice <sip:alice@example.com>;tag=a73kszlfl From: Alice <sip:alice@example.com>;tag=a73kszlfl
To: John <sip:john.smith@example.com> To: John <sip:john.smith@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:john.smith@example.com>;index=1 History-Info: <sip:john.smith@example.com>;index=1
History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
Figure 5: Figure 5. Alias Example
Figure 3: Alias Example
The last hi-entry with the "rc" header field parameter references the The last hi-entry with the "rc" header field parameter references the
source of retargeting pointing at the alias AoR, which in the example source of retargeting pointing at the alias AoR, which in the example
is "john.smith@example.com". is "john.smith@example.com".
3.6. PBX Voicemail Example 3.6. PBX Voicemail Example
A typical use case for voicemail is one whereby the original called A typical use case for voicemail is one whereby the original called
party is not reachable and the call arrives at a voicemail system. party is not reachable and the call arrives at a voicemail system.
In some cases multiple alternate destinations may be tried without In some cases multiple alternate destinations may be tried without
success. The voicemail system typically requires the original called success. The voicemail system typically requires the original called
party information to determine the appropriate mailbox so an party information to determine the appropriate mailbox so an
appropriate greeting can be provided and the appropriate party appropriate greeting can be provided and the appropriate party
notified of the message. notified of the message.
In this example, Alice calls Bob, whose SIP client is forwarded to In this example, Alice calls Bob, whose SIP client is forwarded to
Carol. Carol does not answer the call, thus it is forwarded to a VM Carol. Carol does not answer the call, thus it is forwarded to a VM
(voicemail) server (VMS). In order to determine the appropriate (voicemail) server (VMS). In order to determine the appropriate
mailbox to use for this call, the VMS needs the original target for mailbox to use for this call, the VMS needs the original target for
the request. The original target is determined by finding the first the request. The original target is determined by finding the first
hi-entry tagged with "rc" and using the hi-entry referenced by the hi-entry tagged with "rc" or "mp" and using the hi-entry referenced
index of "rc" header field parameter as the target for determining by the index of "rc" or "mp" header field parameter as the target for
the appropriate mailbox. This hi-entry is used to populate the determining the appropriate mailbox. This hi-entry is used to
"target" URI parameter as defined in [RFC4458]. The reason populate the "target" URI parameter as defined in [RFC4458]. The
associated with the first hi-entry tagged with "rc" (i.e., 302) could reason associated with the first hi-entry tagged with "rc" or "mp"
be used to provide a customized voicemail greeting and is used to (i.e., 302) could be used to provide a customized voicemail greeting
populate the "cause" URI parameter as defined in [RFC4458]. Note and is used to populate the "cause" URI parameter as defined in
that some VMSs may also (or instead) use the information available in [RFC4458]. Note that some VMSs may also (or instead) use the
the History-Info headers for custom handling of the VM in terms of information available in the History-Info headers for custom handling
how and why the call arrived at the VMS. of the VM in terms of how and why the call arrived at the VMS.
Furthermore it is the proxy forwarding the call to VMS that Furthermore it is the proxy forwarding the call to VMS that
determines the target of the voicemail, it is the proxy that sets the determines the target of the voicemail, it is the proxy that sets the
target of voicemail which is also the entity that utilizes RFC4244bis target of voicemail which is also the entity that utilizes RFC4244bis
to find the target which is usually based on local policy installed to find the target which is usually based on local policy installed
by the user or an administrator. by the user or an administrator.
Alice example.com Bob Carol VM Alice example.com Bob Carol VM
| INVITE F1 | | | | | INVITE F1 | | | |
|------------->| | | | |------------->| | | |
| | INVITE F2 | | | | | INVITE F2 | | |
| |------------->| | | | |------------->| | |
| | | | | | | | | |
| 100 Trying | | | | | 100 Trying | | | |
|<-------------| 302 Moved Temporarily F3 | | |<-------------| 302 Moved Temporarily F3 | |
| |<-------------| | | | |<-------------| | |
| | | | | | | | | |
| | INVITE F4 | | | | ACK | | |
| |--------------------------->| | |---------------------------->| | |
| | | | | | | | | |
| | 180 Ringing F5 | | | | INVITE F4 | | |
| |<---------------------------| | | |--------------------------->| |
| | | | | | | | | |
| 180 Ringing | | | | | | 180 Ringing F5 | |
|<-------------| | | | | |<---------------------------| |
| | | | | | | | | |
| | (timeout) | | | 180 Ringing | | | |
| | | | | |<-------------| | | |
| | INVITE F6 | | | | | | | |
| |-------------------------------------->| | | (timeout) | |
| | | | | | | | | |
| | 200 OK F7 | | | INVITE F6 | | |
| |<--------------------------------------| | |-------------------------------------->|
| 200 OK | | | | | | | | |
|<-------------| | | | | | 200 OK F7 |
| | | | | | |<--------------------------------------|
| ACK | | 200 OK | | | |
|----------------------------------------------------->| |<-------------| | | |
| | | | |
| ACK |
|----------------------------------------------------->|
F1 INVITE Alice -> Example.com F1 INVITE Alice -> Example.com
INVITE sip:bob@example.com INVITE sip:bob@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- Max-Forward: 70
To: Bob <sip:bob@example.com> From: Alice <sip:alice@example.com>;tag=kkaz-
Supported: histinfo To: Bob <sip:bob@example.com>
Call-Id: 12345600@example.com Supported: histinfo
CSeq: 1 INVITE Call-Id: 12345600@example.com
Contact: Alice <sip:alice@192.0.2.3> CSeq: 1 INVITE
Content-Length: <appropriate value> History-Info: <sip:bob@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F2 INVITE Example.com -> Bob F2 INVITE Example.com -> Bob
INVITE sip:bob@192.0.2.5 SIP/2.0 INVITE sip:bob@192.0.2.5 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- Max-Forward: 69
To: Bob <sip:bob@example.com> From: Alice <sip:alice@example.com>;tag=kkaz-
Supported: histinfo To: Bob <sip:bob@example.com>
Call-Id: 12345600@example.com Supported: histinfo
CSeq: 1 INVITE Call-Id: 12345600@example.com
History-Info: <sip:bob@example.com>;index=1 CSeq: 1 INVITE
History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1 History-Info: <sip:bob@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3> History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1
Content-Type: application/sdp Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value> Content-Type: application/sdp
Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F3 302 Moved Temporarily Bob -> Example.com F3 302 Moved Temporarily Bob -> Example.com
SIP/2.0 302 Moved Temporarily SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=2g22d-lnf To: Bob <sip:bob@example.com>;tag=2g22d-lnf
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5>; index=1.1;rc=1 History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1
Contact: <sip:carol@example.com> Contact: <sip:carol@example.com>;mp=1
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F4 INVITE Example.com -> Carol F4 INVITE Example.com -> Carol
INVITE sip:carol@192.0.2.4 SIP/2.0 INVITE sip:carol@192.0.2.4 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- Max-Forward: 68
To: Bob <sip:bob@example.com> From: Alice <sip:alice@example.com>;tag=kkaz-
Supported: histinfo To: Bob <sip:bob@example.com>
Call-Id: 12345600@example.com Supported: histinfo
CSeq: 1 INVITE Call-Id: 12345600@example.com
History-Info: <sip:bob@example.com>;index=1 CSeq: 1 INVITE
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@example.com>;index=1
index=1.1;rc=1 History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\
History-Info: <sip:carol@example.com>;index=1.2;mp=1 index=1.1;rc=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@example.com>;index=1.2;mp=1
Contact: Alice <sip:alice@192.0.2.3> History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
Content-Type: application/sdp Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value> Content-Type: application/sdp
Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F5 180 Ringing Carol -> Example.com F5 180 Ringing Carol -> Example.com
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=setss3x To: Bob <sip:bob@example.com>;tag=setss3x
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1 index=1.1;rc=1
History-Info: <sip:carol@example.com>;index=1.2;mp=1 History-Info: <sip:carol@example.com>;index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
Contact: <sip:carol@192.0.2.4> Contact: <sip:carol@192.0.2.4>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F6 INVITE Example.com -> VM F6 INVITE Example.com -> VM
INVITE sip:vm@192.0.2.6;target=sip:bob%40example.com;cause=408 INVITE sip:vm@192.0.2.6;target=sip:bob%40example.com;cause=480 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- Max-Forward: 67
To: Bob <sip:bob@example.com> From: Alice <sip:alice@example.com>;tag=kkaz-
Supported: histinfo To: Bob <sip:bob@example.com>
Call-Id: 12345600@example.com Supported: histinfo
CSeq: 1 INVITE Call-Id: 12345600@example.com
History-Info: <sip:bob@example.com>;index=1 CSeq: 1 INVITE
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@example.com>;index=1
index=1.1;rc=1 History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\
History-Info: <sip:carol@example.com>;index=1.2;mp=1 index=1.1;rc=1
History-Info: <sip:carol@192.0.2.4?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:carol@example.com>;index=1.2;mp=1
index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4?Reason=SIP%3Bcause%3D480>;\
History-Info: <sip:vm@example.com;\ index=1.2.1;rc=1.2
target=sip:bob%40example.com;cause=408>;\
index=1.3;mp=1.2
History-Info: <sip:vm@192.0.2.6;\
target=sip:bob%40example.com;cause=408>;\
index=1.3.1;rc=1.3
Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp
Content-Length: <appropriate value>
[SDP Not Shown] History-Info: <sip:vm@example.com;\
target=sip:bob%40example.com>;\
index=1.3;mp=1
History-Info: <sip:vm@192.0.2.6;\
target=sip:bob%40example.com>;\
index=1.3.1;rc=1.3
Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp
Content-Length: <appropriate value>
F7 200 OK VM -> Example.com [SDP Not Shown]
SIP/2.0 200 OK F7 200 OK VM -> Example.com
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=3dweggs
Supported: histinfo
Call-Id: 12345600@example.com
CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1
History-Info: <sip:carol@example.com>;index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4?Reason=SIP%3Bcause%3D408>;\
index=1.2.1;rc=1.2
History-Info: <sip:vm@example.com;\
target=sip:bob%40example.com;cause=408>;\
index=1.3;mp=1.2
History-Info: <sip:vm@192.0.2.6;\
target=sip:bob%40example.com;cause=408>;\
index=1.3.1;rc=1.3
Contact: <sip:carol@192.0.2.6>
Content-Type: application/sdp
Content-Length: <appropriate value>
[SDP Not Shown] SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4523;\
received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=3dweggs
Supported: histinfo
Call-Id: 12345600@example.com
CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\
index=1.1;rc=1
History-Info: <sip:carol@example.com>;index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4?Reason=SIP%3Bcause%3D480>;\
index=1.2.1;rc=1.2
History-Info: <sip:vm@example.com;\
target=sip:bob%40example.com>;\
index=1.3;mp=1
History-Info: <sip:vm@192.0.2.6;\
target=sip:bob%40example.com>;\
index=1.3.1;rc=1.3
Contact: <sip:vm@192.0.2.6>
Content-Type: application/sdp
Content-Length: <appropriate value>
[SDP Not Shown]
Figure 6: Figure 6. Enterprise Voivemail Example
The VMS can look at the last hi-entry and find the target of the The VMS can look at the last hi-entry and find the target of the
mailbox by looking at the URI entry in the "target" URI parameter in mailbox by looking at the URI entry in the "target" URI parameter in
the hi-entry. the hi-entry.
3.7. Consumer Voicemail Example 3.7. Consumer Voicemail Example
In the case of a consumer, when the call is retargeted, it is usually In the case of a consumer, when the call is retargeted, it is usually
to another administrative domain. The voicemail system in these to another administrative domain. The voicemail system in these
environment typically requires the last called party information to environment typically requires the last called party information to
determine the appropriate mailbox so an appropriate greeting can be determine the appropriate mailbox so an appropriate greeting can be
provided and the appropriate party notified of the message. provided and the appropriate party notified of the message.
In this example, Alice calls the Bob but Bob has temporarily In this example, Alice calls the Bob but Bob has temporarily
forwarded his phone to Carol because she is his wife. Carol does not forwarded his phone to Carol because she is his wife. Carol does not
answer the call, thus it is forwarded to a VM (voicemail) server answer the call, thus it is forwarded to a VM (voicemail) server
(VMS). In order to determine the appropriate mailbox to use for this (VMS). In order to determine the appropriate mailbox to use for this
call, the VMS needs the appropriate target for the request. The last call, the VMS needs the appropriate target for the request. The last
target is determined by finding the hi-entry referenced by the index target is determined by finding the hi-entry referenced by the index
of last hi-entry tagged with "rc" for determining the appropriate of last hi-entry tagged with "mp" for determining the appropriate
mailbox. This hi-entry is used to populate the "target" URI mailbox. This hi-entry is used to populate the "target" URI
parameter as defined in [RFC4458]. Note that some VMSs may also (or parameter as defined in [RFC4458]. Note that some VMSs may also (or
instead) use the information available in the History-Info headers instead) use the information available in the History-Info headers
for custom handling of the VM in terms of how and why the called for custom handling of the VM in terms of how and why the called
arrived at the VMS. arrived at the VMS.
Alice example.com Bob Carol VM Alice example.com Bob Carol VM
| INVITE F1 | | | | | INVITE F1 | | | |
|------------->| | | | |------------->| | | |
| | INVITE F2 | | | | | INVITE F2 | | |
| |------------->| | | | |------------->| | |
| | | | | | | | | |
| 100 Trying | | | | | 100 Trying | | | |
|<-------------| 302 Moved Temporarily F3 | | |<-------------| 302 Moved Temporarily F3 | |
| |<-------------| | | | |<-------------| | |
| | | | | | | | | |
| ACK | | |
|---------------------------->| | |
| | | | |
| | INVITE F4 | | | | | INVITE F4 | | |
| |--------------------------->| | | |--------------------------->| |
| | | | | | | | | |
| | 180 Ringing F5 | | | | 180 Ringing F5 | |
| |<---------------------------| | | |<---------------------------| |
| | | | | | | | | |
| 180 Ringing | | | | | 180 Ringing | | | |
|<-------------| | | | |<-------------| | | |
| | | | | | | | | |
| | (timeout) | | | | (timeout) | |
skipping to change at page 31, line 40 skipping to change at page 32, line 17
| | 200 OK F7 | | | 200 OK F7 |
| |<--------------------------------------| | |<--------------------------------------|
| 200 OK | | | | | 200 OK | | | |
|<-------------| | | | |<-------------| | | |
| | | | | | | | | |
| ACK | | ACK |
|----------------------------------------------------->| |----------------------------------------------------->|
F1 INVITE Alice -> Example.com F1 INVITE Alice -> Example.com
INVITE sip:bob@example.com INVITE sip:bob@example.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F2 INVITE Example.com -> Bob F2 INVITE Example.com -> Bob
INVITE sip:bob@192.0.2.5 SIP/2.0 INVITE sip:bob@192.0.2.5 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1 History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
skipping to change at page 32, line 34 skipping to change at page 33, line 16
SIP/2.0 302 Moved Temporarily SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=224ls3s-t To: Bob <sip:bob@example.com>;tag=224ls3s-t
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5>; index=1.1;rc=1 History-Info: <sip:bob@192.0.2.5>;index=1.1;rc=1
Contact: <sip:carol@example.com> Contact: <sip:carol@example.com>;mp=1
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F4 INVITE Example.com -> Carol F4 INVITE Example.com -> Carol
INVITE sip:carol@192.0.2.4 SIP/2.0 INVITE sip:carol@192.0.2.4 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 68
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\
index=1.1;rc=1 ;text="Moved Temporarily">\
;index=1.1;rc=1
History-Info: <sip:carol@example.com>;index=1.2;mp=1 History-Info: <sip:carol@example.com>;index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F5 180 Ringing Carol -> Example.com F5 180 Ringing Carol -> Example.com
skipping to change at page 33, line 20 skipping to change at page 34, line 4
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F5 180 Ringing Carol -> Example.com F5 180 Ringing Carol -> Example.com
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\
received=192.0.2.101 received=192.0.2.101
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=setss3x To: Bob <sip:bob@example.com>;tag=setss3x
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\
index=1.1;rc=1 ;text="Moved Temporarily">\
;index=1.1;rc=1
History-Info: <sip:carol@example.com>;index=1.2;mp=1 History-Info: <sip:carol@example.com>;index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
Contact: <sip:carol@192.0.2.4> Contact: <sip:carol@192.0.2.4>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F6 INVITE Example.com -> VM F6 INVITE Example.com -> VM
INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com INVITE sip:vm@192.0.2.6;target=sip:carol%40example.com SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 67
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com> To: Bob <sip:bob@example.com>
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\
index=1.1;rc ;text="Moved Temporarily">\
;index=1.1;rc=1
History-Info: <sip:carol@example.com?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:carol@example.com?Reason=SIP%3Bcause%3D408>;\
index=1.2;mp=1 index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
History-Info: <sip:vm@example.com;target=sip:carol%40example.com>;\ History-Info: <sip:vm@example.com;target=sip:carol%40example.com>;\
index=1.3;mp=1.2 index=1.3;mp=1.2
History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com>;\ History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com>\
index=1.3.1 ;cause=408;index=1.3.1;rc=1.3
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F7 200 OK VM -> Example.com F7 200 OK VM -> Example.com
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: Bob <sip:bob@example.com>;tag=3dweggs To: Bob <sip:bob@example.com>;tag=3dweggs
Supported: histinfo Supported: histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@example.com>;index=1
History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302>;\ History-Info: <sip:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\
index=1.1;rc ;text="Moved Temporarily">\
;index=1.1;rc=1
History-Info: <sip:carol@example.com?Reason=SIP%3Bcause%3D408>;\ History-Info: <sip:carol@example.com?Reason=SIP%3Bcause%3D408>;\
index=1.2;mp=1 index=1.2;mp=1
History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2 History-Info: <sip:carol@192.0.2.4>;index=1.2.1;rc=1.2
History-Info: <sip:vm@example.com;target=sip:carol%40example.com>;\ History-Info: <sip:vm@example.com;target=sip:carol%40example.com>;\
index=1.3;mp=1.2 index=1.3;mp=1.2
History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com>;\ History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com>;\
index=1.3.1 index=1.3.1;rc=1.3
Contact: <sip:carol@192.0.2.5> Contact: <sip:carol@192.0.2.5>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
Figure 7: Figure 7. Consumer Voivemail Example
The VMS can look at the last hi-entry and find the target of the The VMS can look at the last hi-entry and find the target of the
mailbox by looking for the "target" URI parameter in the hi-entry. mailbox by looking for the "target" URI parameter in the hi-entry and
the reason by the "cause" URI parameter in the same hi-entry.
3.8. GRUU 3.8. GRUU
A variation on the problem in Section 3.5 occurs with Globally A variation on the problem in Section 3.5 occurs with Globally
Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned
to a UA instance which has many of the same properties as the AOR, to a UA instance which has many of the same properties as the AOR,
but causes requests to be routed only to that specific instance. It but causes requests to be routed only to that specific instance. It
is desirable for a UA to know whether it was reached because a is desirable for a UA to know whether it was reached because a
correspondent sent a request to its GRUU or to its AOR. This can be correspondent sent a request to its GRUU or to its AOR. This can be
used to drive differing authorization policies on whether the request used to drive differing authorization policies on whether the request
skipping to change at page 35, line 46 skipping to change at page 36, line 37
F1 REGISTER John -> Example.com F1 REGISTER John -> Example.com
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
Max-Forwards: 70 Max-Forwards: 70
From: John <sip:John@example.com>;tag=a73kszlfl From: John <sip:John@example.com>;tag=a73kszlfl
Supported: gruu Supported: gruu
To: John <sip:john@example.com> To: John <sip:john@example.com>
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1> Contact: <sip:john@192.0.2.1>;+sip.instance=\
;+sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" <urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>
Content-Length: 0 Content-Length: 0
[SDP Not Shown] [SDP Not Shown]
F2 200 OK Example.com -> John F2 200 OK Example.com -> John
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
From: John <sip:john@example.com>;tag=a73kszlfl From: John <sip:john@example.com>;tag=a73kszlfl
To: John <sip:john@example.com> ;tag=b88sn To: John <sip:john@example.com> ;tag=b88sn
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1> Contact: <sip:john@192.0.2.1>;\
;pub-gruu="sip:john@example.com pub-gruu="sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\
;temp-gruu= temp-gruu=\
"sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr" "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\
;+sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" +sip.instance=\
;expires=3600 "<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\
Content-Length: 0 expires=3600
Content-Length: 0
[SDP Not Shown] [SDP Not Shown]
Assuming Alice has a knowledge of a gruu either through Assuming Alice has a knowledge of a gruu either through
prior communication or through other means such as presence prior communication or through other means such as presence
places a call to John's gruu. places a call to John's gruu.
F3 INVITE Alice -> Example.com F3 INVITE Alice -> Example.com
INVITE sip:john@example.com INVITE sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 70
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: <sip:john@example.com To: <sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>
Supported: gruu, histinfo Supported: gruu, histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: <sip:john@example.com History-Info: <sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F4 INVITE Example.com -> John F4 INVITE Example.com -> John
INVITE sip:john@192.0.2.1 SIP/2.0 INVITE sip:john@192.0.2.1 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: John <sip:john@example.com> To: <sip:john@example.com;\
gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>
Supported: gruu, histinfo Supported: gruu, histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:john@example.com History-Info: <sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1
History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
Figure 4: GRUU Example Figure 8: Figure 8. GRUU Example
By analyzing the entry referenced by the entry with the last "rc", By analyzing the entry referenced by the entry with the last "rc",
one can realize that the URI used to reach the device was GRUU by one can realize that the URI used to reach the device was GRUU by
finding the "gr" parameter. finding the "gr" parameter.
3.9. Limited Use Address 3.9. Limited Use Address
A limited use address is a SIP URI that is minted on-demand, and A limited use address is a SIP URI that is minted on-demand, and
passed out to a small number (usually one) remote correspondent. passed out to a small number (usually one) remote correspondent.
Incoming calls targeted to that limited use address are accepted as Incoming calls targeted to that limited use address are accepted as
skipping to change at page 38, line 33 skipping to change at page 39, line 28
F1 REGISTER John -> Example.com F1 REGISTER John -> Example.com
REGISTER sip:example.com SIP/2.0 REGISTER sip:example.com SIP/2.0
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
Max-Forwards: 70 Max-Forwards: 70
From: John <sip:John@example.com>;tag=a73kszlfl From: John <sip:John@example.com>;tag=a73kszlfl
Supported: gruu Supported: gruu
To: John <sip:john@example.com> To: John <sip:john@example.com>
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1> Contact: <sip:john@192.0.2.1>;\
;+sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>"
Content-Length: 0 Content-Length: 0
F2 200 OK Example.com -> John F2 200 OK Example.com -> John
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7
Max-Forward: 70
From: John <sip:john@example.com>;tag=a73kszlfl From: John <sip:john@example.com>;tag=a73kszlfl
To: John <sip:john@example.com> ;tag=b88sn To: John <sip:john@example.com> ;tag=b88sn
Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: <sip:john@192.0.2.1> Contact: <sip:john@192.0.2.1>;\
;pub-gruu="sip:john@example.com pub-gruu="sip:john@example.com;\
;gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\
;temp-gruu= temp-gruu=\
"sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr" "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\
;+sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\
;expires=3600 expires=3600
Content-Length: 0 Content-Length: 0
Assuming Alice has a knowledge of a temp-gruu, she places a Assuming Alice has a knowledge of a temp-gruu, she places a
call to the temp-gruu. call to the temp-gruu.
F3 INVITE Alice -> Example.com F3 INVITE Alice -> Example.com
INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\
;gr SIP/2.0 gr SIP/2.0
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 69
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: <sip:sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com To: <sip:sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\
;gr> ;gr>
Supported: gruu, histinfo Supported: gruu, histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
History-Info: History-Info: \
<sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr> <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\
;index=1 ;index=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Length: <appropriate value> Content-Length: <appropriate value>
F4 INVITE Example.com -> John F4 INVITE Example.com -> John
INVITE sip:john@192.0.2.1 SIP/2.0 INVITE sip:john@192.0.2.1 SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4
Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2
Max-Forward: 68
From: Alice <sip:alice@example.com>;tag=kkaz- From: Alice <sip:alice@example.com>;tag=kkaz-
To: John <sip:john@example.com> To: <sip:sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\
;gr>
Supported: gruu, histinfo Supported: gruu, histinfo
Call-Id: 12345600@example.com Call-Id: 12345600@example.com
CSeq: 1 INVITE CSeq: 1 INVITE
Record-Route: <sip:proxy.example.com;lr> Record-Route: <sip:proxy.example.com;lr>
History-Info: History-Info: \
<sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr> <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\
;index=1 ;index=1
History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1
Contact: Alice <sip:alice@192.0.2.3> Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
Figure 5: Limited Use Address Example Figure 9: Figure 9. Limited Use Address Example
By analyzing the entry referenced by the entry with the last "rc", By analyzing the entry referenced by the entry with the last "rc",
one can realize that the URI used to reach the device was GRUU by one can realize that the URI used to reach the device was GRUU by
finding the "gr" parameter. finding the "gr" parameter.
3.10. Service Invocation 3.10. Service Invocation
Several SIP specifications have been developed which make use of Several SIP specifications have been developed which make use of
complex URIs to address services within the network rather than complex URIs to address services within the network rather than
subscribers. The URIs are complex because they contain numerous subscribers. The URIs are complex because they contain numerous
skipping to change at page 41, line 8 skipping to change at page 42, line 8
8xx numbers are SIP endpoints on an IP network, in which case the 8xx numbers are SIP endpoints on an IP network, in which case the
translation of the 8xx number would actually be a SIP URI and not a translation of the 8xx number would actually be a SIP URI and not a
phone number. Assuming for the moment it is a PSTN connected entity, phone number. Assuming for the moment it is a PSTN connected entity,
the call would be routed towards a PSTN gateway. Proper treatment of the call would be routed towards a PSTN gateway. Proper treatment of
the call in the PSTN (and in particular, correct reconciliation of the call in the PSTN (and in particular, correct reconciliation of
billing records) requires that the call be marked with both the billing records) requires that the call be marked with both the
original 8xx number AND the target number for the call. However, in original 8xx number AND the target number for the call. However, in
our example here, since the translation was performed by a SIP proxy our example here, since the translation was performed by a SIP proxy
upstream from the gateway, the original 8xx number would have been upstream from the gateway, the original 8xx number would have been
lost, and the call will not interwork properly with the PSTN. lost, and the call will not interwork properly with the PSTN.
History-info would come in play here to assure original 8xx number is
not lost.
Furthermore, even if the translation of the 8xx number was a SIP URI, Furthermore, even if the translation of the 8xx number was a SIP URI,
the enterprise or user who utilize the 8xx service would like to know the enterprise or user who utilize the 8xx service would like to know
whether the call came in via 8xx number in order to treat the call whether the call came in via 8xx number in order to treat the call
differently (for example to play a special announcement..) but if the differently (for example to play a special announcement..) but if the
original R-URI is lost through translation, there is no way to tell original R-URI is lost through translation, there is no way to tell
if the call came in via 8xx number. if the call came in via 8xx number.
Similar problems arise with other "special" numbers and services used Similar problems arise with other "special" numbers and services used
in the PSTN, such as operator services, pay/premium numbers (9xx in the PSTN, such as operator services, pay/premium numbers (9xx
numbers in the U.S), and short service codes such as 311. numbers in the U.S), and short service codes such as 311.
To find the service number, the UAS can extract the hi-entry whose To find the service number, the UAS can extract the hi-entry whose
index matches the value of the first hi-entry with an "mp" tag. index matches the value of the first hi-entry with an "mp" tag.
Technically the call can be forwarded to these "special" numbers from Technically the call can be forwarded to these "special" numbers from
non "special" numbers, however that is uncommon based on the way non "special" numbers, however that is uncommon based on the way
these services authorize translations. these services authorize translations.
This example call-flow shows an UAC that does not support history-
info.
Alice Toll Free Service Atlanta.com John Alice Toll Free Service Atlanta.com John
| | | | | | | |
| INVITE F1 | | | | INVITE F1 | | |
|--------------->| INVITE F2 | | |--------------->| INVITE F2 | |
| |------------->| | | |------------->| |
| | | INVITE F3 | | | | INVITE F3 |
| | |------------------>| | | |------------------>|
* Rest of flow not shown * * Rest of flow not shown *
F1: INVITE 192.0.2.1 -> Toll Free Service F1: INVITE 192.0.2.1 -> Toll Free Service
INVITE sip:+18005551002@example.com;user=phone SIP/2.0 INVITE sip:+18005551002@example.com;user=phone SIP/2.0
Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf
From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl
To: sip:+18005551002@example.com;user=phone To: <sip:+18005551002@example.com;user=phone>
Call-ID: c3x842276298220188511 Call-ID: c3x842276298220188511
CSeq: 1 INVITE CSeq: 1 INVITE
Max-Forwards: 70 Max-Forwards: 70
Contact: <sip:alice@192.0.2.1> Contact: <sip:alice@192.0.2.1>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F2: INVITE Toll Free Service -> Atlanta.com F2: INVITE Toll Free Service -> Atlanta.com
skipping to change at page 42, line 4 skipping to change at page 43, line 9
Call-ID: c3x842276298220188511 Call-ID: c3x842276298220188511
CSeq: 1 INVITE CSeq: 1 INVITE
Max-Forwards: 70 Max-Forwards: 70
Contact: <sip:alice@192.0.2.1> Contact: <sip:alice@192.0.2.1>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F2: INVITE Toll Free Service -> Atlanta.com F2: INVITE Toll Free Service -> Atlanta.com
INVITE sip:+15555551002@atlanta.com SIP/2.0 INVITE sip:+15555551002@atlanta.com SIP/2.0
Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8
Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf
From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl
To: sip:+18005551002@example.com;user=phone To: <sip:+18005551002@example.com;user=phone>
Call-ID: c3x842276298220188511 Call-ID: c3x842276298220188511
CSeq: 1 INVITE CSeq: 1 INVITE
Max-Forwards: 70 Max-Forwards: 69
Supported: histinfo Supported: histinfo
History-Info: <sip:+18005551002@example.com;user=phone>;index=1, History-Info: <sip:+18005551002@example.com;user=phone>;index=1
<sip:+15555551002@atlanta.com>;index=1.1;mp=1 History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1
Contact: <sip:alice@192.0.2.1> Contact: <sip:alice@192.0.2.1>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
F3: INVITE Atlanta.com -> John F3: INVITE Atlanta.com -> John
INVITE sip:john@198.51.100.2 SIP/2.0 INVITE sip:john@198.51.100.2 SIP/2.0
Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g Via: SIP/2.0/TCP 198.51.100.1:5060;branch=z9hG4bKpxk7g
Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik80 Via: SIP/2.0/TCP 192.0.2.4:5060;branch=z9hG4bK-ik8
Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf
From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl
To: sip:+18005551002@example.com;user=phone To: <sip:+18005551002@example.com;user=phone>
Call-ID: c3x842276298220188511 Call-ID: c3x842276298220188511
CSeq: 1 INVITE CSeq: 1 INVITE
Max-Forwards: 70 Max-Forwards: 68
Supported: histinfo Supported: histinfo
History-Info: <sip:+18005551002@example.com;user=phone>;index=1, History-Info: <sip:+18005551002@example.com;user=phone>;index=1
<sip:+15555551002@atlanta.com>;index=1.1;mp=1, History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1
<sip:john@atlanta.com>;index=1.1.1;rc=1.1 History-Info: <sip:john@atlanta.com>;index=1.1.1;rc=1.1
<sip:john@198.51.100.2>;index=1.1.2;rc=1.1 History-Info: <sip:john@198.51.100.2>;index=1.1.1.1;rc=1.1.1
Contact: <sip:alice@192.0.2.1> Contact: <sip:alice@192.0.2.1>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: <appropriate value> Content-Length: <appropriate value>
[SDP Not Shown] [SDP Not Shown]
Figure 6: Service Number Example Figure 10: Figure 10. Service Number Example
4. Security Considerations 4. Security Considerations
The security considerations for the History-Info header field are The security considerations for the History-Info header field are
specified in [I-D.ietf-sipcore-rfc4244bis]. specified in [I-D.ietf-sipcore-rfc4244bis].
5. IANA Considerations 5. IANA Considerations
This document has no IANA considerations. This document has no IANA considerations.
5.1. Acknowledgements 5.1. Acknowledgements
Jonathan Rosenberg et al produced the document that provided Jonathan Rosenberg et al produced the document that provided
additional use cases precipitating the requirement for the new additional use cases precipitating the requirement for the new
"target" parameter in the History-Info header field and the new SIP/ "target" parameter in the History-Info header field and the new SIP/
SIPS URI parameter. Hadriel Kaplan provided some comments. SIPS URI parameter. Hadriel Kaplan provided some comments.
Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley and
Marianne Mohali provided extensive review and comments on call-flow,
message examples and text.
6. Informative References 6. Informative References
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason [RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason
Header Field for the Session Initiation Protocol (SIP)", Header Field for the Session Initiation Protocol (SIP)",
RFC 3326, December 2002. RFC 3326, December 2002.
skipping to change at page 44, line 36 skipping to change at page 45, line 46
[I-D.ietf-enum-cnam] [I-D.ietf-enum-cnam]
Shockey, R., "IANA Registration for an Enumservice Calling Shockey, R., "IANA Registration for an Enumservice Calling
Name Delivery (CNAM) Information and IANA Registration for Name Delivery (CNAM) Information and IANA Registration for
URI type 'pstndata'", draft-ietf-enum-cnam-08 (work in URI type 'pstndata'", draft-ietf-enum-cnam-08 (work in
progress), September 2008. progress), September 2008.
[I-D.ietf-sipcore-rfc4244bis] [I-D.ietf-sipcore-rfc4244bis]
Barnes, M., Audet, F., Schubert, S., Elburg, H., and C. Barnes, M., Audet, F., Schubert, S., Elburg, H., and C.
Holmberg, "An Extension to the Session Initiation Protocol Holmberg, "An Extension to the Session Initiation Protocol
(SIP) for Request History Information", (SIP) for Request History Information",
draft-ietf-sipcore-rfc4244bis-09 (work in progress), draft-ietf-sipcore-rfc4244bis-11 (work in progress),
September 2012. January 2013.
Authors' Addresses Authors' Addresses
Mary Barnes Mary Barnes
Polycom Polycom
TX TX
US US
Email: mary.ietf.barnes@gmail.com Email: mary.ietf.barnes@gmail.com
Francois Audet Francois Audet
Skype Skype
Email: francois.audet@skype.net Email: francois.audet@skype.net
Shida Schubert Shida Schubert
NTT NTT
Tokyo Tokyo
Japan Japan
 End of changes. 191 change blocks. 
373 lines changed or deleted 455 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/