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-recordaddress-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 requestrequest URI 更改为新获取的 target URI
  • 然后如果存在更多 target-URI 则以相同的方式进行分叉。