STIR | M. Barnes |
Internet-Draft | iconectiv |
Intended status: Informational | October 22, 2018 |
Expires: April 25, 2019 |
Session Initiation Protocol (SIP) Call Flow Examples with PASSporT Diversion and History-Info
draft-barnes-stir-passport-div-hi-callflows-02
This document focuses on use cases and call flows which include the History-Info header field and a SIP Identity header field with a PASSport with a "div" claim in cases of retargeting. These use cases are derived from those provided in the SIP History-Info call flows document. The objective is to describe the optimal way to correlate the History-Info header fields with a PASSporT with diversion information to increase the level of confidence in the History-Info header field by the terminating entity making use of the information.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 25, 2019.
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Many services that use SIP require the ability to determine why and how the call arrived at a specific application. The use cases provided in [RFC7131] illustrate the use of the History-Info header field [RFC7044] for example applications and common scenarios. The document [I-D.ietf-stir-passport-divert] extends the PASSporT, defined in [RFC8225] to cryptographically-sign the calling party information, to include an indication that a call has been diverted from its original destination to a new one. This document discusses the applicability and use of this PASSporT extension for diverted calls in the context of scenarios for which use of the History-Info header field is essential for processing by the terminating entity. Descriptions of the example use cases, call flow diagrams and messaging details including both History-Info header field and a SIP Identity header field with a PASSport capturing the retargeted identity are provided.
The term "retarget" is used as defined in [RFC7044]. The term "divert" refers to a specific type of retargeting and is used per the context in [I-D.ietf-stir-passport-divert]. The terms "location service", "redirect" and "address-of-record (AOR)" are used consistent with the terminology in [RFC3261].
The scenarios in this section provide sample use cases for the History-Info header along with a PASSporT(s) containing the retargeted identity for informational purposes only. They are not intended to be normative. In many cases, only the relevant messaging details are included in the body of the call flow.
The current objective of these call flows is for discussion purposes to determine if the current set of information proposed to be captured in the PASSporT in cases of retargeting is sufficient. It is anticipated that the cases where a "div" PASSporT is added would be cases where the a History-Info header field has been added and tagged "mp", indicating the hi-targeted-to-URI represents a user other than the target user associated with the Request-URI in the incoming request that was retargeted.
Given that the History-Info header field captures a full set of information as to why a request is retargeted, it might seem reasonable to just add the PASSporT to the History-Info header field as opposed to adding a new Identity header field in cases of retargeting. However, in that case, that would then require the terminating user to search the History-Info entries to determine if the request was "diverted" and whether the identity at the point of retargeting was authenticated. An alternative is that rather than just adding the retargeted destination, the complete History-Info header field could be added to the PASSporT. This could increase the confidence at the terminating user that all the information is valid. At a minimum the "index" should be included as it's possible to have entries containing the same target. For example, a proxy forwards a request in the case of loose routing and then the request is retargeted at the next hop. Also, there are cases whereby the first entry with a specific tag is most relevant. Thus, being able to at least correlate the contents of that entry with a PASSporT with diverted information could be quite useful.
Editor's note: currently, there are only two examples - consumer and PBX voicemail. It's probably quite useful to document more of the flows once there is agreement on the best approach for correlating the information.
A typical use case for voicemail is one whereby the original called party is not reachable and the call arrives at a voicemail system. In some cases multiple alternate destinations may be tried without success. The voicemail system typically requires the original called party information to determine the appropriate mailbox so an appropriate greeting can be provided and the appropriate party notified of the message.
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 (voicemail) server (VMS). In order to determine the appropriate mailbox to use for this call, the VMS needs the original target for the request. The original target is determined by finding the first hi-entry tagged with "rc" or "mp" and using the hi-entry referenced by the index of "rc" or "mp" header field parameter as the target for determining the appropriate mailbox. This first hi-entry is used to populate the "target" URI parameter as defined in [RFC4458].
If the SIP Identity header field with "div" claims has been added by the entities retargeting, it can be ascertained that the call should be forwarded to Bob's voicemail prior to forwarding the call to voicemail. The value of the "tn" in the "div" field of the claim should match the hi-targeted-to URI in the hi-entry with the hi-index matching the "hi" value in the "div" claim.
The reason associated with the first hi-entry tagged with "rc" or "mp" (i.e., 302) could be used to provide a customized voicemail greeting and is used to populate the "cause" URI parameter as defined in [RFC4458]. Note that some VMSs may also (or instead) use the information available in the History-Info headers for custom handling of the VM based on how and why the call arrived at the VMS.
Furthermore it is the proxy forwarding the call to VMS that determines the target of the voicemail, it is the proxy that sets the target of voicemail which is also the entity that utilizes [RFC7044] to find the target which is usually based on local policy installed by the user or an administrator.
Alice example.com Bob Carol VM 12155551211 12155551212 12155551213 | INVITE F1 | | | | |------------->| | | | | | INVITE F2 | | | | |------------->| | | | | | | | | 100 Trying | | | | |<-------------| 302 Moved Temporarily F3 | | | |<-------------| | | | | | | | | | ACK | | | | |------------->| | | | | | | | | | INVITE F4 | | | | |--------------------------->| | | | | | | | | 180 Ringing F5 | | | |<---------------------------| | | | | | | | 180 Ringing | | | | |<-------------| | | | | | | | | | | (timeout) | | | | | | | | | INVITE F6 | | | | |-------------------------------------->| | | | | | | | 200 OK F7 | | |<--------------------------------------| | 200 OK | | | | |<-------------| | | | | | | | | | ACK | |----------------------------------------------------->| F1 INVITE Alice -> Example.com INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 70 From: Alice <sip:alice@example.com>;tag=kkaz- To: Bob <sip:bob@example.com> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 Contact: Alice <sip:12155551211@example.com;user=phone> Content-Length: <appropriate value> [SDP Not Shown] F2 INVITE Example.com -> Bob INVITE sip:12155551212@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: Bob <sip:bob@example.com>;tag=1928301774> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:12155551212@example.com;user=phone>;\ index=1.1;rc=1 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Contact: Alice <sip:12155551211@example.com;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F3 302 Moved Temporarily Bob -> Example.com SIP/2.0 302 Moved Temporarily 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 From: Alice <sip:alice@example.com>;tag=kkaz- To: Bob <sip:bob@example.com>;tag=2g22d-lnf Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:12155551212@example.com;user=phone>;\ index=1.1;rc=1 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Contact: <sip:carol@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F4 INVITE Example.com -> Carol INVITE sip:12155551213@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK4522 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: Bob <sip:bob@example.com> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:12155551212@example.com;user=phone?\ Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:carol@example.com;cause=480>;index=1.2;mp=1 History-Info: <sip:12155551213@example.com;user=phone;cause=480>;\ index=1.2.1;rc=1.2 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Identity:..sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS7L eU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgtw0Lu5csIp pPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=; \ info=<https://atlanta.example.com/atlanta.cert>;alg=ES256; ppt=div Contact: Alice <sip:12155551211@example.com;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F5 180 Ringing Carol -> Example.com SIP/2.0 180 Ringing 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=setss3x Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:12155551212@example.com;user=phone?\ Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:carol@example.com;cause=480>;index=1.2;mp=1 History-Info: <sip:12155551213@example.com;user=phone;\ cause=480>;index=1.2.1;rc=1.2 Contact: Carol <sip:12155551213@example.com;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F6 INVITE Example.com -> VM 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=z9hG4bK4523 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: Bob <sip:bob@example.com> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:sip:12155551212@example.com;user=phone?\ Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:carol@example.com;cause=480?\ Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:12155551213@example.com;user=phone;cause=480?\ Reason=SIP%3Bcause%3D408408>;\ index=1.2.1;rc=1.2 History-Info: <sip:vm@example.com;\ target=sip:bob%40example.com;cause=480>;\ index=1.3;mp=1 History-Info: <sip:vm@192.0.2.6;\ target=sip:bob%40example.com;cause=480>;\ index=1.3.1;rc=1.3 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Identity: ..sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS7L eU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgtw0Lu5csIp pPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=; \ info=<https://atlanta.example.com/atlanta.cert>;alg=ES256;ppt=div Identity: ... L2V4YW1wbGUuY2VydCJ9eyJhdHRlc3QiOiJBIiwiZGVzdCI6 \ eyJ0biI6IisxMjE1NTU1MTIxMyJ9LCJpYXQiOiIxNDcxMzc1NDE4Iiwib3JpZyI \ 6eyJ0biI64oCdKzEyMTU1 NTUxMjEyIn0sIm9yaWdpZCI6IjEyM2U0NTY3LWU4O \ ;info =<http://cert.example2.net/example.cert>;alg=ES256; ppt=div Contact: Alice <sip:12155551213@example.com;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F7 200 OK VM -> Example.com 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:sip:sip:12155551212@example.com;user=phone?\ Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:carol@example.com;cause=480?Reason=SIP%3Bcause%3D\ 408>;index=1.2;mp=1 History-Info: <sip:12155551213@example.com;user=phone;cause=480?\ Reason=SIP%3Bcause%3D\ 408>;index=1.2.1;rc=1.2 History-Info: <sip:vm@example.com;\ target=sip:bob%40example.com;cause=480>;\ index=1.3;mp=1 History-Info: <sip:vm@192.0.2.6;\ target=sip:bob%40example.com;cause=480>;\ 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 1: Enterprise Voicemail Example
The VMS can look at the last hi-entry and finds the target of the mailbox by looking at the URI entry in the "target" URI parameter in the hi-entry.
In the case of a consumer, when the call is retargeted, it is usually to another administrative domain. The voicemail system in these environment typically requires the last called party information to determine the appropriate mailbox so an appropriate greeting can be provided and the appropriate party notified of the message.
In this example, Alice calls Bob but Bob has temporarily forwarded his phone to his wife Carol. Carol does not answer the call, thus it is forwarded to a VM (voicemail) server (VMS). In order to determine the appropriate mailbox to use for this call, the VMS needs the appropriate target for the request. The last target is determined by finding the hi-entry referenced by the index of last hi-entry tagged with "mp" for determining the appropriate mailbox.
If the SIP Identity header field with "div" claims has been added by the entities retargeting, it can be ascertained that the call should be forwarded to Carol's voicemail prior to forwarding the call to voicemail. The value of the "tn" in the "div" field of the claim should match the hi-targeted-to URI in the hi-entry with the hi-index matching the "hi" value in the "div" field.
This hi-entry is used to populate the "target" URI parameter as defined in [RFC4458]. Note that some VMSs may also (or instead) use the information available in the History-Info headers for custom handling of the VM in terms of how and why the called arrived at the VMS.
Alice example.com Bob Carol VM 12155551211 12155551212 12155551213 | INVITE F1 | | | | |------------->| | | | | | INVITE F2 | | | | |------------->| | | | | | | | | 100 Trying | | | | |<-------------| 302 Moved Temporarily F3 | | | |<-------------| | | | | | | | | | ACK | | | | |------------->| | | | | | | | | | INVITE F4 | | | | |--------------------------->| | | | | | | | | 180 Ringing F5 | | | |<---------------------------| | | | | | | | 180 Ringing | | | | |<-------------| | | | | | | | | | | (timeout) | | | | | | | | | INVITE F6 | | | | |-------------------------------------->| | | | | | | | 200 OK F7 | | |<--------------------------------------| | 200 OK | | | | |<-------------| | | | | | | | | | ACK | |----------------------------------------------------->| F1 INVITE Alice -> Example.com INVITE sip:12155551212@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 70 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Bob <sip:12155551212@example.com;user=phone> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 Contact: Alice <sip:12155551211@e192.0.2.3;user=phone> Content-Length: <appropriate value> [SDP Not Shown] F2 INVITE Example.com -> Bob INVITE sip:12155551212@192.0.2.5;user=phone SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Bob <sip:2155551212@example.com;user=phone> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 History-Info: <sip:12155551212@192.0.2.5>;index=1.1;rc=1 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Contact: Alice <sip:12155551211@192.0.2.3;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F3 302 Moved Temporarily Bob -> Example.com SIP/2.0 302 Moved Temporarily 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 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Bob <sip:2155551212@example.com;user=phone>;tag=2241s3s-t Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 History-Info: <sip:12155551212@192.0.2.5;user=phone>;index=1.1;rc=1 Contact: <sip:12155551213@home.example.com;user=phone>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F4 INVITE Example.com -> Carol INVITE sip:12155551213@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Carol <sip:12155551213@home.example.com;user=phone> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 History-Info: <sip:12155551212@192.0.2.5;user=phone?\ Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>\ ;index=1.1;rc=1 History-Info: <sip:12155551213@home.example.com;user=phone>;\ index=1.2;mp=1 History-Info: <sip:12155551213@192.0.2.4;user=phone>;index=1.2.1;rc=1.2 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Identity:..sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS \ 7Ltrg9dlxkWzoeU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2\ EROvgtw0Lu5csIppPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=; \ info=<https://atlanta.example.com/atlanta.cert>;alg=ES256;ppt=div Contact: Alice <sip:12155551211@192.0.2.3;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F5 180 Ringing Carol -> Example.com SIP/2.0 180 Ringing Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK24s5;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Carol <sip:12155551213@home.example.com;user=phone> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 History-Info: <sip:12155551212@192.0.2.5;user=phone?\ Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>\ ;index=1.1;rc=1 History-Info: <sip:12155551213@home.example.com;user=phone>;\ index=1.2;mp=1 History-Info: <sip:12155551213@192.0.2.4;user=phone>;index=1.2.1;rc=1.2 Contact: <sip:12155551213@192.0.2.4;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F6 INVITE Example.com -> VM INVITE sip:vm@192.0.2.6;target=sip:sip:12155551213%40home.example.com\ SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forward: 69 From: Alice <sip:12155551211@example.com;user=phone>;tag=kkaz- To: Carol <sip:12155551213@home.example.com;user=phone> Supported: histinfo Call-Id: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:12155551212@example.com;user=phone>;index=1 History-Info: <sip:12155551212@192.0.2.5;user=phone?\ Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>\ ;index=1.1;rc=1 History-Info: <sip:12155551213@home.example.com;user=phone>;\ index=1.2;mp=1 History-Info: <sip:12155551213@192.0.2.4;user=phone>;index=1.2.1;rc=1.2 History-Info: <sip:vm@example.com;\ target=sip:12155551213%40home.example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;\ target=sip:12155551213%40home.example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1I \ joiaHR0cHM6Ly9jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJ \ kZXN0Ijp7InVyaSI6WyJzaXA6YWxpY2VAZXhhbXBsZS5jb20iXX0sImlhdC \ I6IjE0NDMyMDgzNDUiLCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.r \ q3pjT1hoRwakEGjHCnWSwUnshd0-zJ6F1VOgFWSjHBr8Qjpjlk-cpFYpFYs \ ojNCpTzO3QfPOlckGaS6hEck7w;info=<https://biloxi.example.org \ /biloxi.cert>;alg=ES256 Identity:..sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS \ 7Ltrg9dlxkWzoeU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2\ EROvgtw0Lu5csIppPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=; \ info=<https://atlanta.example.com/atlanta.cert>;alg=ES256;ppt=div Contact: Alice <sip:12155551211@192.0.2.3;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown] F7 200 OK VM -> Example.com SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKbbg4 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:12155551212@example.com;user=phone?\ Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ index=1.1;rc=1 History-Info: <sip:12155551213@home.example.com;user=phone>;\ index=1.2;mp=1 History-Info: <sip:12155551213@192.0.2.4;user=phone>;index=1.2.1;rc=1.2 History-Info: <sip:vm@example.com;\ target=sip:12155551213%40home.example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;\ target=sip:12155551213%40home.example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Contact: <sip:12155551213@192.0.2.4;user=phone> Content-Type: application/sdp Content-Length: <appropriate value> [SDP Not Shown]
Figure 2: Consumer Voicemail Example
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 and the reason by the "cause" URI parameter in the same hi-entry.
This document adds no new security considerations beyond those specified in [RFC7044] for the History-Info header field and [RFC8224] for the Identity header field.
This document has no IANA considerations.