SIPp的参数及命令示例

news/2025/2/11 16:20:35/

以下是SIPp参数的分类表格整理,方便快速查阅和使用:


SIPp 参数分类表格

分类参数描述默认值示例
基本参数-sc指定XML场景文件(客户端模式)-sc uac.xml
-sd指定XML场景文件(服务器端模式)-sd uas.xml
-i本地IP地址自动选择-i 192.168.1.100
-p本地端口号自动选择-p 5060
-s远端用户名或号码(用于From头域)-s 1000
性能相关-r每秒启动的呼叫数(速率)1-r 10(10次/秒)
-rp速率周期(单位:毫秒,控制速率精度)1000(1秒)-rp 500(每0.5秒调整速率)
-l最大并发调用数(并行呼叫数)无限制-l 100(最多100路并发)
-d测试持续时间(单位:毫秒)无限运行-d 60000(运行1分钟)
-m最大呼叫次数(达到次数后停止)无限-m 1000(执行1000次呼叫)
场景控制-sf指定自定义的XML场景文件-sf custom_scenario.xml
-inf从CSV文件导入动态变量(如号码、参数)-inf data.csv
-key定义场景中的动态变量(通过命令行)-key username=test
传输协议-t传输协议模式(t1=TCP,u1=UDP,tls=TLS,sctp=SCTP)UDP-t t1(使用TCP)
-transport指定传输协议(与-t等效)-transport tcp
日志与调试-trace_msg打印完整SIP消息到日志关闭-trace_msg
-trace_err打印错误消息到日志关闭-trace_err
-trace_shortmsg打印简化的SIP消息(仅摘要)关闭-trace_shortmsg
-trace_screen在屏幕显示统计信息和简要日志开启-trace_screen off(关闭)
高级配置-3pcc启用第三方呼叫控制模式(需指定模式参数,如-3pcc 192.168.1.101:5060关闭-3pcc role:A-B
-aa启用自动应答模式(适用于UAS场景)关闭-aa
-rate_cycle速率调整周期(单位:毫秒,与-rp等效)1000-rate_cycle 200
-max_socket最大Socket连接数(限制资源占用)系统默认-max_socket 500
-recv_timeout接收消息超时时间(单位:毫秒)5000-recv_timeout 3000
-send_timeout发送消息超时时间(单位:毫秒)5000-send_timeout 3000

使用示例

# 客户端模式,UDP协议,每秒10次呼叫,最大并发100路,运行1分钟
sipp -sf uac.xml -i 192.168.1.100 -p 5060 -s 1000 -r 10 -l 100 -d 60000# 服务端模式,TCP协议,启用详细日志
sipp -sd uas.xml -t t1 -trace_msg -trace_err

注意事项

  1. 参数大小写敏感:例如 -t t1-T 可能代表不同含义。
  2. 默认行为:未指定场景文件时,SIPp会使用内置的默认UAC/UAS场景。
  3. 性能限制-l-r 需根据硬件和网络调整,避免资源耗尽。

建议结合官方文档(sipp -h 或 SIPp Manual)确认参数细节及版本兼容性。

以下是 uac.xml(客户端场景)和 uas.xml(服务器端场景)的示例文件内容。这些文件是 SIPp 测试工具中常用的基本场景文件,用于模拟 SIP 客户端(UAC)和 SIP 服务器(UAS)的行为。


1. uac.xml(客户端场景)

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="Basic UAC"><!-- 发送 INVITE 请求 --><send retrans="500"><![CDATA[INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>Call-ID: [call_id]CSeq: 1 INVITEContact: sip:sipp@[local_ip]:[local_port]Max-Forwards: 70Subject: Performance TestContent-Type: application/sdpContent-Length: [len]v=0o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]s=-c=IN IP[media_ip_type] [media_ip]t=0 0m=audio [media_port] RTP/AVP 0a=rtpmap:0 PCMU/8000]]></send><!-- 等待 100 Trying 响应 --><recv response="100" optional="true" /><!-- 等待 180 Ringing 响应 --><recv response="180" optional="true" /><!-- 等待 200 OK 响应 --><recv response="200" /><!-- 发送 ACK 请求 --><send><![CDATA[ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>;tag=[peer_tag]Call-ID: [call_id]CSeq: 1 ACKMax-Forwards: 70Content-Length: 0]]></send><!-- 等待 1 秒 --><pause milliseconds="1000" /><!-- 发送 BYE 请求 --><send retrans="500"><![CDATA[BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]To: sut <sip:[service]@[remote_ip]:[remote_port]>;tag=[peer_tag]Call-ID: [call_id]CSeq: 2 BYEMax-Forwards: 70Content-Length: 0]]></send><!-- 等待 200 OK 响应 --><recv response="200" /><!-- 场景结束 -->
</scenario>

2. uas.xml(服务器端场景)

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="Basic UAS"><!-- 等待 INVITE 请求 --><recv request="INVITE" /><!-- 发送 100 Trying 响应 --><send><![CDATA[SIP/2.0 100 Trying[last_Via:][last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:]Contact: <sip:[local_ip]:[local_port];transport=[transport]>Content-Length: 0]]></send><!-- 发送 180 Ringing 响应 --><send><![CDATA[SIP/2.0 180 Ringing[last_Via:][last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:]Contact: <sip:[local_ip]:[local_port];transport=[transport]>Content-Length: 0]]></send><!-- 发送 200 OK 响应 --><send><![CDATA[SIP/2.0 200 OK[last_Via:][last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:]Contact: <sip:[local_ip]:[local_port];transport=[transport]>Content-Type: application/sdpContent-Length: [len]v=0o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]s=-c=IN IP[media_ip_type] [media_ip]t=0 0m=audio [media_port] RTP/AVP 0a=rtpmap:0 PCMU/8000]]></send><!-- 等待 ACK 请求 --><recv request="ACK" /><!-- 等待 BYE 请求 --><recv request="BYE" /><!-- 发送 200 OK 响应 --><send><![CDATA[SIP/2.0 200 OK[last_Via:][last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:]Contact: <sip:[local_ip]:[local_port];transport=[transport]>Content-Length: 0]]></send><!-- 场景结束 -->
</scenario>

说明

  1. uac.xml:模拟 SIP 客户端行为,发送 INVITE 请求,等待响应,然后发送 ACKBYE
  2. uas.xml:模拟 SIP 服务器行为,接收 INVITE,发送响应,然后处理 ACKBYE
  3. 动态变量[remote_ip][local_ip][call_id] 等是 SIPp 的动态变量,运行时会被替换为实际值。
  4. SDP 部分:SIP 消息中的 SDP 部分用于协商媒体流(如 RTP)。

运行示例

  • 启动 UAS(服务器端):
    sipp -sf uas.xml -i 192.168.1.100 -p 5060
    
  • 启动 UAC(客户端):
    sipp -sf uac.xml -i 192.168.1.101 -p 5061 192.168.1.100:5060
    

如果需要更复杂的场景,可以修改 XML 文件或使用 SIPp 的高级功能(如动态变量、条件分支等)。


http://www.ppmy.cn/news/1571193.html

相关文章

安卓使用JExcelApi读取Excel文件

要在安卓应用中使用JExcelApi读取Excel文件&#xff0c;你需要先确保你的项目中已经添加了JExcelApi的依赖。由于安卓项目的构建方式多样&#xff0c;这里以使用Gradle为例来介绍如何在安卓应用中集成和使用JExcelAPI。 ### 步骤1: 添加依赖 首先&#xff0c;在你的build.gra…

算法设计-二分查找(C++)

一、简述 二分查找是一种在有序数组中查找特定元素的高效算法&#xff0c;其时间复杂度为 O(log n)。 二、详细代码 #include<iostream> #include<cmath> using namespace std;int BinarySearch(int arr[], int x, int size ) {int l 0;int r size-1;int m 0…

DeepSeek 关联 Word 使用教程:解锁办公新效率

在当今数字化办公时代&#xff0c;将强大的人工智能模型与常用办公软件相结合&#xff0c;能显著提升工作效率。DeepSeek 作为一款先进的人工智能工具&#xff0c;若能与广泛使用的办公软件 Word 实现关联&#xff0c;可在文档撰写、编辑、内容优化等诸多方面为用户带来极大便利…

NIO三大组件

文章目录 概述Channel & BufferSelector服务器设计历史演化多线程版设计线程池版设计selector 版设计 概述 NIO的意思是 non-blocking io 非阻塞 IO 。NIO中存在3大组件&#xff1a;Channel 、 Buffer 、Selector Channel & Buffer channel &#xff08;中文 管道的…

jmeter 性能测试Linux 常用的安装

把软件安装包全部都放在/data/soft目录下 一、 Java 环境安装 1. 把JDK的安装包上传到/data/soft/目录下 2. 解压jdk安装包,重命名jdk 3. 配置环境变量 JAVA_HOME [root@MiWiFi-RA72-srv soft]# vim /etc/profile export JAVA_HOME=/data/soft/jdk1.8 export PATH=…

127,【3】 buuctf [NPUCTF2020]ReadlezPHP

进入靶场 吓我一跳 查看源码 点击 审计 <?php// 定义一个名为 HelloPhp 的类&#xff0c;该类可能用于执行与日期格式化相关的操作 class HelloPhp {// 定义一个公共属性 $a&#xff0c;用于存储日期格式化的模板public $a;// 定义一个公共属性 $b&#xff0c;用于存储…

简述C#多线程

目录 一、Thread 类 1、核心功能 2、使用场景 3、示例代码 4、注意事项 二、ThreadPool 类 1、核心功能 2、使用场景 3、示例代码 4、注意事项 三、Task 类 1、核心功能 2、使用场景 3、示例代码 4、注意事项 四、Parallel 类 1、核心功能 2、使用场景 3、示…

【机器学习与数据挖掘实战】案例13:基于BP神经网络模型的家用热水器用户行为分析与事件识别

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支&#xff0c;专注于让计算机系统通过数据学习和改进。它利用统计和计算方法&#xff0c;使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数…