MESSAGE消息发送失败
2015-08-23 19:29
232 查看
问题现象:
两终端(P1和P2)之间互相发送消息,P1给P2发送,P2无法收到P1发送的MESSAGE消息。分析步骤:
1. 首先,在IPBX上进行抓包2. 其次,分析P1发送给IPBX的SIP数据包,发现P1发送的MESSAGE消息正确
3. 再次,分析IPBX发送给P2的MESSAGE消息,发现IPBX发送的MESSAGE请求消息中REQUEST-URL的IP地址为0.0.0.0,TO头域中的IP地址为0.0.0.0。
4. 接下来,根据#3,分析得出的结论注册消息引起该问题,因此在IPBX上重新抓包,从P2终端注册开始进行抓包
5. 最后,从新分析新抓的数据包发现,P2进行注册时Contact头域中的IP地址为0.0.0.0。
6. 修改P2的REGISTER消息中Contact头域IP地址为后续接收消息的真实地址后,“MESSAGE消息发送失败”问题得以解决。
Contact头域中IP地址为0.0.0.0的REGISTER消息
REGISTER sip:172.16.250.127:5060 SIP/2.0Via: SIP/2.0/UDP172.16.251.6:5060;rport;branch=z9hG4bK277864671
From:<sip:9990@172.16.250.127:5060>;tag=1612916590
To: <sip:9990@172.16.250.127:5060>
Call-ID: 1256797518
CSeq: 1 REGISTER
Contact: <sip:9990@0.0.0.0:5060>
Max-Forwards: 70
Expires: 120
Content-Length: 0
失败的MESSAGE消息:
MESSAGE sip:9990@0.0.0.0SIP/2.0Via: SIP/2.0/UDP172.16.250.127:5060;branch=z9hG4bK7f83d44b
From: "8000"<sip:8000@172.16.250.127>;tag=2e951b11
To: <sip:9990@0.0.0.0>
Call-ID:1439365445285ae76a06611bc14cf06ab7@7ffa10ac
CSeq: 1590 MESSAGE
Max-Forwards: 70
Content-Type: text/plain
Content-Length: 5
test4
相关文章推荐
- js面向对象
- android 自定义view二
- IOS-音乐播放器
- HDU 5343(MZL's Circle Zhou-SAM)[Template:SAM]
- 关于Thread的那些事
- [转载]完美的背景图全屏代码
- 编写高质量代码改善C#程序的157个建议——建议137:委托和事件类型应添加上级后缀
- Map集合概述
- CentOS6配置本地光盘yum源
- tomcat8配置(win8)
- HDU2899 Strange fuction(简单三分)
- java基础-面向对象-异常
- Python——configParser模块学习
- 2.6-Apache禁止指定user_agent
- 鸟哥的私房菜读书笔记2---路径与常用命令
- 设计模式之Iterator模式(2)
- SQLPlus 启动与关闭Oracle数据库
- Github项目中使用率最高的Java/Ruby/JS库(转)
- Poj2488 A Knight's Journey
- 在csdn上的第一篇博客