如何在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
相关产品推荐
相关产品推荐

