我试图通过暴露高级C / C ++ API来创建一个简单的目标C包装器。为了概念验证,我实现了
中给出的简单SIP UA示例http://svn.pjsip.org/repos/pjproject/trunk/pjsip-apps/src/samples/simple_pjsua.c
我可以创建SIP用户帐户(下面的pjsua_acc_add函数)
- (void) registerWithSipServer {
/* Register to SIP server by creating SIP account. */
pjsua_acc_config a_cfg;
pjsua_acc_id acc_id;
pj_status_t status;
pjsua_acc_config_default(&a_cfg);
a_cfg.id = pj_str("sip:" SIP_USER "@" SIP_DOMAIN);
a_cfg.reg_uri = pj_str("sip:" SIP_DOMAIN);
a_cfg.cred_count = 1;
a_cfg.cred_info[0].realm = pj_str(SIP_DOMAIN);
a_cfg.cred_info[0].scheme = pj_str("digest");
a_cfg.cred_info[0].username = pj_str(SIP_USER);
a_cfg.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD;
a_cfg.cred_info[0].data = pj_str(SIP_PASSWD);
status = pjsua_acc_add(&a_cfg, PJ_TRUE, &acc_id);
if (status != PJ_SUCCESS) {
NSLog(@"Failed to start PJSUA");
}
}
但是当我尝试添加它时,我得到一个断言
11:59:07.083端点..请求消息REGISTER / cseq = 1665 (tdta0xbb15200)创建。断言失败:(mod_stateful_util.id!= -1),函数pjsip_endpt_send_request,file ../src/pjsip/sip_util_statefull.c,第99行。
跟踪sip_util_statefull.c中的下行99,我们得到函数
PJ_ASSERT_RETURN(mod_stateful_util.id != -1, PJ_EINVALIDOP);
我试图弄清楚为什么会失败,但到目前为止还没有解决。有人试过这个吗?