VoIP呼叫在不同的网络中不起作用(使用PJSIP和Kamailio服务器)

时间:2015-03-20 12:20:41

标签: android ios objective-c pjsip kamailio

我在天蓝色实例上设置了kamailio 4.2作为服务器,而对于客户端我正在使用PJSIP库来安装Android和iOS应用程序。当两个设备连接到同一网络时,语音呼叫似乎运行良好,但是,无论是设备连接到不同的网络(或当两个设备都在不同的网络中),它们都能够在SIP服务器上注册,甚至可以在两个设备之间触发和接受呼叫,但两端都没有听到音频 *我甚至设置了rtpproxy。

有人可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

请检查您在kamailio配置中提供的IP地址,使用外部IP地址而非内部IP地址。

答案 1 :(得分:0)

我也面临同样的问题。您唯一需要做的就是正确安装和配置rtpproxy。在Debian中配置的步骤如下。 1)安装RTP代理。

 sudo apt-get install rtpproxy

2)在Kamailio中,让它听取rtpproxy的unix socket,因为默认情况下kamailio需要UDP。

     vim /etc/kamailio/kamailio.cfg

而不是

 modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")

使用

 modparam("rtpproxy", "rtpproxy_sock", "unix:/var/run/rtpproxy/rtpproxy.sock")

如果NAT def如下所示,请确保在同一文件的顶部:

#!KAMAILIO
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_PRESENCE
**#!define WITH_NAT**
#!define WITH_TLS
#!define WITH_ACCDB

3)现在开始rtpproxy

sudo service rtpproxy start

4)重启Kamailio服务

sudo service kamailio start

详细解释,我用Google搜索并找到了一个博客。轻松一下吧。 RTPproxy with ka