2
回答
osip2,eXosip2是否支持TCP收发?

手中有一个网络摄像机,准备想接入到到电信全球眼平台中。电信全球眼的信令部分,是用SIP交互的,用TCP进行收发。前两天学习了一下osip2和eXosip2的使用方法,但是发现它们并不支持TCP,仅支持UDP进行发送和接收。

于是我就卡在这里了,不知道该怎么继续下去。想问下各位,osip2和eXosip2是否真的不支持TCP收发?如果是这样的话,是否还有一些开源协议栈可以供选择,关键是要支持TCP,同时最好要支持register,invite,info等等这些方法。

举报
guojianchuan
发帖于6年前 2回/1K+阅
共有2个答案 最后回答: 6年前
不知道LZ是怎么学习osip2和eXosip2的,osip2根本不包括网络部分,主要包括状态机和SIP消息的(包括SDP)封装和解析,eXosip2包括网络部分,既支持UDP又支持TCP(也支持TLS,建立在TCP之上)。这两个组合在一起是完全按照RFC3261规范的。协议栈没有好坏之分,都差不多,只是看你用到哪里了。资源比较多的除了上面这两个还有PJSIP,MJSIP。

引用来自“yuanshengweioo5”的答案

不知道LZ是怎么学习osip2和eXosip2的,osip2根本不包括网络部分,主要包括状态机和SIP消息的(包括SDP)封装和解析,eXosip2包括网络部分,既支持UDP又支持TCP(也支持TLS,建立在TCP之上)。这两个组合在一起是完全按照RFC3261规范的。协议栈没有好坏之分,都差不多,只是看你用到哪里了。资源比较多的除了上面这两个还有PJSIP,MJSIP。

对SIP协议这块平时没有多少接触(自己搞的是嵌入式其他方面的),在此之前也重来没有用过,因为这次时间紧张,所以没有详详细细的去阅读RFC,也没有过多去了解osip库的使用,只通过一些现有的教程粗略的看了一遍,知道了个大概。本来估计,以现有的时间安排,只能是一边开发,等到出了问题再调试。所以,在理解上难免会有比较大的偏差。

是这样的,我用下面这个接口,使用IPPROTO_UDP监听,发送注册报文。通过wireshark能够抓到正确的SIP报文

eXosip_listen_addr (IPPROTO_UDP, NULL, 5060, AF_INET, 0);

但是我用IPPROTO_TCP监听的时候,wireshark抓到的都不是正常的SIP报文(仅有少量的数据,而且都是乱码),我想知道,如果要是以TCP正常收发的话,除了用IPPROTO_TCP监听之外,还需要做一些什么设置或者接口调用吗?

顶部