用OPTIONS方法实现Keep Alive

noiile@hotmail.com

在SIP应用中,假如用户在用SIP UA享受某种计时收费的业务,比如在线观看收费电视,突然死机,这时服务器不能得知任何关于用户设备死机的信息,计费服务仍在继续。

这显然是种不合理的情况,服务器必须实时的知道用户的状态,这种情况presence服务器也不一定能帮助解决问题。因为用户的SIP UA只有在改变状态的情况下才发PUBLISH消息到Presence Server,也就是说要等这个PUBLISH expired,服务器才能知道用户已经不在线了。但是用户无论发PUBLISH还是REGISTER,它的过期时间的设置都取决于用户的SIP UA,很多时候,用户会把这个时间设为10分钟,或更长。这就不能满足某些业务实时性高的要求。

 

很容易得出结论,对于某些实时性要求高的业务,比如IPTV Server,无论是REGISTER还是PUBLISH都不能解决问题。解决方案需要考虑以下几点:

1.         利用现有的SIP方法,并且不取决于用户SIP UA

2.         用户的SIP UA不必对此做任何特殊的处理。

3.         且时间控制取决于服务方,即Application Server或其他Server,因为不同的服务可能对时间精度要求不同。

 

很明显,如果Server周期的发一个SIP请求到终端,这个周期时间取决于该Server,如果用户的SIP UA有回response,则表示用户还是online,如果用户没有回response,那它就是offline的,Server可以终止该用户的服务。

但是,用什么SIP方法最合适呢?OPTIONS。因为RFC3261定义,所有的UA都必须支持OPTIONS方法,所以OPTIONS方法满足了上面提及的1 2点要求。而且OPTIONS方法简单,只是请求用户SIP UA的能力,不需要人机交互,与Dialog无关。所以,用OPTIONS方法来获知用户是否online再合适不过了。

 

其流程如下图:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值