免费注册 查看新帖 |

Chinaunix

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

sip发送问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-09 14:22 |只看该作者 |倒序浏览
我正在编写一个远程收发sip的服务器端程序,遇到了一个问题求助大家


我发送的消息体是中的部分头域为
SUBSCRIBE sip:vimicro@61.178.154.202:1577 SIP/2.0
To: sip:vimicro@www.aip.com
这时客户端可以接收到消息,但是返回错误代码

SIP/2.0 489
To: sip:vimicro@www.aip.com
Content-Length: 0
CSeq: 1 SUBSCRIBE
Call-ID: [email=wlss-f465ef20-698a59bf799cc84b955f6530789823e1@10.1.7.189]wlss-f465ef20-698a59bf799cc84b955f6530789823e1@10.1.7.189[/email]
Event: CONTROL
From: <sip:AIP@www.aip.com>;tag=9d4e0a4e

原以为是因为客户端不识别服务端发送的事件造成的,但是经过检查发现是用户名vimicro不能识别该ip地址“61.178.154.202:1577 ”代表的这个域造成的错误
修改程序,使消息体改变为
SUBSCRIBE sip:vimicro@www.aip.com SIP/2.0
To: sip:vimicro@www.aip.com

这时客户端无法收到消息

经过分析认为修改了消息头服务端不能找到相应的实际地址。

在这请教一下如何保持协议中的头域为
SUBSCRIBE sip:vimicro@www.aip.com SIP/2.0
To: sip:vimicro@www.aip.com
使用sip servlet发送SUBSCRIBE 消息能找到真实的地址呢
源程序
SipServletRequest req = null;
String realAddress = RegisterService.getRegisterService().getConnection(this.getAgentAddress()).getRealAddress();
   req = factoryry .createRequest(appSession, "SUBSCRIBE",FROM_ADDRESS,this.getAgentAddress());
   req.setContent(contentToXML(), "text/plain");
   req.setHeader("Event", "CONTROL");
   req.setExpires(3);
req。send();

应该如何改动使它能在消息体为
SUBSCRIBE sip:vimicro@www.aip.com SIP/2.0
To: sip:vimicro@www.aip.com
的情况下发送到真实地址上呢

论坛徽章:
0
2 [报告]
发表于 2007-10-25 10:04 |只看该作者

ok

怎么没人解答呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP