您当前的位置是:  首页 > 资讯 > 国内 >
 首页 > 资讯 > 国内 >

SIP协议规范RFC3261中文分享-20

2020-08-05 15:35:55   作者:   来源:CTI论坛   评论:0  点击:


  接前面章节
  12.1.1 UAS behavior
  当UAS对请求返回响应时,响应消息中携带了创建dialog消息(例如,INVITE响应的2xx),UAS必须从请求中拷贝所有Record-Route 头值到响应消息中(包括URIs,URI参数和任何 Record-Route 头参数,无论这些参数对UAS是已知还是未知参数),而且必须保持这些参数的顺序。此UAS必须对响应添加一个Contact头,这个Contact头包含一个地址,UAS将会在dialog(包括INVITE中ACK的2xx响应)中的后续请求联系此地址。一般来说,此URL的主机消息是此IP地址,或者主机的FQDN。在Contact头中提供的URI必须是一个SIP或者SIPS URL。
  如果在初始化了dialog的请求中的Request-URI或者top Record-Route 头中的值域中包含SIPS URI,如果没有Record-Route头域,如果有任何值或者Contact头的话,响应中的Contact头必须是一个SIP URL。此URL应该支持一个全局范围(也就是说,在消息中,同样的URL可以使用在此dialog外部)。同样的方式,在INVITE中的Contact头域中的URL使用范围也不能被局限于此dialog中。因此,它可以针对UAC的消息中,甚至于也可以使用在此dialog外部。
  UAS然后构建dialog状态。在dialog生命周期内,此状态必须被持续维护。
  如果请求是通过TLS发送过来的,并且Request-URI包含一个SIPS URI,“secure”设置为TRUE。
  路由组必须设置到请求的Record-Route头的URL列表中,按照顺序处理,并且保留所有的URL参数值。如果在请求中没有出现Record-Route头,路由组必须设置为空。这个路由组,甚至是空的路由组将会在dialog的后续请求中覆盖任何已存在的路由组设置。远端目的地地址必须设置为从此请求的Contact头获得的URL地址。
  远端序列号必须设置为请求中CSeq的序列号。本地序列号必须为空。Dialog ID中的呼叫身份组件必须设置为请求中的Call-ID值。Dialog ID中的本地标签组件必须设置为此请求的相应响应中的TO域中的标签值(总是要包含一个tag标签),dialog ID中的远端标签组件必须设置为从请求中From域获得的标签值。UAS必须准备接收一个在From域中无tag标签的请求,这样的环境中,此标签tag被认为是一个空值的标签。
  这样的处理方式为了支持向后兼容,兼容RFC 2543规范,在RFC2543中,tags不是强制使用的。
  远端的URL必须设置为从From获得的URI,本地URL必须设置为从To中获得的URL。
  12.1.2 UAC Behavior
  当UAC发送了一个请求,此请求能够创建dialog(例如发送的INVITE),UAC必须在请求的Contact头中提供一个支持全局范围的SIP或SIPS URL(同样的SIP URL可以使用在dialog的外部环境中)。如果请求中含有Request-URI值或路由中的最顶部的 Route头中带一个SIPS URI,那么Contact头必须包含一个SIPS URI。
  当UAC收到了一个响应,此响应创建一个dialog,它构建了这个dialog的状态。dialog状态必须被维持在dialog生命周期内。
  如果此请求是通过TLS发送,并且Request-URI包含一个SIPS URI,“secure”
  Flag设置为TRUE。
  路由组必须设置到响应的Record-Route头的URL列表中,按照顺序处理,并且保留所有的URL参数值。如果在响应中没有出现Record-Route头,路由组必须设置为空。这个路由组甚至是空的路由组将会在dialog的后续请求中覆盖任何已存在的路由组设置。远端目的地地址必须设置为从此请求的Contact头获得的URL地址。
  本地序列号必须设置为请求中CSeq的序列号。远端序列号必须为空(当远端UA在dialog中发送一个请求时,远端序列号才能被创建)。Dialog ID中的呼叫身份组件必须设置为请求中的Call-ID值。Dialog ID中的本地标签组件必须设置为此请求的相应响应中的From域中的标签值(总是要包含一个tag标签),dialog ID中的远端标签组件必须设置为从响应中To域获得的标签值。UAC必须准备接收一个在To域中无tag标签的响应,这样的环境中,此标签tag被认为是一个空值的标签。
  这样的处理方式为了支持向后兼容,兼容RFC 2543规范,在RFC 2543中,tags不是强制使用的。
  远端的URL必须设置为从To获得的URI,本地URL必须设置为从From中获得的URL。
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

相关阅读:

专题

CTI论坛会员企业