我已经开发了一个VOIP应用程序,它使用PJSip通过SIP通道进行通信。我想要做的是创建一个HTTP隧道,以便系统即使在VOIP被阻止的区域也能工作。使用PJSip实现这一点的方法是什么?如果有一些外部方法,那么如何将其与PJSip合并?
发布于 2014-03-09 13:24:11
没有简单的方法可以做到这一点。您必须用pjsip编写另一个传输协议,或者修改当前的传输协议以支持http隧道上的tcp/udp。此外,还有如何通过HTTP“隧道”传输流量。您可能必须确保您使用的HTTP服务器也支持HTTP隧道。
这可能会让您获得SIP信令,但您可能会遇到RTP媒体流量的问题。
您最好在pjsip代码中实现TURN支持。pjsip已经支持针对RTP媒体的TURN,因此使其支持针对主要SIP信令业务的TURN将是较少的工作。
尽管这假设您可以安装TURN服务器?如果您不能安装TURN服务器,并且您的HTTP服务器不支持HTTP隧道,那么您可能就不走运了。
发布于 2016-07-13 14:16:34
权威人士通过捕获你的sip和RTP来检测你的VoIP应用程序packets.You可以调整你的pjsip并强制通过一个网关发送所有数据(目前,pjsip为sip/RTP/rtcp等打开了不同的端口)。您还必须改变每个传出分组,以便当局不能知道该分组是sip分组还是RTP分组(他们通过查看报头的结构来知道分组的类型)。您还需要实现一个隧道类型的系统,每个数据包在到达服务器之前都要经过该系统。该隧道应该具有将分组重构到其原始状态的能力。这样,您将能够将数据包发送到服务器,而不会被阻止。
https://stackoverflow.com/questions/4572533
复制相似问题