2013-05-10 88 views
2

我正在开发基于Android上的pjsip的SIP客户端(我现在使用csipsimple代码作为参考)。尝试使用pjsip注册时出错:PJSIP_EUNSUPTRANSPORT

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

Unable to generate suitable Contact header for registration: Unsupported transport (PJSIP_EUNSUPTRANSPORT)

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

我也试图不指定传输方法就像下面的代码:

 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 to generate suitable Contact header for registration: Unsupported transport (PJSIP_EUNSUPTRANSPORT) [status=171060]

当然,在这之后wireshark上没有任何跟踪:lib在发送任何数据之前放弃。

感谢

回答

0

我不得不添加以下代码:

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); 
    } 
相关问题