SIP协议 SUBSCRIBE订阅 404出错码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SIP协议 SUBSCRIBE订阅 404出错码相关的知识,希望对你有一定的参考价值。

代码如下,想完成一个订阅的demo,服务器端是公司的,注册register,message都没有问题,但是subscribe就是返回404错误,我试了很多,抓得包也感觉没问题,请慧眼看看我也许是哪里有问题,谢谢了!
eXosip_lock();
i = eXosip_subscribe_build_initial_request(&subscribe, sub_to, sub_from, NULL, "presence", 90);

snprintf (tmp, 4096,
"<?xml version=\"1.0\"?>\r\n"
"<Action>\r\n"
"<Variable>DeviceDirectory</Variable>\r\n"
"<Time>2013-01-11T16:55:12.123</Time>\r\n"
"</Action>\r\n"
);
osip_message_set_body (subscribe, tmp, strlen(tmp));

osip_message_set_content_type (subscribe, "text/xml");
i = eXosip_subscribe_send_initial_request(subscribe);

eXosip_unlock();

下面是用wireshark抓包截图

404错误的意思是没有找到匹配的用户,也就是请求URI里user部分(你包里的340200.。。。)。你需要查一下这个值你是从哪里来的,server是否有与之匹配的已经注册的用户。
此外订阅如果想要成功的话,几个sip头也必须是server能够认识的,比如订阅的事件包类型(Event header),消息体类型(content-type)。至于消息体力的内容,你这个看起来是私有协议,别人是帮不到你的。
参考技术A 大佬,help,为啥我把nonce的值md5加密再发过去,报错404啊,注册都没有成功

以上是关于SIP协议 SUBSCRIBE订阅 404出错码的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 订阅:调用 apolloClient.subscribe 时出错

mosquitto库的使用记录

MQTT 协议学习:006-订阅主题

sip协议中的notify方法是不是支持主动上报?

btcpool之stratum协议

无法订阅推送通知