SIP协议之OPTIONS

    OPTIONS是SIP协议中基本的请求方法之一。由RFC3261定义,OPTIONS方法允许用户代理/终端查询另一个用户代理/终端或SIP服务器提供的能力,所有的SIP用户代理都要实现对该方法的处理。

实际应用场景如下:
1. 查询对端能力
 这个机制允许客户端查询到服务端支持的方法、内容类型、扩展,编码等信息,在查询过程中不会触发响铃或其它机制提醒对方用户。所有的用户代理/终端必须支持OPTIONS方法。其中一个应用场景,客户端准备在INVITE请求中插入一个强制需要的头域,又不确认对端是否支持该头域时,可以通过OPTIONS查询对方支持的头域列表进行确认。

2. NAT会话保活
  使用UDP作为传输方式时,通过定时(比如10秒)发送OPTIONS请求来刷新NAT保活

3. 检测对端状态
   通过定时向对端发送OPTIONS消息,来检测对端服务是否存活。返回200表示正常,返回其它(503等)表示对端异常

4. 探测客户端到达目的端需要经过的SIP网元数量
   RFC3261规定,服务端收到了Max-Forwards为0的OPTIONS请求时,可以忽略请求URI对应的最终目的地址,直接对该OPTIONS请求作出应答。依靠这种行为表现可以用来检测需要经过多少跳网元到达对端。原理是发出一系列Max-Forwards递增的OPTIONS请求,直到收到对端返回的200应答,对应的Max-Forwards值就是经过的SIP网元数量

   注: SIP消息每经过一个SIP网元(服务或代理),Max-Forwards减少1

OPTIONS消息示例

 OPTIONS sip:carol@chicago.com SIP/2.0
 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
 Max-Forwards: 70
 To: <sip:carol@chicago.com>
 From: Alice <sip:alice@atlanta.com>;tag=1928301774
 Call-ID: a84b4c76e66710
 CSeq: 63104 OPTIONS
 Contact: <sip:alice@pc33.atlanta.com>
 Accept: application/sdp
 Content-Length: 0


SIP/2.0 200 OK
 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
 ;received=192.0.2.4
 To: <sip:carol@chicago.com>;tag=93810874
 From: Alice <sip:alice@atlanta.com>;tag=1928301774
 Call-ID: a84b4c76e66710
 CSeq: 63104 OPTIONS
 Contact: <sip:carol@chicago.com>
 Contact: <mailto:carol@chicago.com>
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE
 Accept: application/sdp
 Accept-Encoding: gzip
 Accept-Language: en
 Supported: foo
 Content-Type: application/sdp
 Content-Length: 274
 (SDP not shown)

注: 上面200 OK中黑色部分,表示对端支持的能力参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪游东戴河

你就是这个世界的唯一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值