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

如何在Sipp场景中使用自定义生成的Call-ID发送Invite请求

SIPp外部生成Call-ID并传入场景的实现方法

问题背景

使用SIPp的基础uac.xml场景测试SIP Invite流程,需要验证100、180及200 OK响应;目标端点要求对包含Call-ID的SIP Invite消息头签名,已知ToAddress和FromAddress,需从SIPp外部生成Call-ID并传入场景。SIPp官方文档提及无法自定义生成Call-ID,但该需求为测试必需。

官方文档关于Call-ID的说明(翻译)

Call-ID

Call-ID头字段由SIPp自动生成,格式为sipp-[呼叫编号]@[本地IP]。该字段无法通过场景关键字自定义生成,因为SIPp依赖它来关联呼叫的消息流。

可行解决方案

虽然官方文档说明无法通过关键字自定义,但可以通过命令行参数+场景变量替换的方式实现外部传入Call-ID,步骤如下:

  1. 修改uac.xml场景文件
    找到Invite消息中的Call-ID头行,将默认的[call_id]替换为自定义变量(比如${MY_CALL_ID}):

    <![CDATA[
    INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
    From: <sip:[field0]@[local_ip]>;tag=[call_number]
    To: <sip:[service]@[remote_ip]>
    Call-ID: ${MY_CALL_ID}
    ...
    ]]>
    
  2. 通过命令行传入自定义Call-ID
    使用SIPp的-key参数将外部生成的Call-ID传入场景,命令示例:

    sipp -sn uac -key MY_CALL_ID "my-unique-call-id-$(uuidgen)" <远端服务器IP>
    

    注:uuidgen是生成符合SIP规范的唯一Call-ID的工具,也可以用自定义脚本生成格式合规的字符串。

  3. 验证效果
    启动测试后,SIPp会将${MY_CALL_ID}替换为命令行传入的值,生成包含自定义Call-ID的Invite消息,满足目标端点的签名需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:25:54