在 SIP INVITE 消息中,INVITE 字段地址和 Message Header 中的 To 字段有什么区别?INVITE 字段中的 SIP URI 不应该与消息头中“To”字段中的 SIP URI 相同吗?
谢谢
我认为您在谈论 RequestUri 和 To Uri 之间的区别。
请求 URI:
邀请 sip:+919100548751@85.13.246.222 SIP/2.0
到 URI:
sip:+919100548751@52.10.15.196;传输=UDP
它们之间的区别是 Request Uri 包含下一个 HOP ip 地址,而 uri 包含目标号码。
从源地址到目标地址……我们可以有很多跳。
我回答了你的问题
对于请求URI
,规范RFC3261 8.1.1.1说:
消息的初始 Request-URI 应该设置为 To 字段中 URI 的值。一个值得注意的例外是 REGISTER 方法。
对于To
标头,规范RFC3261 8.1.1.2说:
To 标头字段首先指定请求的所需“逻辑”接收者,或作为此请求目标的用户或资源的记录地址。这可能是也可能不是请求的最终接收者。
对于非 REGISTER 请求,To
标头 URI 是一个“逻辑”值,通常由处理请求的代理决定如何使用它(通常什么都不做)。该请求URI
更为关键。它规定了需要发送请求的位置和方式。
一个可能有帮助的例子是当需要通过 TCP 传输发送请求时。该请求URI
可以生成为:
sip:1234@localhost;transport=tcp
而To
URI 将保留:
sip:1234@localhost
在 SIP INVITE 消息中,INVITE 字段地址和 Message Header 中的 To 字段有什么区别?
标'to'
头字段包含所需的address-of-record
; 这address-of-record
本质上是恒定的(有例外)。INVITE 字段地址又名Request-URI
包含当前SIP-URI
目标,并且本质上是可变的。
INVITE 字段中的 SIP URI 不应该与消息头中“To”字段中的 SIP URI 相同吗?
简短回答:在形成初始 INVITE 时是,在 SIP 路由发生时不是。
更长的东西:如果用户代理 Alice 发起对特定 Bob SIP 端点的呼叫,它会从某个地方检索 Bob 记录地址,然后创建一个初始 INVITE 请求,并将所需的内容address-of-record
放在Request-URI
字段中,将其address-of-record
放在 URI 中的to
标题字段。
初始 INVITE 被发送和路由……在一个 SIP 代理上,该 Request-URI
字段使用 [RFC3261] 第 16 节中指定的过程进行细化。
如果它接收到针对属于该代理负责的域的记录地址的请求,则:
the request targets
,注意不止一个target-URI
是可能的!address-of-record
使用 REGISTRAR 数据库与所需的注册联系人一起归档。INVITE request
更改request URI
为新获取的相关的target URI
,target-URI
存在更多,则以相同的方式进行分叉。