You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pjsua2的C++项目中为每个呼叫设置不同主叫ID?

为pjsua2呼叫设置独立主叫ID(DID)

要为每个呼叫单独指定不同DID作为主叫ID,不能修改全局的accountConfig(这仅在账户创建时生效,且会影响所有呼叫),正确的做法是在发起呼叫前,为当前呼叫的参数对象配置主叫信息:

具体实现步骤

在调用makeCall前,通过CallOpParam对象的callSetting.fromUri字段指定当前呼叫要使用的DID对应的SIP URI:

// 初始化呼叫参数
CallOpParam prm;

// 为当前呼叫设置自定义主叫ID(替换为你的目标DID和域名)
prm.callSetting.fromUri = "sip:你的DID号码@你的SIP中继域名";

// 发起呼叫
call->makeCall(registrar, prm);

补充说明

  • 确保你指定的DID是中继服务商允许你使用的,否则呼叫可能被拒绝。
  • 如果中继要求主叫ID同时出现在Contact头中,可以额外设置prm.callSetting.contactUri字段,格式与fromUri一致。
  • 之前修改accountConfig.idUri无效的原因:该配置是账户级别的全局设置,仅在创建account实例时生效,且所有通过该账户发起的呼叫都会默认使用这个值,无法实现单呼叫独立配置。

内容的提问来源于stack exchange,提问作者Wladi Avila H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:02:37