在pjsip iphone中15秒后去电掉线

时间:2019-06-30 06:11:17

标签: ios objective-c voip pjsip ice

我正在使用Pod使用pjsip 2.7库在ios中构建SIP应用程序。用户注册成功。但是拨打电话时,它会在15秒后掉线。

我们有一个Android应用程序,可以很好地拨打和接听电话。配置android应用:将ICE enable设置为false。代理清除并设置代理“”。

尝试在初始化pjsua时将media config设置为null。 如果我设置默认配置该怎么办。 如何在ios中将ICE enble设置为false。

我们正在使用UDP传输。

我们还记录了来自diawi链接的日志,但是我只能在日志中找到的一件事是“ PlayAndRecord_WithBluetooth” .isPlayingProcessAssertion”(音频:inf); id:\ Mb \ M ^ @ \ M-&FACE87DECDF7>

// Create pjsua first
    status = pjsua_create();
    if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", status);

    // Init pjsua
    {
        // Init the config structure
        pjsua_config cfg;
        pjsua_config_default (&cfg);

        cfg.cb.on_incoming_call = &on_incoming_call;
        cfg.cb.on_call_media_state = &on_call_media_state;
        cfg.cb.on_call_state = &on_call_state;

        // Init the logging config structure
        pjsua_logging_config log_cfg;
        pjsua_logging_config_default(&log_cfg);
        log_cfg.console_level = 4;
        log_cfg.level = 4;

        // Init the pjsua
        status = pjsua_init(&cfg, &log_cfg, NULL);
        if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status);
    }

    // Add UDP transport.
    {
        // Init transport config structure
        pjsua_transport_config cfg;
        pjsua_transport_config_default(&cfg);
        cfg.port = 5080;

        // Add TCP transport.
        status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL);
        if (status != PJ_SUCCESS) error_exit("Error creating transport udp", status);
    }



    // Initialization is done, now start pjsua
    status = pjsua_start();
    if (status != PJ_SUCCESS) error_exit("Error starting pjsua", status);

    // Register the account on local sip server
    {
        pjsua_acc_config cfg;

        pjsua_acc_config_default(&cfg);


        cfg.id = pj_str((char *)"sip:exampleuser@sip.linphone.org");

        cfg.reg_uri = uri
        cfg.proxy[0] = proxy
        cfg.cred_count = 1;
        cfg.cred_info[0].scheme = pj_str((char *)"digest");
        cfg.cred_info[0].realm = pj_str((char *)"*");
        cfg.cred_info[0].username = pj_str((char *)"exampleuser");
        cfg.cred_info[0].data_type = 0;
        cfg.cred_info[0].data = pj_str((char *)"examplepasswor");

        status = pjsua_acc_add(&cfg, PJ_TRUE, &acc_id);
        if (status != PJ_SUCCESS) error_exit("Error adding account", status);

    }

当我们在印度IPV4地址中进行测试时,它工作正常,但是当我向客户提供构建服务时,他说拨出电话无效,并在15秒后挂断。和UI卡住。

我们已经测试了许多iphone和12.3.1或更高版本的ios版本拨出电话正常,但不幸的是不适用于客户端。请帮助

1 个答案:

答案 0 :(得分:1)

您正在呼叫的网络功能就是这种情况。您的客户网络可能不支持pjsip在新库中升级的某些术语。您应该尝试检查旧版本的pjsip pod。像2.5.5。

有时网络处理的字节数不超过1500。请参考此链接以获取有关如何减少传出邮件configuration optimization

的大小的了解