使用3G来电的iPhone上的Pjsip在UDP时没有音频

时间:2012-07-31 14:01:30

标签: iphone ios sip 3g pjsip

下载,编译和安装pjsip 2.0版(从pjsip.org)到我的iPhone项目后,我遇到了以下问题:

问题是当我在3G上使用UDP时。

虽然iPhone设备在3G上 - 在来电时,我听不到对方的声音,但是对方可以听到我的声音。但是,在3G的拨出电话中,一切正常细

当手机处于Wi-Fi状态时,一切都很好,传入,传出,双方都听得很清楚。

此外,TCP适用于所有场景,包括3G和Wi-Fi。

尝试实施此处找到的解决方案:http://trac.pjsip.org/repos/wiki/audio-problem-local-no-audio

但是无济于事,在这一个上刮了一会儿......

2 个答案:

答案 0 :(得分:0)

这很可能与sip端点侧的设置有关,主要原因是NAT。

我建议您使用STUNTURNICE设置两个sip端点。您可以使用STUN和ICE解决大多数NAT问题,但如果没有TURN服务器,您将无法解决所有网络问题。

如果两个端点都不支持STUN,TURN和ICE(例如硬件SIP设备),那么您通常需要设置B2BUA(作为媒体网关)或使用某种类型的媒体网关sip代理服务器支持。

至于您的特定设置无法正常工作的原因,它需要pjsip日志来了解正在发生的事情以及有关两个sip端点的网络环境的更多信息。

答案 1 :(得分:0)

你应该试试这个。在startPjsipAndRegisterOnServer方法中添加UDP传输。

{
        // Init transport config structure
        pjsua_transport_config cfg;
        pjsua_transport_config_default(&cfg);
        cfg.port = 5080;
        status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL);
        if (status != PJ_SUCCESS) error_exit("Error creating transport", status);
    }