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

.NET 6下使用SIPSorcery对接VoIP.ms时主叫ID无法正常传递

排查SIPSorcery传递自定义Caller ID失败的问题

检查SIPSorcery的Caller ID设置细节

  • 确认代码中是否同时设置了CallerName和CallerNumber:SIPSorcery发起呼叫时,需同时指定这两个字段,仅设置其一可能导致VoIP.ms无法识别。示例设置参考:
    var callDescriptor = new CallDescriptor(
        destination: "目标号码",
        callerId: "自定义主叫号码",
        callerName: "自定义主叫名称",
        fromHeader: "自定义主叫号码",
        // 其他必要参数
    );
    
  • 验证From头格式是否符合SIP规范:From头需遵循"显示名称"<sip:主叫号码@你的SIP域名>格式,若SIPSorcery未自动生成正确格式,可手动构造:
    callDescriptor.FromHeader = $"\"{自定义名称}\"<sip:{自定义号码}@{sipAccount.SIPDomain}>";
    

核对VoIP.ms的补充配置

  • 确认自定义Caller ID已添加到VoIP.ms账户的允许主叫号码列表:即便开启了自行传递选项,VoIP.ms仍会验证号码是否在白名单内,未添加的号码会被替换或屏蔽。
  • 检查VoIP.ms的SIP中继设置:部分套餐需在中继详情页单独开启**“允许任意主叫ID”**选项,仅全局设置可能不生效。

分析Serilog日志的关键信息

  • 查看INVITE请求中的From和P-Asserted-Identity头:若这两个头未携带自定义号码,说明SIPSorcery未正确生成请求;若已携带但VoIP.ms后续信令中号码被修改,需排查VoIP.ms端的验证规则。
  • 检查是否存在VoIP.ms返回的错误码(如403 Forbidden):这类错误通常意味着主叫号码未被授权,需回到账户配置核对。

检查SIPSorcery全局配置

  • 确认SIPSorcery的SIP账户已开启**“允许自定义主叫ID”**:部分版本的SIPSorcery在账户设置中有相关开关,需确保未被禁用。
  • 排查代码逻辑是否覆盖了Caller ID设置:后续的呼叫拦截器或事件处理中,可能存在修改已设置主叫信息的逻辑。

内容的提问来源于stack exchange,提问作者LeanTyl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:23:13