尝试与PJSIP登记错误:PJSIP_EUNSUPTRANSPORT(Error while try

2019-09-02 11:48发布

我正在开发基于Android上的PJSIP SIP客户端(我使用的csipsimple代码作为参考现在)。

当我尝试注册我得到以下错误的帐户:

无法生成登记合适的Contact首部:不支持的传输(PJSIP_EUNSUPTRANSPORT)

我的代码几乎是一样这里的sipServer字符串是注册商的IP地址“192.168 ......”

我也试图不指定一个像下面的代码的运输方法:

        int[] accId = new int[1];

        accId[0] = 1;

        pjsua_acc_config cfg = new pjsua_acc_config();
        pjsua.acc_config_default(cfg);
        csipsimple_acc_config css_cfg = new csipsimple_acc_config();
        pjsua.csipsimple_acc_config_default(css_cfg);
        cfg.setPriority(10);
        cfg.setId(pjsua.pj_str_copy("sip:" + sipUser + "@" + sipServer));
        cfg.setReg_uri(pjsua.pj_str_copy("sip:" + sipServer)); 
        cfg.setReg_timeout(60);
        cfg.setCred_count(1);

        cfg.setPublish_enabled(0);
        cfg.setReg_delay_before_refresh(-1);

        cfg.setUse_timer(pjsua_sip_timer_use.PJSUA_SIP_TIMER_OPTIONAL);
        pjsua.csipsimple_set_acc_user_data(cfg, css_cfg);
        status = pjsua.acc_add(cfg, pjsuaConstants.PJ_FALSE, accId);

错误是:

E / libpjsip(20934):pjsua_acc.c ..Unable以生成用于登记合适的Contact首部:不支持的传输(PJSIP_EUNSUPTRANSPORT)[状态= 171060]

当然,在这之后没有对Wireshark的无痕:的lib发送任何数据之前放弃。

谢谢

Answer 1:

我不得不添加以下代码:

    int[] tId = new int[1];
    int status;
    pjsua.transport_config_default(cfgTrasport);
    cfgTrasport.setPort(5060);
    status = pjsua.transport_create(pjsip_transport_type_e.PJSIP_TRANSPORT_UDP, cfgTrasport, tId);
    if (status != pjsuaConstants.PJ_SUCCESS) {
        Log.e("pjsua.transport_create returned status="+status);
    }


文章来源: Error while trying registering with pjsip: PJSIP_EUNSUPTRANSPORT