SIP INVITE 消息中的 INVITE 字段和 To 字段有什么区别?
What is the difference between the INVITE field and the To field in a SIP INVITE message?
在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;transport=UDP
它们之间的区别是请求 Uri 包含下一个 HOP ip 地址,其中 uri 包含目标号码。
从源地址到目标地址...我们可以有很多跃点。
我已经回答了你的问题
对于请求 URI
规范 RFC3261 8.1.1.1 说:
The initial Request-URI of the message SHOULD be set to the value of
the URI in the To field. One notable exception is the REGISTER
method;
对于 To
header 规范 RFC3261 8.1.1.2 说:
The To header field first and foremost specifies the desired
"logical" recipient of the request, or the address-of-record of the
user or resource that is the target of this request. This may or may
not be the ultimate recipient of the request.
对于 non-REGISTER 请求,To
header URI 是一个“逻辑”值,通常由处理请求的代理决定如何使用它(通常什么也没做)。请求 URI
更为关键。它规定了请求需要发送到哪里以及如何发送。
一个可能有用的例子是需要通过 TCP 传输发送请求。请求 URI
可以生成为:
sip:1234@localhost;transport=tcp
而 To
URI 将保留:
sip:1234@localhost
在SIP INVITE消息中,INVITE字段地址和Message中的To字段有什么区别Header?
'to'
header 字段包含所需的 address-of-record
; address-of-record
本质上是不变的(有例外)。
INVITE 字段地址又名 Request-URI
包含当前 SIP-URI
目标并且本质上是可变的。
INVITE 字段中的 SIP URI 是否应该与消息中 'To' 字段中的 SIP URI 相同 header?
简短回答:在形成初始 INVITE 时是,在发生 SIP 路由时否。
更长的东西:如果用户代理 Alice 发起对特定 Bob SIP 端点的呼叫,它会从 某处 检索 Bob address-of-record,然后创建初始 INVITE将所需 address-of-record
放置在 Request-URI
字段中的请求,将相同的 address-of-record
放置在 to
header 字段的 URI 中。
初始 INVITE 已发送并路由...在一个 SIP 代理上,Request-URI
字段使用 [RFC3261] 第 16 节中指定的过程进行了细化。
如果它收到针对属于此代理负责的域的 address-of-record 的请求,则:
- 应该访问SIP定位服务来计算
the request targets
,注意可以有多个target-URI
!
- 在一个简单的案例中,request-URI 使用 REGISTRAR 数据库与所需
address-of-record
的注册联系人一起归档。
- 代理创建相关
INVITE request
,request URI
更改为新获取的 target URI
,
- 然后如果存在更多
target-URI
则以相同的方式进行分叉。
在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;transport=UDP
它们之间的区别是请求 Uri 包含下一个 HOP ip 地址,其中 uri 包含目标号码。
从源地址到目标地址...我们可以有很多跃点。
我已经回答了你的问题
对于请求 URI
规范 RFC3261 8.1.1.1 说:
The initial Request-URI of the message SHOULD be set to the value of the URI in the To field. One notable exception is the REGISTER method;
对于 To
header 规范 RFC3261 8.1.1.2 说:
The To header field first and foremost specifies the desired "logical" recipient of the request, or the address-of-record of the user or resource that is the target of this request. This may or may not be the ultimate recipient of the request.
对于 non-REGISTER 请求,To
header URI 是一个“逻辑”值,通常由处理请求的代理决定如何使用它(通常什么也没做)。请求 URI
更为关键。它规定了请求需要发送到哪里以及如何发送。
一个可能有用的例子是需要通过 TCP 传输发送请求。请求 URI
可以生成为:
sip:1234@localhost;transport=tcp
而 To
URI 将保留:
sip:1234@localhost
在SIP INVITE消息中,INVITE字段地址和Message中的To字段有什么区别Header?
'to'
header 字段包含所需的 address-of-record
; address-of-record
本质上是不变的(有例外)。
INVITE 字段地址又名 Request-URI
包含当前 SIP-URI
目标并且本质上是可变的。
INVITE 字段中的 SIP URI 是否应该与消息中 'To' 字段中的 SIP URI 相同 header?
简短回答:在形成初始 INVITE 时是,在发生 SIP 路由时否。
更长的东西:如果用户代理 Alice 发起对特定 Bob SIP 端点的呼叫,它会从 某处 检索 Bob address-of-record,然后创建初始 INVITE将所需 address-of-record
放置在 Request-URI
字段中的请求,将相同的 address-of-record
放置在 to
header 字段的 URI 中。
初始 INVITE 已发送并路由...在一个 SIP 代理上,Request-URI
字段使用 [RFC3261] 第 16 节中指定的过程进行了细化。
如果它收到针对属于此代理负责的域的 address-of-record 的请求,则:
- 应该访问SIP定位服务来计算
the request targets
,注意可以有多个target-URI
! - 在一个简单的案例中,request-URI 使用 REGISTRAR 数据库与所需
address-of-record
的注册联系人一起归档。 - 代理创建相关
INVITE request
,request URI
更改为新获取的target URI
, - 然后如果存在更多
target-URI
则以相同的方式进行分叉。