pjsip中如何修改current_acc?

How current_acc is modified in pjsip?

当我查看 iOS 使用 pjsip 的应用程序时,我找到了它。 reg_acc_id 定义为 -1。 pjsua_acc_id reg_acc_id = -1; 而这个reg_acc_id是用来注册用户的。 pjsua_acc_add(&acc_cfg, PJ_TRUE, &reg_acc_id);

// To Check registration is successful or not
if (status != PJ_SUCCESS) {
      pjsua_perror(THIS_FILE, "Error adding new account", status);
  }

  printf("\nREGISTRATION ACCOUNT ID IS :::: %d\n",reg_acc_id);
  pjsua_acc_set_default(reg_acc_id);

REGISTRATION ACCOUNT ID IS :::: %d\n",reg_acc_id 这一行打印“2”……我想知道如何?注册账号默认是怎么递增的?执行什么后台进程?请任何人提前澄清我的doubts.Thanks。

正如文档所说 (link),pjsua_acc_add 的第三个参数是 "Pointer to receive account ID of the new account." 所以在调用 [=11] 之前你在 reg_acc_id 中有什么并不重要=].你只是对这个方法说"place ID of created account in this variable"。所以我想,在您的情况下,值 -1 表示 "account is not registered yet".

编辑:

也许在你调用pjsua_acc_add的那一刻,有一些其他的账户在之前被初始化了,例如。一些本地帐户?将 PJ 日志级别至少设置为 4(通过 pjsua_logging_config 传递给 pjsua_init 的结构,或其他方式 ())并寻找这样的行:

15:23:50.368    pjsua_acc.c  Adding account: id=<sip:192.168.1.106:51866>
15:23:50.368    pjsua_acc.c  .Account <sip:192.168.1.106:51866> added with id 0
15:23:50.368    pjsua_acc.c  Adding account: id=sip:SOMEONE@SOMEHOST
15:23:50.368    pjsua_acc.c  .Account sip:SOMEONE@SOMEHOST added with id 1

如您在本例中所见,创建了两个 ID 从 0 开始的帐户。