Compare Plans

2019-10-26

SIP消息的一般格式(二)

          (5) Via
         Via字段用以指示请求历经的路径。它可以防止请求消息传送产生环路,并确保应 答和请求消息选择同样的路径,以保证通过防火墙或满足其他特定的选路要求。
         在我国原信息产业部关于SIP协议的标准中规定,当UAC生成请求消息时,它必须 在其中插入个Via头字段。Via头字段的协议名称和协议版本必须分别为“SIP” 和“2. 0”,Via头字段中必须包含一个“branch”参数,该参数用来标识由,前请求所建立 的事务。该参数既用在客户端也用在服务器端。对于某个UA发出的所有请求,它们的 branch参数值在空间和时间上必须全局唯一。但有两种情况例外:一是CANCEL请求, 后面会说明CANCEL请求的branch参数与它所要取消的那个请求的branch参数是一 样的;另一个是对非200响应的ACK请求,这种情况下ACK请求与相关的INVITE请 求有着同样的branch ID,它所要确认的就是该INVITE的响应。
         SIP实体在插入branch ID时,必须以“ z9hG4bK”开头。这样SIP服务器在收到请求 消息时,就能确定现在的branch ID是全局唯一的。
         发起请求的客户必须将其自身的主机名或网络地址插入请求的Via字段,如果未采 用默认端口号,还需插入此端口号。在请求消息前传过程中,每个代理服务器必须将其自 身地址作为一个新的Via字段加在已有的Via字段之前。如果代理服务器收到一个请 求,发现其自身地址位于Via头部屮,则必须回送响应“检测到环路”。
         当请求消息通过网络地址翻译点(如防火墙)时,请求的源地址和端口号可能被改变, 此时Via字段就不能成为应答消息选路的依据了。为了防止这一点,代理服务器应校验 顶端Via字段,如果发现其值和代理服务器检测到的前站地址不符,则应在该Via字段中 加入“received”参数,“received”参数用来记录代理服务器检测到的前站地址,如此修改后 的字段称为“接收方标记Via头部字段”。若代理服务器向多播地址发送请求,则必须在 其Via头部字段中加入“多播地址’’(maddr)参数,此参数指明该多播地址。
         例如,在下图所示的例子中,呼叫中心使用专用地址(10. x. x X),它通过一个能够进 行网络地址翻译的路由器连接到因特网上。当呼叫中心从代理PXY1接收到邀请请求消息 时,该请求消息的源IP地址不是192. 9. 5. 3,而是被NAT(网络地址翻译)设备翻译的10. 0. 0.3。因此自动呼叫分配(ACD)系统会在向后转发的邀请请求消息的Via头部的“received” 参数中记录这个信息,该参数的格式为“received=10. 0. 0. 3”。在这个消息的应答接收后.由 “received”参数,呼叫中心知道它必须将对请求的应答消息转发到10. 0. 0. 3,而不是PXY1 ©provider, com。这种机制也可以用于向IP地址域以外不可路由的地址发送请求。
图   Via头部中“received”参数的应用
        这个例子同时也表现出多播是如何被处理的。由于自动呼叫分配系统是以多播方式 向所有的话务员转发邀请消息,所以在Via头部中增加了 maddr参数,当个maddr参 数出现在Via域中时,应答是使用maddr地址以多播的方式转发的(TTL值同时也存储 在TTL参数中>。
         Via头域是SIP屮功能最强大的部分之一,而且表现出SIP在设计时已经考虑到了 IP网络的问题。
         (6) Contact
        该字段用于INVITE、ACK和REGISTER请求以及成功应答、呼叫进展应答和重定 向应答消息,其作用是给出其后与用户直接通信的地址。
        INVITE和ACK请求中的Contact字段指示该请求发出的位置。它使被叫可以直 接将请求(如BYE请求)发往该地址,而不必借助Via字段经由一系列代理服务器返回。
        对INVITE请求的成功应答消息可包含Contact字段,它使其后的SIP请求消息(如 ACK请求)叫直接发往该字段给定的地址。该地址一般是被叫主机的地址,如果该主机 位于防火墙之后,则为代理服务器地址。
        对应于INVITE请求的呼叫进展应答消息中包含的Contact字段的含义和成功应答 消息相同。但是,CANCEL请求不能直接发往该地址,必须沿原请求发送的路径前传。
         REGISTER请求中的Contact字段指明用户可达位置。在该请求消息的Contact头 部还定义了通配字段“*”,它用来和值为0的“失效”字段配用,表示删除某用户的所有登 记。Contact头部也可设定“失效”参数(任选参数),给定登记的失效时间。
        REGISTER请求的成功应答消息中的Contact字段返回该用户当前可达的位置。
        对BYE、INVITE和OPTIONS方法的重定向应答消息,如原因值为用户临时迁移、 永久迁移、地址模糊等,在重定向应答消息中的Contact头部给出的是可供重试的其他可 选地址。
        Contact头字段指定一个SIP URL,后续请求可以用它来联系到当前UA。任何能够 建立对话的请求消息中都必须有Contact头字段,并且该头字段中只能含有•个SIP或 SIP URL。在我国原信息产业部关于SIP协议的标准中定义的请求方法中,只有INVITE 请求能建立对话。 对这些能建立对话的请求, Contact 的作用范围是全局的。也就 是说,Contact头字段值中包含的URL是UA希望用来接收请求的地址,即使用在任何 对话外的后续请求消息中,该URL也必须有效。
       (7) Max-Forwards
        Max-Forwards头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。 它包含一个整数值,每经过一跳,这个值就被减1。如果在请求消息到达目的地之前该值 变为〇,那么请求将被拒绝并返回-•个483(跳数过多)错误响应消息。
        UAC必须在它发起的每个请求中都播入Max-Forwards头字段,值为70。在任何不 出现回路的SIP网络中,选择该值为70已足够大,从而保证个请求消息不被丢弃,且在 有回路的情况下,这个值也不会因太大而过分浪费代理服务器的资源。UA只有在知道 网络的拓扑结构时,才可以谨慎地选择更小的跳数值。
        (8) 实体头部
       在SIP中,消息体由与会话有关的信息或将展现给用户的信息所组成。当信息与会 话有关时,可根据SDP协议对会话进行描述,用来描述媒体的负载类型、接收媒体信息的 地址和端口号码等信息。实体头部的目的就是指出包括在消息体中的信息的类型和格 式,以保证能正确调用适当的应用程序来处理这些消息体内的信息。
        实体头部字段由Content-Type(内容类型)、Content-Length(内容长度)、Content- Language (消息体的接收者的原始语言)、Content-Encoding (编解码方式)组成。
        Content-Type头部字段指出消息体的类型,Content-Length头部字段指出消息体以 字节为单位的长度,Content-Encoding头字段的值指定了适用于该实体的编码以及为了 获得Content-Type指定的媒体类型所需要使用的解码机制。
        当消息体的类型为 SDP 时,Content-Type 头部字段为:“ Content-Type: application/ sdp”。
        当消息体的类型为 ISUP 时,Content-Type 头部字段为:“Content-Type:application/ ISUP,。
         在我国原信息产业部关于SIP协议的标准中规定,由UAC产生的一个有效的SIP 请求消息必须至少包含下列头字段:To、From、CSeq、Call-ID、Max-Forwards和Via头 字段,这些头字段在所有的SIP请求消息都是必选的。这6个头字段是构建SIP消息的 基本单元,它们共同提供了大部分的关键的消息路由服务,包括消息的寻址、响应的路由、 消息传播距离限制、消息排序,以及事务交互的唯一性标识等。另外,请求行(request line)也是必选的,它包含了请求方法、Request-URL、SIP版本信息。

联系我们

028-83110277

IP电话机视频电话机供应商

手机:

成都世讯电科信息技术有限公司

成都世讯电科信息技术有限公司是一家多媒体融合通信解决方案及运营服务提供商,公司专注于为广大用户提供简单高效的通信产品和真正符合行业用户需求的行业应用解决方案,让用户享受到个性化、私密性强又具开放性、兼容性强又易于管理的高科技服务,帮助用户实现办公及运营通信的现代化与网络信息化。

公司拥专注于IP多媒体解决方案的应用与实施,有IP多媒体通信系统(IPBX)、IP多媒体通信平台定制与搭建(运营、对讲广播、门禁、调度、音视频会议及与视频监控交互式应用等)、IP电话机、视频电话机、项目租赁、云通信及系统集成等服务。

电话:028-83110277

Q Q:86313858