【问题标题】:VoIP calls doesn't work in different networks (Using PJSIP and Kamailio server)VoIP 呼叫在不同的网络中不起作用(使用 PJSIP 和 Kamailio 服务器)
【发布时间】:2015-05-23 20:28:40
【问题描述】:

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

谁能帮帮我?

提前致谢。

【问题讨论】:

  • 你能在两个网络中对 SIP 呼叫流进行 Wireshark 跟踪吗?在 SIP 中,各方与 SDP 协商音频流。如果正确,请注意 SDP 中的 IP 地址。

标签: android ios objective-c pjsip kamailio


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

     sudo apt-get install rtpproxy
    

    2) 在 Kamailio 中,让它监听 rtpproxy 的 unix 套接字,因为默认情况下 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多