Pjsip 如何在启动竞争条件下避免pjsua断言失败?
我正在使用PJSUA组件构建一个应用程序。有时,如果在程序启动期间收到一个传入的INVITE,我将得到断言失败Pjsip 如何在启动竞争条件下避免pjsua断言失败?,pjsip,assertion,Pjsip,Assertion,我正在使用PJSUA组件构建一个应用程序。有时,如果在程序启动期间收到一个传入的INVITE,我将得到断言失败 ../src/pjsua-lib/pjsua_acc.c:2777: pjsua_acc_find_for_incoming: Assertion `pjsua_var.acc_cnt!=0' failed. 接收到邀请时,从pjsua\u call\u on\u incoming无条件调用pjsua\u acc\u find\u for\u incoming函数,该函数从mod\u
../src/pjsua-lib/pjsua_acc.c:2777: pjsua_acc_find_for_incoming: Assertion `pjsua_var.acc_cnt!=0' failed.
接收到邀请时,从pjsua\u call\u on\u incoming
无条件调用pjsua\u acc\u find\u for\u incoming
函数,该函数从mod\u pjsua\u on\u rx\u request
调用
出现问题的原因是我正在使用
pjsua\u acc\u add\u local
,这需要一个pjsua\u transport\u id
,它来自pjsua\u transport\u create
。因此,必须先创建传输,然后才能添加帐户。如果邀请在中间时间到达,将触发此断言。结果表明,我的问题是由于在添加带有pjsua\u acc\u add\u local
的帐户之前调用pjsua\u init
和pjsua\u start
。通过切换初始化顺序,以便在pjsua\u init
之前调用pjsua\u acc\u add\u local
,可以避免此问题。由于PJSUA模块未运行,在创建帐户之前不可能有邀请到达