sip发送问题
我正在编写一个远程收发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
的情况下发送到真实地址上呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
怎么没人解答呢