Pjsip 如何在启动竞争条件下避免pjsua断言失败?

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

我正在使用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 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模块未运行,在创建帐户之前不可能有邀请到达