免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2227 | 回复: 0
打印 上一主题 下一主题

asterisk与xlite、eyebeam的mwi问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-19 23:20 |只看该作者 |倒序浏览
在用xlite\eyebeam与asterisk测试mwi时,发现存在一个问题,软phone在正确响应(发送200 ok)第一个收到的mwi notify后,对后续的notify皆回复错误的200 ok,直到下一次subsribe。但是响应一次notify后,又再错误处理后续的notify。
分析sip信令包发现,软phone回复后续notify的200 ok中的cseq与notify的不对应,而是与第一个notify的一致,而且对notify的message body并不处理,似乎xlite或者eyebeam对同一个dialog内的后续notify都误认为是重发。
根据rfc3265,典型的消息流程如下:
   Subscriber          Notifier
       |-----SUBSCRIBE---->|     Request state subscription
       ||
       ||
明显,xlite的处理有问题。
再看看asterisk是怎么做的。在sip channel的handle subscibe里,回复200 ok后会马上发送mwi给subscriber。这个似乎没什么必要,但是
   Upon successfully accepting or refreshing a subscription, notifiers
   MUST send a NOTIFY message immediately to communicate the current
   resource state to the subscriber.  This NOTIFY message is sent on the
   same dialog as created by the SUBSCRIBE response.  If the resource
   has no meaningful state at the time that the SUBSCRIBE message is
   processed, this NOTIFY message MAY contain an empty or neutral body.
   See section 3.2.2. for further details on NOTIFY message generation.
   Note that a NOTIFY message is always sent immediately after any 200-
   class response to a SUBSCRIBE request, regardless of whether the
   subscription has already been authorized.
好吧,asterisk是对的,不过为了测试mwi,只能先注掉发送第一次notify的代码,果然xlite、eyebeam就能正确处理notify的message body了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1251/showart_1210955.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP