Internet Engineering Task Force (IETF) M. Barnes Request for Comments: 7131 Category: Informational F. Audet ISSN: 2070-1721 Skype S. Schubert NTT H. van Elburg Detecon International Gmbh C. Holmberg Ericsson March 2014
Internet Engineering Task Force (IETF) M. Barnes Request for Comments: 7131 Category: Informational F. Audet ISSN: 2070-1721 Skype S. Schubert NTT H. van Elburg Detecon International Gmbh C. Holmberg Ericsson March 2014
Session Initiation Protocol (SIP) History-Info Header Call Flow Examples
会话启动协议(SIP)历史信息报头呼叫流示例
Abstract
摘要
This document describes use cases and documents call flows that require the History-Info header field to capture the Request-URIs as a Session Initiation Protocol (SIP) Request is retargeted. The use cases are described along with the corresponding call flow diagrams and messaging details.
本文档描述了当会话初始化协议(SIP)请求被重定目标时,需要History Info header字段捕获请求URI的用例和文档调用流。这些用例与相应的调用流程图和消息传递细节一起描述。
Status of This Memo
关于下段备忘
This document is not an Internet Standards Track specification; it is published for informational purposes.
本文件不是互联网标准跟踪规范;它是为了提供信息而发布的。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741.
本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。并非IESG批准的所有文件都适用于任何级别的互联网标准;见RFC 5741第2节。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7131.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc7131.
Copyright Notice
版权公告
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2014 IETF信托基金和确定为文件作者的人员。版权所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://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.
本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。
Table of Contents
目录
1. Overview ........................................................2 2. Conventions and Terminology .....................................3 3. Detailed Call Flows .............................................3 3.1. Sequentially Forking (History-Info in Response) ............3 3.2. History-Info with Privacy Header Field ....................11 3.3. Privacy for a Specific History-Info Entry .................16 3.4. Automatic Call Distribution ...............................20 3.5. Determining the Alias Used ................................27 3.6. PBX Voicemail Example .....................................29 3.7. Consumer Voicemail Example ................................35 3.8. GRUU ......................................................41 3.9. Limited-Use Address .......................................44 3.10. Service Invocation .......................................47 3.11. Toll-Free Number .........................................48 4. Security Considerations ........................................51 5. Acknowledgements ...............................................51 6. Informative References .........................................51
1. Overview ........................................................2 2. Conventions and Terminology .....................................3 3. Detailed Call Flows .............................................3 3.1. Sequentially Forking (History-Info in Response) ............3 3.2. History-Info with Privacy Header Field ....................11 3.3. Privacy for a Specific History-Info Entry .................16 3.4. Automatic Call Distribution ...............................20 3.5. Determining the Alias Used ................................27 3.6. PBX Voicemail Example .....................................29 3.7. Consumer Voicemail Example ................................35 3.8. GRUU ......................................................41 3.9. Limited-Use Address .......................................44 3.10. Service Invocation .......................................47 3.11. Toll-Free Number .........................................48 4. Security Considerations ........................................51 5. Acknowledgements ...............................................51 6. Informative References .........................................51
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 this document illustrate the use of the History-Info header [RFC7044], for example, applications and common scenarios. The optional "rc" and "mp" header field parameters defined in [RFC7044] are required for several of the use cases. Descriptions of the example use cases, call flow diagrams, and messaging details are provided.
许多使用SIP的服务需要能够确定呼叫到达特定应用程序的原因和方式。本文档中提供的用例说明了历史信息头[RFC7044]的使用,例如,应用程序和常见场景。[RFC7044]中定义的可选“rc”和“mp”头字段参数是几个用例所必需的。提供了示例用例、调用流图和消息传递详细信息的描述。
The term "retarget" is used as defined in [RFC7044]. The terms "location service", "redirect", and "address-of-record (AOR)" are used consistent with the terminology in [RFC3261].
术语“重定目标”的使用如[RFC7044]中所定义。术语“定位服务”、“重定向”和“记录地址(AOR)”的使用与[RFC3261]中的术语一致。
The scenarios in this section provide sample use cases for the History-Info header 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.
本节中的场景为历史信息标题提供示例用例,仅供参考。它们不是为了规范。在许多情况下,只有相关的消息传递细节包含在呼叫流的主体中。
This scenario highlights an example where the History-Info in the response is useful to an application or user that originated the request.
此场景突出显示了一个示例,其中响应中的历史信息对发起请求的应用程序或用户很有用。
Alice sends a call to Bob via sip:example.com. The proxy sip:example.com sequentially tries Bob on a SIP User Agent (UA) that has bound a contact with the sip:bob@example.com AOR, and then several alternate addresses (Office and Home) unsuccessfully before sending a response 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 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 been configured as alternate addresses for Bob in the proxy. In other words, Office and Home are not bound through SIP Registration with Bob's AOR. This type of arrangement is common, for example, when a "routing" rule to a Public Switched Telephone Network (PSTN) number is manually configured in a proxy. These hi-entries are identified by the index contained in the hi-target-param "mp" header field parameter in the hi-entries.
Alice通过sip:example.com给Bob打电话。代理sip:example.com在已绑定与sip的联系人的sip用户代理(UA)上按顺序尝试Bob:bob@example.comAOR,然后是几个备用地址(办公室和家庭),在向Alice发送响应之前未成功。包含初始联系人的hi条目是在标记有“rc”标题字段参数的第一个hi条目之前的hi条目。在本例中,办公室和家庭的AOR与sip不同:bob@example.com,但不同的AOR已配置为代理中Bob的备用地址。换句话说,办公室和家庭不通过向Bob的AOR注册SIP而受到约束。例如,当在代理中手动配置到公共交换电话网络(PSTN)号码的“路由”规则时,这种类型的安排是常见的。这些hi条目由hi条目中hi目标参数“mp”标题字段参数中包含的索引标识。
This scenario illustrates that by providing the History-Info to Alice, the end-user, or an application at Alice could make a decision on how best to attempt finding Bob without sending multiple requests to the same destination. Upon receipt of the response containing the History-Info entries, the Request-URIs for the History-Info entries tagged with an "mp" header field parameter are extracted. Those Request-URIs can be compared to other URIs (if any) that might be attempted in order to establish the session with Bob. This results in avoiding the sending of another INVITE to Bob's home phone. Without this mechanism, Alice might well attempt to reach Bob at his office phone, which would then retarget the request to Bob's home phone. When that attempt failed, then Alice might attempt to reach Bob directly at his home phone, unknowingly for a third time.
此场景说明,通过向Alice提供历史信息,最终用户或Alice的应用程序可以决定如何在不向同一目标发送多个请求的情况下最好地尝试查找Bob。在收到包含历史信息条目的响应后,将提取带有“mp”头字段参数标记的历史信息条目的请求URI。可以将这些请求URI与可能尝试与Bob建立会话的其他URI(如果有)进行比较。这样可以避免向Bob的家庭电话发送另一个邀请。如果没有这种机制,Alice可能会尝试通过Bob的办公室电话联系Bob,然后将请求重定向到Bob的家庭电话。当尝试失败时,爱丽丝可能会在不知情的情况下第三次尝试直接通过鲍勃家里的电话联系他。
Alice example.com Bob Office Home
Alice example.com鲍勃办公室之家
| | | | | | INVITE F1 | | | | |----------->| INVITE F2 | | | | |----------------->| | | | 100 Trying F3 | | | |<-----------| 302 Move Temporarily F4 | | | |<-----------------| | | | | ACK F5 | | | | |----------------->| | | | | INVITE F6 | | | |-------------------------->| | | | 180 Ringing F7 | | | |<--------------------------| | | 180 Ringing F8 | | |<-----------| retransmit INVITE | | | |-------------------------->| | | | ( timeout ) | | | | INVITE F9 | | |----------------------------------->| | | 100 Trying F10 | | |<-----------------------------------| | | 486 Busy Here F11 | | |<-----------------------------------| | 486 Busy Here F12 | |<-----------| ACK F13 | | |----------------------------------->| | ACK F14 | | |----------->| |
| | | | | | INVITE F1 | | | | |----------->| INVITE F2 | | | | |----------------->| | | | 100 Trying F3 | | | |<-----------| 302 Move Temporarily F4 | | | |<-----------------| | | | | ACK F5 | | | | |----------------->| | | | | INVITE F6 | | | |-------------------------->| | | | 180 Ringing F7 | | | |<--------------------------| | | 180 Ringing F8 | | |<-----------| retransmit INVITE | | | |-------------------------->| | | | ( timeout ) | | | | INVITE F9 | | |----------------------------------->| | | 100 Trying F10 | | |<-----------------------------------| | | 486 Busy Here F11 | | |<-----------------------------------| | 486 Busy Here F12 | |<-----------| ACK F13 | | |----------------------------------->| | ACK F14 | | |----------->| |
Figure 1: Example with Sequential Forking
图1:顺序分叉的示例
Message Details
消息详细信息
F1 INVITE Alice -> example.com
F1邀请Alice->example.com
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds 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:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds 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:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE example.com -> Bob
F2 INVITE example.com->Bob
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 100 Trying example.com -> Alice
F3 100 Trying example.com->Alice
SIP/2.0 100 Trying Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Content-Length: 0
SIP/2.0 100 Trying Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Content-Length: 0
F4 302 Moved Temporarily Bob -> example.com
F4 302临时移动到Bob->example.com
SIP/2.0 302 Moved Temporarily Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=es43sd 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.4>;index=1.1;rc=1 Contact: <sip:office@example.com>;mp=1 Content-Length: 0
SIP/2.0 302 Moved Temporarily Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=es43sd 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.4>;index=1.1;rc=1 Contact: <sip:office@example.com>;mp=1 Content-Length: 0
F5 ACK example.com -> Bob
F5 ACK example.com->Bob
ACK sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=es43sd Call-ID: 12345600@example.com CSeq: 1 ACK Content-Length: 0
ACK sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx3st Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=es43sd Call-ID: 12345600@example.com CSeq: 1 ACK Content-Length: 0
F6 INVITE example.com -> office
F6 INVITE example.com->office
INVITE sip:office@192.0.2.5 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:office@192.0.2.5 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F7 180 Ringing office -> example.com
F7 180响铃办公室->example.com
SIP/2.0 180 Ringing Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=53rdds Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Office <sip:office@192.0.2.5> Content-Length: 0
SIP/2.0 180 Ringing Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx4st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=53rdds Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Office <sip:office@192.0.2.5> Content-Length: 0
F8 180 Ringing example.com -> Alice
F8 180 Ringing example.com->Alice
SIP/2.0 180 Ringing Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=53rdds Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Office <sip:office@192.0.2.5> Content-Length: 0
SIP/2.0 180 Ringing Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=53rdds Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=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 CSeq: 1 INVITE Contact: Office <sip:office@192.0.2.5> Content-Length: 0
F9 INVITE example.com -> home
F9 INVITE example.com->home
INVITE sip:home@192.0.2.6 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:home@192.0.2.6 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Supported: histinfo Call-ID: 12345600@example.com Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F10 100 Trying home -> example.com
F10 100试用主页->example.com
SIP/2.0 100 Trying Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Call-ID: 12345600@example.com CSeq: 1 INVITE Content-Length: 0
SIP/2.0 100 Trying Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com> Call-ID: 12345600@example.com CSeq: 1 INVITE Content-Length: 0
F11 486 Busy Here home -> example.com
F11 486忙在这里主页->example.com
SIP/2.0 486 Busy Here Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Content-Length: 0
SIP/2.0 486 Busy Here Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Content-Length: 0
F12 486 Busy Here example.com -> Alice
F12 486此处忙示例.com->Alice
SIP/2.0 486 Busy Here Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Content-Length: 0
SIP/2.0 486 Busy Here Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com History-Info: <sip:bob@example.com>;index=1 History-Info: <sip:bob@192.0.2.4?Reason=SIP%3Bcause%3D302>;\ index=1.1;rc=1 History-Info: <sip:office@example.com?Reason=SIP%3Bcause%3D408>;\ index=1.2;mp=1 History-Info: <sip:office@192.0.2.5?Reason=SIP%3Bcause%3D408>;\ index=1.2.1;rc=1.2 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 CSeq: 1 INVITE Content-Length: 0
F13 ACK example.com -> home
F13 ACK example.com->home
ACK sip:home@192.0.2.6 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com CSeq: 1 ACK Content-Length: 0
ACK sip:home@192.0.2.6 SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bKx5st Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com CSeq: 1 ACK Content-Length: 0
F14 ACK Alice -> example.com
F14确认Alice->example.com
ACK sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com Route: <sip:proxy.example.com;lr> CSeq: 1 ACK Content-Length: 0
ACK sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=sr3dds To: Bob <sip:bob@example.com>;tag=55rdds Call-ID: 12345600@example.com Route: <sip:proxy.example.com;lr> CSeq: 1 ACK Content-Length: 0
This is an example of the use of the Privacy header field with a value of "history" added by an intermediary. The intermediary responsible for the biloxi.example.com domain adds a Privacy header field with a value of "history" indicating that all the History-Info header field information is anonymized outside the biloxi.example.com domain.
这是一个使用隐私标头字段的示例,该字段的值为“history”,由中介添加。负责biloxi.example.com域的中介添加了一个隐私头字段,该字段的值为“history”,表示所有历史信息头字段信息在biloxi.example.com域之外都是匿名的。
Alice atlanta.example.com biloxi.example.com Bob Work Bob Home
Alice atlanta.example.com biloxi.example.com鲍勃在家工作
| | | | | | INVITE F1 | | | | |------------>| | | | | | | | | | | INVITE F2 | | | | |--------------->| | | | | | | | | | | INVITE F3 | | | | |---------------->| | | | |302 Move Temporarily F4 | | | |<----------------| | | | | ACK F5 | | | | |---------------->| | | | | | | | | | INVITE F6 | | | | |--------------------------->| | | | 200 F7 | | | | |<---------------------------| | | | | | | | 200 F8 | | | | |<---------------| | | | | | | | | 200 F9 | | | | |<------------| | | | | | | | | | | ACK | | | |---------------------------------------------------------->| | | | | |
| | | | | | INVITE F1 | | | | |------------>| | | | | | | | | | | INVITE F2 | | | | |--------------->| | | | | | | | | | | INVITE F3 | | | | |---------------->| | | | |302 Move Temporarily F4 | | | |<----------------| | | | | ACK F5 | | | | |---------------->| | | | | | | | | | INVITE F6 | | | | |--------------------------->| | | | 200 F7 | | | | |<---------------------------| | | | | | | | 200 F8 | | | | |<---------------| | | | | | | | | 200 F9 | | | | |<------------| | | | | | | | | | | ACK | | | |---------------------------------------------------------->| | | | | |
Figure 2: Example with Privacy Header Fields
图2:隐私头字段示例
Message Details
消息详细信息
F1 INVITE Alice -> atlanta.example.com
F1邀请Alice->atlanta.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Privacy: history Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Privacy: history Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE atlanta.example.com -> biloxi.example.com
F2邀请atlanta.example.com->biloxi.example.com
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 INVITE biloxi.example.com -> Bob Work
F3邀请biloxi.example.com->Bob工作
INVITE sip:bob@192.0.1.11 SIP/2.0 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 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 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11>;index=1.1.1;rc=1.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:bob@192.0.1.11 SIP/2.0 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 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 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11>;index=1.1.1;rc=1.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 302 Moved Temporarily Bob Work -> biloxi.example.com
F4 302临时移动到Bob Work->biloxi.example.com
SIP/2.0 302 Moved Temporarily Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33;\ received=192.0.2.102 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=11 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11>;index=1.1.1;rc=1.1 Contact: Bob Home <sip:bob@192.0.1.15> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 302 Moved Temporarily Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33;\ received=192.0.2.102 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=11 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11>;index=1.1.1;rc=1.1 Contact: Bob Home <sip:bob@192.0.1.15> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F5 ACK biloxi.example.com -> Bob Work
F5 ACK biloxi.example.com->Bob工作
ACK sip:bob@192.0.1.11 SIP/2.0 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 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 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=11 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: <appropriate value>
ACK sip:bob@192.0.1.11 SIP/2.0 Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs33 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 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=11 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F6 INVITE biloxi.example.com -> Bob Home
F6邀请biloxi.example.com->Bob Home
INVITE sip:bob@192.0.1.15 SIP/2.0 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.3 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11?Reason=SIP%3Bcause%3D302>;\ index=1.1.1;rc=1 History-Info: <sip:bob@192.0.1.15>;index=1.1.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:bob@192.0.1.15 SIP/2.0 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.3 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11?Reason=SIP%3Bcause%3D302>;\ index=1.1.1;rc=1 History-Info: <sip:bob@192.0.1.15>;index=1.1.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F7 200 OK Bob -> biloxi.example.com
F7 200 OK Bob->biloxi.example.com
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11?Reason=SIP%3Bcause%3D302>;\ index=1.1.1;rc=1 History-Info: <sip:bob@192.0.1.15>;index=1.1.2;rc=1.1 Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKgs32;\ 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1 History-Info: <sip:bob@192.0.1.11?Reason=SIP%3Bcause%3D302>;\ index=1.1.1;rc=1 History-Info: <sip:bob@192.0.1.15>;index=1.1.2;rc=1.1 Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F8 200 OK biloxi.example.com -> atlanta.example.com
F8 200 OK biloxi.example.com->atlanta.example.com
SIP/2.0 200 OK 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.2;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.2;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F9 200 OK atlanta.example.com -> Alice
F9 200 OK atlanta.example.com->Alice
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.2;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Privacy: history Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:anonymous@anonymous.invalid>;index=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.2;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
This example provides a basic call scenario similar to Section 3.2; 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, contains a privacy header field with a priv-value of "history", thus providing Alice with some information about the history of the request, but anonymizing Bob's local URI.
本例提供了一个与第3.2节类似的基本呼叫场景;但是,由于sip:biloxi.example.com的本地策略,历史信息中只有最后一个hi条目(Bob的本地URI)包含priv值为“History”的隐私头字段,因此向Alice提供了一些关于请求历史的信息,但匿名化了Bob的本地URI。
Alice atlanta.example.com biloxi.example.com Bob | | | | | INVITE F1 | | | |--------------->| | | | | | | | | INVITE F2 | | | |--------------->| | | | | | | | | INVITE F3 | | | |--------------->| | | | | | | | 200 F4 | | | |<---------------| | | | | | | 200 F5 | | | |<---------------| | | | | | | 200 F6 | | | |<---------------| | | | | | | | | ACK | | |------------------------------------------------->| | | | |
Alice atlanta.example.com biloxi.example.com Bob | | | | | INVITE F1 | | | |--------------->| | | | | | | | | INVITE F2 | | | |--------------->| | | | | | | | | INVITE F3 | | | |--------------->| | | | | | | | 200 F4 | | | |<---------------| | | | | | | 200 F5 | | | |<---------------| | | | | | | 200 F6 | | | |<---------------| | | | | | | | | ACK | | |------------------------------------------------->| | | | |
Figure 3: Example with Privacy Header Field for Specific URI
图3:特定URI的隐私头字段示例
Message Details
消息详细信息
F1 INVITE Alice -> atlanta.example.com
F1邀请Alice->atlanta.example.com
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:bob@biloxi.example.com;p=x SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 70 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE History-Info: <sip:bob@biloxi.example.com;p=x>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE atlanta.example.com -> biloxi.example.com
F2邀请atlanta.example.com->biloxi.example.com
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 69 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 INVITE biloxi.example.com -> Bob
F3邀请biloxi.example.com->Bob
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.atlanta.example.com:5060;branch=z9hG4bKbst2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=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> Content-Type: application/sdp Content-Length: <appropriate value>
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.atlanta.example.com:5060;branch=z9hG4bKbst2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 Max-Forwards: 68 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com> Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=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> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 200 OK Bob -> biloxi.example.com
F4 200 OK Bob->biloxi.example.com
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\ 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=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> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.biloxi.example.com:5060;branch=z9hG4bKeset;\ 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=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> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F5 200 OK biloxi.example.com -> atlanta.example.com
F5 200 OK biloxi.example.com->atlanta.example.com
SIP/2.0 200 OK 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK 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 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F6 200 OK atlanta.example.com -> Alice
F6 200 OK atlanta.example.com->Alice
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK4321 From: Alice <sip:alice@atlanta.example.com>;tag=22 To: Bob <sip:bob@biloxi.example.com>;tag=33 Supported: histinfo Call-ID: 12345600@atlanta.example.com 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.1;np=1 History-Info: <sip:anonymous@anonymous.invalid>;index=1.1.1;rc=1.1 Contact: Bob <sip:bob@192.0.1.11> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
This scenario highlights an example of an Automatic Call Distribution service, where the agents are divided into groups based upon the type of customers they handle. In this example, the Gold customers are given higher priority than Silver customers, so a Gold call would get serviced even if all the agents servicing the Gold group were busy, 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 incoming call, based upon the History-Info header in the message, the application at the agent can provide an indication that this is a Gold call by extracting the hi-entry associated with the incoming request, which is determined by locating the hi-entry whose index is reflected in the first hi-entry with a hi-target of "mp". In the example, this would be the hi-entry referenced by the value of the first "mp" header field parameter, i.e., the hi-entry containing an index of "1". An application can also determine how many groups from which the call may have overflowed before reaching the agent, etc., and present the information to the agent so that the call can be handled appropriately, i.e., "I'm so sorry for the delay, blah, blah, blah..."
此场景突出显示了自动呼叫分配服务的一个示例,其中代理根据其处理的客户类型划分为多个组。在本例中,黄金客户的优先级高于白银客户,因此,即使为黄金组提供服务的所有代理都很忙,黄金呼叫也会得到服务,方法是将请求重新定位到白银组,以便将其交付给代理。在被指派来处理传入呼叫的代理处接收到呼叫后,基于消息中的历史信息报头,代理处的应用程序可以通过提取与传入请求相关联的hi条目来提供这是Gold呼叫的指示,这是通过定位hi条目确定的,其索引反映在hi目标为“mp”的第一个hi条目中。在该示例中,这将是由第一个“mp”头字段参数的值引用的hi条目,即包含索引“1”的hi条目。应用程序还可以确定在到达代理之前呼叫可能已溢出的组数等,并将信息提供给代理,以便可以适当处理呼叫,即,“我对延迟深表歉意,等等,等等……”
For scenarios whereby calls might overflow from the Silver to the Gold, clearly the alternate group identification, internal routing, 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 support the sending of the History-Info in the response, even if requested by Alice or the proxy could anonymize the Silver related hi-entries by adding privacy in the Silver hi-entries.
对于呼叫可能从银到金溢出的场景,显然不应将备用组标识、内部路由或处理呼叫的实际代理发送到UA1。因此,在这种情况下,可以预期代理将不支持在响应中发送历史信息,即使Alice请求,或者代理可以通过在Silver hi条目中添加隐私来匿名与Silver相关的hi条目。
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 processing that might be associated with such a service. In addition, this example does not address any aspects of agent availability resulting in the call being sent to an agent in another group, which might also be done via a SIP interface.
与其他示例一样,这不是关于如何执行此类服务的完整说明,而是可能与此类服务相关联的处理子集的示例。此外,此示例不涉及导致呼叫被发送到另一组中的代理的代理可用性的任何方面,这也可能通过SIP接口完成。
Alice example.com Gold Silver Agent
Alice example.com金银代理
| | | | | | INVITE F1 | | | | |------------->| | | | | | | | | | | INVITE F2 | | | | |------------->| | | | | | | | | | 302 Moved Temporarily F3 | | | |<-------------| | | | | | | | | | ACK | | | | |------------->| | | | | | | | | | INVITE F4 | | | | |--------------------------->| | | | | | | | | | | INVITE F5 | | | | |----------->| | | | | | | | | | 200 OK F6 | | | | |<-----------| | | | | | | | 200 OK F7 | | | |<---------------------------| | | | | | | | 200 OK F8 | | | | |<-------------| | | | | | | | | | ACK F9 | |------------------------------------------------------->|
| | | | | | INVITE F1 | | | | |------------->| | | | | | | | | | | INVITE F2 | | | | |------------->| | | | | | | | | | 302 Moved Temporarily F3 | | | |<-------------| | | | | | | | | | ACK | | | | |------------->| | | | | | | | | | INVITE F4 | | | | |--------------------------->| | | | | | | | | | | INVITE F5 | | | | |----------->| | | | | | | | | | 200 OK F6 | | | | |<-----------| | | | | | | | 200 OK F7 | | | |<---------------------------| | | | | | | | 200 OK F8 | | | | |<-------------| | | | | | | | | | ACK F9 | |------------------------------------------------------->|
Figure 4: Example for Automatic Call Distribution
图4:自动呼叫分配示例
Message Details
消息详细信息
F1 INVITE Alice -> example.com
F1邀请Alice->example.com
INVITE sip:Gold@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:Gold@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE example.com -> Gold.example.com
F2邀请example.com->Gold.example.com
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 302 Moved Temporarily Gold.example.com -> example.com
F3 302临时移动到Gold.example.com->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=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=kkaz- Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 Contact: <sip:Silver@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
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=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=kkaz- Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com>;rc=1;index=1.1 Contact: <sip:Silver@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 INVITE example.com -> Silver.example.com
F4邀请example.com->Silver.example.com
INVITE sip:Silver@example.com SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:Silver@example.com SIP/2.0 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F5 INVITE Silver.example.com -> Agent
F5邀请Silver.example.com->Agent
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 proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 68 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 68 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F6 200 OK Agent -> Silver.example.com
F6 200 OK Agent->Silver.example.com
SIP/2.0 200 OK Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ received=192.0.2.5 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP silver.example.com:5060;branch=z9hG4bKerxs;\ received=192.0.2.5 Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F7 200 OK Silver.example.com -> example.com
F7 200 OK Silver.example.com->example.com
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK45q2;\ received=192.0.2.101 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F8 200 OK example.com -> Alice
F8 200 OK example.com->Alice
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:Gold@example.com>;index=1 History-Info: <sip:Gold@gold.example.com?Reason=SIP%3Bcause%3D302>;\ rc=1;index=1.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@192.0.2.7>;index=1.2.1.1;rc=1.2.1 Contact: Agent <sip:Silver@192.0.2.7> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F9 ACK Alice -> Agent
F9确认爱丽丝->代理
ACK sip:Silver@192.0.2.7 SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 ACK Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
ACK sip:Silver@192.0.2.7 SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t3 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=1235 To: Gold Member Assistance <sip:Gold@example.com>;tag=2325 Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 ACK Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
The first hi-entry with the "mp" header field parameter contains an "mp" header field parameter value of 1, which points to the original-target, which allows the operator to identify that the call was from the Gold customer.
带有“mp”表头字段参数的第一个hi条目包含一个“mp”表头字段参数值1,该值指向原始目标,允许操作员识别呼叫来自黄金客户。
SIP UAs are associated with an AOR. It 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 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 registering against each of these AORs individually, the user would register against just one of them, and the home proxy would automatically accept incoming calls for any of the aliases, treating them identically and ultimately forwarding them towards the UA. This is common practice in the IP Multimedia Subsystem (IMS), where it is called "implicit registration" and each alias is called a "public user identity (PUID)".
SIP UAs与AOR关联。一个UA实际上可能有多个AOR与其关联。一个常见的用法是别名。例如,用户可能具有sip的AOR:john@example.com但也有AOR的sip:john。smith@example.com及sip:jsmith@example.com. 用户不会单独针对这些AOR中的每一个进行注册,而是只针对其中一个进行注册,并且归属代理将自动接受任何别名的传入呼叫,对其进行相同的处理,并最终将其转发给UA。这是IP多媒体子系统(IMS)中的常见做法,其中称为“隐式注册”,每个别名称为“公共用户标识(PUID)”。
It is a common requirement for a User Agent Server (UAS), on receipt of a call, to know which of its aliases was used to reach it. This knowledge can be used to choose ringtones to play, determine call treatment, and so 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 importance of the call.
用户代理服务器(UAS)在接到呼叫时,通常需要知道它的别名是用来访问它的。这些知识可用于选择要播放的铃声、确定通话处理方式等。例如,用户可能只向朋友和家人提供一个别名,从而产生一个特殊的铃声,提醒用户呼叫的重要性。
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 alias for the call is determined by hi-entry with the index that matches the value of the last hi-entry with an "rc" header field parameter in the Request received.
下面的调用流和示例消息显示了如何使用历史信息查找用于联系被调用方的别名。调用的别名由hi条目确定,其索引与接收到的请求中最后一个hi条目的值与“rc”头字段参数相匹配。
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Figure 5: Alias Example
图5:别名示例
Message Details
消息详细信息
F1 REGISTER John -> example.com
F1注册John->example.com
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> Supported: histinfo Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1> Content-Length: 0
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> Supported: histinfo Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1> Content-Length: 0
F2 200 OK example.com -> John
F2 200 OK example.com->John
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com>;tag=d2dstee2 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;expires=3600 Content-Length: 0
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com>;tag=d2dstee2 Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;expires=3600 Content-Length: 0
F3 INVITE Alice -> example.com
F3邀请Alice->example.com
INVITE sip:john.smith@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=a73kszlfl To: John <sip:john.smith@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:john.smith@example.com>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:john.smith@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=a73kszlfl To: John <sip:john.smith@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:john.smith@example.com>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 INVITE example.com -> John
F4 INVITE example.com->John
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=a73kszlfl To: John <sip:john.smith@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:john.smith@example.com>;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=a73kszlfl To: John <sip:john.smith@example.com> Supported: histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:john.smith@example.com>;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
The last hi-entry with the "rc" header field parameter references the source of retargeting pointing at the alias AOR, which in the example is "john.smith@example.com".
带有“rc”header字段参数的最后一个hi条目引用指向别名AOR的重定目标源,该别名在本例中为“john”。smith@example.com".
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 hi-entry is used to populate the "target" URI parameter as defined in [RFC4458]. 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
在本例中,Alice调用Bob,Bob的SIP客户端被转发给Carol。卡罗尔不接电话;因此,它被转发到VM(语音邮件)服务器(VMS)。为了确定用于此呼叫的适当邮箱,VM需要请求的原始目标。通过查找标记为“rc”或“mp”的第一个hi条目,并使用“rc”或“mp”标题字段参数索引引用的hi条目作为确定适当邮箱的目标,来确定原始目标。此hi条目用于填充[RFC4458]中定义的“target”URI参数。与标记为“rc”或“mp”(即302)的第一个hi条目相关联的原因可用于提供定制语音邮件问候语,并用于填充[RFC4458]中定义的“原因”URI参数。请注意,某些VM也可能(或相反)使用
information available in the History-Info headers for custom handling of the VM based on how and why the call arrived at the VMS.
历史信息标题中提供的信息,用于根据调用到达VM的方式和原因自定义VM处理。
Furthermore, it is the proxy forwarding the call to the 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 that is usually based on local policy installed by the user or an administrator.
此外,将呼叫转发到VMS的代理确定语音邮件的目标;它是设置语音邮件目标的代理,也是利用[RFC7044]查找目标的实体,该目标通常基于用户或管理员安装的本地策略。
Alice example.com Bob Carol VM
Alice example.com Bob Carol虚拟机
| 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 | |----------------------------------------------------->|
| 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 | |----------------------------------------------------->|
Figure 6: Enterprise Voicemail Example
图6:企业语音邮件示例
Message Details
消息详细信息
F1 INVITE Alice -> example.com
F1邀请Alice->example.com
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:alice@192.0.2.3> Content-Length: <appropriate value>
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:alice@192.0.2.3> Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE example.com -> Bob
F2 INVITE example.com->Bob
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 302 Moved Temporarily Bob -> example.com
F3 302临时移动到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:bob@192.0.2.5>;index=1.1;rc=1 Contact: <sip:carol@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
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:bob@192.0.2.5>;index=1.1;rc=1 Contact: <sip:carol@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 INVITE example.com -> Carol
F4 INVITE example.com->Carol
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?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:carol@192.0.2.4;cause=480>;index=1.2.1;rc=1.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?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:carol@192.0.2.4;cause=480>;index=1.2.1;rc=1.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F5 180 Ringing Carol -> example.com
F5 180振铃卡罗尔->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:bob@192.0.2.5?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:carol@192.0.2.4;cause=480>;index=1.2.1;rc=1.2 Contact: <sip:carol@192.0.2.4> Content-Type: application/sdp Content-Length: <appropriate value>
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:bob@192.0.2.5?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:carol@192.0.2.4;cause=480>;index=1.2.1;rc=1.2 Contact: <sip:carol@192.0.2.4> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F6 INVITE example.com -> VM
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-Forwards: 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:bob@192.0.2.5?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:carol@192.0.2.4;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: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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-Forwards: 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:bob@192.0.2.5?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:carol@192.0.2.4;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: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F7 200 OK VM -> example.com
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:bob@192.0.2.5?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:carol@192.0.2.4;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>
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;cause=480?Reason=SIP%3Bcause%3D\ 408>;index=1.2;mp=1 History-Info: <sip:carol@192.0.2.4;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]
[未显示SDP]
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 the hi-entry.
VM可以查看最后一个hi条目,并通过查看hi条目中“target”URI参数中的URI条目找到邮箱的目标。
In the case of a consumer, when the call is retargeted, it is usually to another administrative domain. The voicemail system in these environments 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 Carol (she is his wife). Carol does not answer the call; thus, it is forwarded to a 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
在本例中,Alice打电话给Bob,但Bob暂时将他的电话转发给Carol(她是他的妻子)。卡罗尔不接电话;因此,它被转发到VMS。为了确定用于此呼叫的适当邮箱,VM需要相应的请求目标。最后一个目标是通过查找由标记的最后一个hi条目的索引引用的hi条目来确定的
with "mp" for determining the appropriate mailbox. 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.
使用“mp”来确定适当的邮箱。此hi条目用于填充[RFC4458]中定义的“target”URI参数。请注意,一些虚拟机还可能(或相反)使用历史信息头中的可用信息来自定义处理虚拟机,以了解被调用的虚拟机到达虚拟机的方式和原因。
Alice example.com Bob Carol VM
Alice example.com Bob Carol虚拟机
| 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 | |----------------------------------------------------->|
| 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 | |----------------------------------------------------->|
Figure 7: Consumer Voicemail Example
图7:消费者语音邮件示例
Message Details
消息详细信息
F1 INVITE Alice -> example.com
F1邀请Alice->example.com
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:alice@192.0.2.3> Content-Length: <appropriate value>
INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:alice@192.0.2.3> Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE example.com -> Bob
F2 INVITE example.com->Bob
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 302 Moved Temporarily Bob -> example.com
F3 302临时移动到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=224ls3s-t 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>;index=1.1;rc=1 Contact: <sip:carol@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
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=224ls3s-t 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>;index=1.1;rc=1 Contact: <sip:carol@example.com>;mp=1 Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 INVITE example.com -> Carol
F4 INVITE example.com->Carol
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>\ ;index=1.1;rc=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 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>\ ;index=1.1;rc=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 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F5 180 Ringing Carol -> example.com
F5 180振铃卡罗尔->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: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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ index=1.1;rc=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 Contact: <sip:carol@192.0.2.4> Content-Type: application/sdp Content-Length: <appropriate value>
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: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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ index=1.1;rc=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 Contact: <sip:carol@192.0.2.4> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F6 INVITE example.com -> VM
F6 INVITE example.com->VM
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ 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:carol%40example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ 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:carol%40example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F7 200 OK VM -> example.com
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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ 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:carol%40example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Contact: <sip:carol@192.0.2.5> Content-Type: application/sdp Content-Length: <appropriate value>
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:bob@192.0.2.5?Reason=SIP%3Bcause%3D302\ %3Btext%3D%22Moved%20Temporarily%22>;\ 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:carol%40example.com;\ cause=408>;index=1.2.2;mp=1.2 History-Info: <sip:vm@192.0.2.5;target=sip:carol%40example.com;\ cause=408>;index=1.2.2.1;rc=1.2.2 Contact: <sip:carol@192.0.2.5> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
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.
VMS可以查看最后一个hi条目,并通过在hi条目中查找“target”URI参数和在同一hi条目中查找“cause”URI参数来查找邮箱的目标。
A variation on the problem in Section 3.5 occurs with Globally Routable User Agent URI (GRUU) [RFC5627]. A GRUU is a URI assigned to a UA instance that has many of the same properties as the AOR 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 correspondent sent a request to its GRUU or to its AOR. This can be used to drive differing authorization policies on whether the request should be accepted or rejected, for example. However, like the AOR itself, the GRUU is lost in translation at the home proxy. Thus, the UAS cannot know whether it was contacted via the GRUU or its AOR.
第3.5节中的问题与全局可路由用户代理URI(GRUU)[RFC5627]有关。GRUU是分配给UA实例的URI,该实例具有许多与AOR相同的属性,但导致请求仅路由到该特定实例。UA最好知道是否因为通讯员向其GRUU或AOR发送了请求而联系到了它。例如,这可用于驱动关于是否应接受或拒绝请求的不同授权策略。然而,与AOR本身一样,GRUU在主代理的翻译中丢失。因此,UAS无法知道是否通过GRUU或其AOR联系。
The following call flow and example messages show how History-Info can be used to find out the GRUU used to reach the callee.
下面的调用流和示例消息显示了如何使用历史信息来查找用于到达被调用方的GRUU。
While a GRUU is comprised of an AOR with a URI parameter, as defined in [RFC5627], the GRUU construct itself is not an AOR. Thus, the retargeting of a request based on a GRUU does not result in the addition of an "rc" header field parameter to the hi-entry containing the GRUU. The lack of an "rc" header field parameter in the hi-entries can be a hint that the source of retargeting is a GRUU. However, to ensure this is the case, the UAS needs to search for a "gr" parameter in the hi-entry prior to the last hi-entry. If there is a GRUU, the URI will always be prior to the last hi-entry as the GRUU does not allow multiple instance to be mapped to a contact address.
虽然GRUU由带有URI参数的AOR组成,如[RFC5627]中所定义,但GRUU构造本身不是AOR。因此,基于GRUU的请求重定目标不会导致向包含GRUU的hi条目添加“rc”头字段参数。hi条目中缺少“rc”头字段参数可能暗示重定目标的来源是GRUU。然而,为了确保这种情况,UAS需要在最后一个hi条目之前搜索hi条目中的“gr”参数。如果存在GRUU,URI将始终位于最后一个hi条目之前,因为GRUU不允许将多个实例映射到联系人地址。
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Figure 8: GRUU Example
图8:GRUU示例
Message Details
消息详细信息
F1 REGISTER John -> example.com
F1注册John->example.com
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:John@example.com>;tag=a73kszlfl Supported: gruu To: John <sip:john@example.com> Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;+sip.instance=\ <urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Content-Length: 0
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:John@example.com>;tag=a73kszlfl Supported: gruu To: John <sip:john@example.com> Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;+sip.instance=\ <urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Content-Length: 0
[SDP Not Shown]
[未显示SDP]
F2 200 OK example.com -> John
F2 200 OK example.com->John
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> ;tag=b88sn Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ pub-gruu="sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ temp-gruu=\ "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ gr";+sip.instance=\ "<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\ expires=3600 Content-Length: 0
SIP/2.0 200 OK Via: SIP/2.0/TCP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> ;tag=b88sn Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ pub-gruu="sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ temp-gruu=\ "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ gr";+sip.instance=\ "<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\ expires=3600 Content-Length: 0
[SDP Not Shown]
[未显示SDP]
Assuming Alice has knowledge of a GRUU either through prior communication or through other means such as presence places a call to John's GRUU.
假设Alice通过事先沟通或通过其他方式(如在场)了解GRUU,则会给John的GRUU打电话。
F3 INVITE Alice -> example.com
F3邀请Alice->example.com
INVITE sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Length: <appropriate value>
INVITE sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 SIP/2.0 Via: SIP/2.0/TCP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F4 INVITE example.com -> John
F4 INVITE example.com->John
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: <sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
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 finding the "gr" parameter.
通过分析带有最后一个“rc”的条目引用的条目,可以通过查找“gr”参数认识到用于访问设备的URI是GRUU。
A limited-use address is a SIP URI that is minted on-demand, and passed out to a small number (usually one) of remote correspondents. Incoming calls targeted to that limited-use address are accepted as long as the UA still desires communications from the remote target. Should they no longer wish to be bothered by that remote correspondent, the URI is invalidated so that future requests targeted to it are rejected.
有限使用地址是按需生成的SIPURI,并分发给少数(通常是一个)远程通信者。只要UA仍希望与远程目标通信,就可以接受以该有限使用地址为目标的传入呼叫。如果他们不想再被远程通信者打扰,URI将失效,从而拒绝将来针对它的请求。
Limited-use addresses are used in battling voice spam [RFC5039]. The easiest way to provide them would be for a UA to be able to take its AOR and "mint" a limited-use address by appending additional parameters to the URI. It could then give out the URI to a particular correspondent and remember that URI locally. When an incoming call arrives, the UAS would examine the parameter in the URI and determine whether or not the call should be accepted. Alternatively, the UA could push authorization rules into the network, so that it need not even see incoming requests that are to be rejected.
有限使用地址用于打击语音垃圾邮件[RFC5039]。提供它们的最简单方法是,UA能够通过在URI中添加额外参数来获取其AOR和“mint”有限使用地址。然后,它可以将URI发送给特定的通信者,并在本地记住该URI。当传入呼叫到达时,UAS将检查URI中的参数,并确定是否应接受该呼叫。或者,UA可以将授权规则推送到网络中,这样它甚至不需要看到要拒绝的传入请求。
This approach, especially when executed on the UA, requires that parameters attached to the AOR, but not used by the home proxy in processing the request, survive the translation at the home proxy and be presented to the UA. This will not be the case with the logic in RFC 3261, since the Request-URI is replaced by the registered contact, and any such parameters are lost.
这种方法,特别是在UA上执行时,要求附加到AOR但主代理在处理请求时未使用的参数在主代理上的转换后仍然有效,并提供给UA。RFC3261中的逻辑不会是这种情况,因为请求URI被注册的联系人替换,并且任何此类参数都会丢失。
Using the History-Info, John's UA can easily see if the call was addressed to its AOR, GRUU, or a temp-GRUU and treat the call accordingly by looking for a "gr" tag in the hi-entry prior to the last hi-entry.
使用历史记录信息,John的UA可以很容易地看到呼叫是发往其AOR、GRUU还是临时GRUU,并通过在最后一个hi条目之前在hi条目中查找“gr”标记来相应地处理呼叫。
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Alice example.com John | | REGISTER F1 | | |<--------------------| | | 200 OK F2 | | |-------------------->| | INVITE F3 | | |-------------------->| | | | INVITE F4 | | |-------------------->| * Rest of flow not shown *
Figure 9: Limited-Use Address Example
图9:有限使用地址示例
Message Details
消息详细信息
F1 REGISTER John -> example.com
F1注册John->example.com
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:John@example.com>;tag=a73kszlfl Supported: gruu To: John <sip:john@example.com> Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" Content-Length: 0
REGISTER sip:example.com SIP/2.0 Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 Max-Forwards: 70 From: John <sip:John@example.com>;tag=a73kszlfl Supported: gruu To: John <sip:john@example.com> Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>" Content-Length: 0
F2 200 OK example.com -> John
F2 200 OK example.com->John
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> ;tag=b88sn Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ pub-gruu="sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ temp-gruu=\ "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\ expires=3600 Content-Length: 0
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.0.2.1;branch=z9hG4bKnashds7 From: John <sip:john@example.com>;tag=a73kszlfl To: John <sip:john@example.com> ;tag=b88sn Call-ID: 1j9FpLxk3uxtm8tn@192.0.2.1 CSeq: 1 REGISTER Contact: <sip:john@192.0.2.1>;\ pub-gruu="sip:john@example.com;\ gr=urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\ temp-gruu=\ "sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr";\ +sip.instance="<urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6>";\ expires=3600 Content-Length: 0
Assuming Alice has knowledge of a temp-GRUU, she places a call to the temp-GRUU.
假设Alice知道临时GRUU,她会打电话给临时GRUU。
F3 INVITE Alice -> example.com
F3邀请Alice->example.com
INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ gr SIP/2.0 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\ ;gr> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: \ <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\ ;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Length: <appropriate value>
INVITE sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;\ gr SIP/2.0 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 70 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\ ;gr> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE History-Info: \ <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\ ;index=1 Contact: Alice <sip:alice@192.0.2.3> Content-Length: <appropriate value>
F4 INVITE example.com -> John
F4 INVITE example.com->John
INVITE sip:john@192.0.2.1 SIP/2.0 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\ ;gr> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: \ <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\ ;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:john@192.0.2.1 SIP/2.0 Via: SIP/2.0/UDP proxy.example.com:5060;branch=z9hG4bK12s4 Via: SIP/2.0/UDP 192.0.2.3:5060;branch=z9hG4bK42t2 Max-Forwards: 69 From: Alice <sip:alice@example.com>;tag=kkaz- To: <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com\ ;gr> Supported: gruu, histinfo Call-ID: 12345600@example.com CSeq: 1 INVITE Record-Route: <sip:proxy.example.com;lr> History-Info: \ <sip:tgruu.7hs==jd7vnzga5w7fajsc7-ajd6fabz0f8g5@example.com;gr>\ ;index=1 History-Info: <sip:john@192.0.2.1>;index=1.1;rc=1 Contact: Alice <sip:alice@192.0.2.3> Content-Type: application/sdp Content-Length: <appropriate value>
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 finding the "gr" parameter.
通过分析带有最后一个“rc”的条目引用的条目,可以通过查找“gr”参数认识到用于访问设备的URI是GRUU。
Several SIP specifications have been developed that make use of complex URIs to address services within the network rather than subscribers. The URIs are complex because they contain numerous parameters that control the behavior of the service. Examples of this include the specification that first introduced the concept, [RFC3087], control of network announcements and Interactive Voice Response (IVR) with SIP URI [RFC4240], and control of voicemail access with SIP URI [RFC4458].
已经开发了几个SIP规范,它们利用复杂的URI来寻址网络中的服务,而不是订户。URI很复杂,因为它们包含许多控制服务行为的参数。这方面的示例包括首先引入概念的规范[RFC3087]、使用SIP URI控制网络公告和交互式语音响应(IVR)[RFC4240]以及使用SIP URI控制语音邮件访问[RFC4458]。
A common problem with all of these mechanisms is that once a proxy has decided to rewrite the Request-URI to point to the service, it cannot be sure that the Request-URI will not be destroyed by a downstream proxy that decides to forward the request in some way, and does so by rewriting the Request-URI.
所有这些机制的一个常见问题是,一旦代理决定重写请求URI以指向服务,就无法确保请求URI不会被决定以某种方式转发请求的下游代理破坏,而是通过重写请求URI来实现。
Section 3.6 shows how History-Info can be used to invoke a service.
第3.6节显示了如何使用历史信息来调用服务。
Toll-free numbers, also known in the United States as 800 or 8xx numbers, are telephone numbers that are free for users to call.
免费电话号码,在美国也称为800或8xx号码,是用户可以免费拨打的电话号码。
In the telephone network, toll-free numbers are just aliases to actual numbers that are used for routing of the call. In order to process the call in the PSTN, a switch will perform a query (using a protocol called Transaction Capabilities Application Part (TCAP)), which will return either a phone number or the identity of a carrier which can handle the call.
在电话网络中,免费电话号码只是用于呼叫路由的实际号码的别名。为了处理PSTN中的呼叫,交换机将执行查询(使用称为“交易能力应用程序部分”(TCAP)的协议),该查询将返回电话号码或可处理呼叫的运营商的身份。
There has been recent work on allowing such PSTN translation services to be accessed by SIP proxy servers through IP querying mechanisms. For example, ENUM [RFC6117] has already been proposed as a mechanism for performing Number Portability (NP) queries [RFC4769]. Using it for 8xx number translations is a logical next step.
最近有一项工作是允许SIP代理服务器通过IP查询机制访问此类PSTN翻译服务。例如,枚举[RFC6117]已经被提议作为执行数字可移植性(NP)查询的机制[RFC4769]。将其用于8xx数字转换是合乎逻辑的下一步。
The new target from translating the 8xx number may be in the PSTN or in the SIP network. If the new target is an entity in the PSTN, the proper treatment in the PSTN (and in particular, correct reconciliation of billing records) requires that the call be marked with both the originating number (8xx number) and the new target number, History-info would come in play here to assure original 8xx number is not lost.
转换8xx号码的新目标可能位于PSTN或SIP网络中。如果新目标是PSTN中的一个实体,PSTN中的正确处理(特别是正确核对计费记录)要求呼叫同时标记始发号码(8xx号码)和新目标号码,历史信息将在此处发挥作用,以确保原始8xx号码不会丢失。
Although not required to have both the originating number (8xx number) and the new target in the SIP network, an enterprise or user who utilize the 8xx service can benefit by knowing whether the call came in via an 8xx number in order to treat the call differently (for example, to play a special announcement), but if the original Request-URI is lost through translation, there is no way to tell if the call came in via 8xx number. History-Info again would come in play here.
虽然SIP网络中不需要同时拥有始发号码(8xx号码)和新目标,但使用8xx服务的企业或用户可以通过了解呼叫是否通过8xx号码进入来区别对待呼叫(例如,播放特别通告)而受益,但是,如果原始请求URI在转换过程中丢失,则无法判断呼叫是否通过8xx号码传入。历史信息将再次在这里发挥作用。
Similar problems arise with other "special" numbers and services used in the PSTN, such as operator services, pay/premium numbers (9xx numbers in the United States), and short service codes such as 311.
PSTN中使用的其他“特殊”号码和服务也会出现类似的问题,如运营商服务、付费/付费号码(美国为9xx号码)和短服务代码,如311。
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. Technically, the call can be forwarded to these "special" numbers from non-special numbers; however, that is uncommon based on the way these services authorize translations.
为了找到服务编号,UAS可以提取hi条目,该条目的索引与带有“mp”标记的第一个hi条目的值相匹配。从技术上讲,呼叫可以从非特殊号码转发到这些“特殊”号码;然而,基于这些服务授权翻译的方式,这种情况并不常见。
This example call flow shows a UAC that does not support History-Info.
此示例调用流显示不支持历史信息的UAC。
Alice Toll-Free Service Atlanta.com John | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | | | | INVITE F3 | | | |------------------>|
Alice Toll-Free Service Atlanta.com John | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | | | | INVITE F3 | | | |------------------>|
* Rest of flow not shown *
* 未显示流的其余部分*
Figure 10: Service Number Example
图10:服务编号示例
Message Details
消息详细信息
F1 INVITE 192.0.2.1 -> Toll-Free Service
F1邀请192.0.2.1->免费服务
INVITE sip:+18005551002@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 70 Contact: <sip:alice@192.0.2.1> Content-Type: application/sdp Content-Length: <appropriate value>
INVITE sip:+18005551002@example.com;user=phone SIP/2.0 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 70 Contact: <sip:alice@192.0.2.1> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F2 INVITE Toll-Free Service -> Atlanta.com
F2邀请免费服务->亚特兰大网站
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.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 69 Supported: histinfo History-Info: <sip:+18005551002@example.com;user=phone>;index=1 History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1 Contact: <sip:alice@192.0.2.1> Content-Type: application/sdp Content-Length: <appropriate value>
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.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 69 Supported: histinfo History-Info: <sip:+18005551002@example.com;user=phone>;index=1 History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1 Contact: <sip:alice@192.0.2.1> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
F3 INVITE Atlanta.com -> John
F3邀请亚特兰大网站->约翰
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 192.0.2.4:5060;branch=z9hG4bK-ik8 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 68 Supported: histinfo History-Info: <sip:+18005551002@example.com;user=phone>;index=1 History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1 History-Info: <sip:john@atlanta.com>;index=1.1.1;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> Content-Type: application/sdp Content-Length: <appropriate value>
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 192.0.2.4:5060;branch=z9hG4bK-ik8 Via: SIP/2.0/TCP 192.0.2.1:5060;branch=z9hG4bK74bf From: Alice <sip:+15551001@example.com;user=phone>;tag=9fxced76sl To: <sip:+18005551002@example.com;user=phone> Call-ID: c3x842276298220188511 CSeq: 1 INVITE Max-Forwards: 68 Supported: histinfo History-Info: <sip:+18005551002@example.com;user=phone>;index=1 History-Info: <sip:+15555551002@atlanta.com>;index=1.1;mp=1 History-Info: <sip:john@atlanta.com>;index=1.1.1;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> Content-Type: application/sdp Content-Length: <appropriate value>
[SDP Not Shown]
[未显示SDP]
The security considerations for the History-Info header field are specified in [RFC7044].
[RFC7044]中规定了历史信息标题字段的安全注意事项。
Jonathan Rosenberg, et al produced the document that provided additional use cases precipitating the requirement for the new "target" parameter in the History-Info header field and the new SIP/ SIPS URI parameter. Hadriel Kaplan provided some comments.
乔纳森·罗森伯格(Jonathan Rosenberg)等人编写了一份文档,该文档提供了额外的用例,在History Info header字段中要求新的“target”参数和新的SIP/SIPS URI参数。Hadriel Kaplan提供了一些评论。
Brett Tate, Roland Jesske, Laura Liess, Scott Godin, Dale Worley, and Marianne Mohali provided extensive review and comments on call flows, message examples, and text.
Brett Tate、Roland Jeske、Laura Liess、Scott Godin、Dale Worley和Marianne Mohali对呼叫流、消息示例和文本进行了广泛的审查和评论。
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
[RFC3261]Rosenberg,J.,Schulzrinne,H.,Camarillo,G.,Johnston,A.,Peterson,J.,Sparks,R.,Handley,M.,和E.Schooler,“SIP:会话启动协议”,RFC 3261,2002年6月。
[RFC5627] Rosenberg, J., "Obtaining and Using Globally Routable User Agent URIs (GRUUs) in the Session Initiation Protocol (SIP)", RFC 5627, October 2009.
[RFC5627]Rosenberg,J.,“在会话启动协议(SIP)中获取和使用全局可路由用户代理URI(GRUUs)”,RFC 5627,2009年10月。
[RFC3087] Campbell, B. and R. Sparks, "Control of Service Context using SIP Request-URI", RFC 3087, April 2001.
[RFC3087]Campbell,B.和R.Sparks,“使用SIP请求URI控制服务上下文”,RFC 3087,2001年4月。
[RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network Media Services with SIP", RFC 4240, December 2005.
[RFC4240]Burger,E.,Van Dyke,J.,和A.Spitzer,“具有SIP的基本网络媒体服务”,RFC 42402005年12月。
[RFC5039] Rosenberg, J. and C. Jennings, "The Session Initiation Protocol (SIP) and Spam", RFC 5039, January 2008.
[RFC5039]Rosenberg,J.和C.Jennings,“会话启动协议(SIP)和垃圾邮件”,RFC 5039,2008年1月。
[RFC4458] Jennings, C., Audet, F., and J. Elwell, "Session Initiation Protocol (SIP) URIs for Applications such as Voicemail and Interactive Voice Response (IVR)", RFC 4458, April 2006.
[RFC4458]Jennings,C.,Audet,F.,和J.Elwell,“语音邮件和交互式语音应答(IVR)等应用程序的会话启动协议(SIP)URI”,RFC 4458,2006年4月。
[RFC6117] Hoeneisen, B., Mayrhofer, A., and J. Livingood, "IANA Registration of Enumservices: Guide, Template, and IANA Considerations", RFC 6117, March 2011.
[RFC6117]Hoenesen,B.,Mayrhofer,A.,和J.Livingood,“Enumservices的IANA注册:指南,模板和IANA注意事项”,RFC 61172011年3月。
[RFC4769] Livingood, J. and R. Shockey, "IANA Registration for an Enumservice Containing Public Switched Telephone Network (PSTN) Signaling Information", RFC 4769, November 2006.
[RFC4769]Livingood,J.和R.Shockey,“包含公共交换电话网(PSTN)信令信息的Enumservice的IANA注册”,RFC 4769,2006年11月。
[RFC7044] Barnes, M., Audet, F., Schubert, S., van Elburg, J., and C. Holmberg, "An Extension to the Session Initiation Protocol (SIP) for Request History Information", RFC 7044, February 2014.
[RFC7044]Barnes,M.,Audet,F.,Schubert,S.,van Elburg,J.,和C.Holmberg,“请求历史信息会话启动协议(SIP)的扩展”,RFC 7044,2014年2月。
Authors' Addresses
作者地址
Mary Barnes TX US
玛丽·巴恩斯
EMail: mary.ietf.barnes@gmail.com
EMail: mary.ietf.barnes@gmail.com
Francois Audet Skype
弗朗索瓦·奥德特Skype
EMail: francois.audet@skype.net
EMail: francois.audet@skype.net
Shida Schubert NTT Tokyo Japan
Shida Schubert NTT日本东京
EMail: shida@ntt-at.com
EMail: shida@ntt-at.com
Hans Erik van Elburg Detecon International Gmbh Oberkasseler str. 2 Bonn Germany
Hans-Erik van Elburg Detecon International Gmbh德国波恩Oberkasseler街2号
EMail: ietf.hanserik@gmail.com
EMail: ietf.hanserik@gmail.com
Christer Holmberg Ericsson Hirsalantie 11, Jorvas Finland
Christer Holmberg Ericsson Hirsalantie 11,芬兰约瓦斯
EMail: christer.holmberg@ericsson.com
EMail: christer.holmberg@ericsson.com