SIPp 使用手册中文版
黄龙舟 译
目录
一、 简介 ......................................................................................................................................... 4
二、 安装 SIPP .................................................................................................................................. 4
1. 获取 SIPp ................................................................................................................................................ 4
2. 安装 SIPp ................................................................................................................................................ 5
3. 提高文件标识符限制 ............................................................................................................................. 6
三、 使用 SIPP .................................................................................................................................. 7
1. 主要特性 ................................................................................................................................................ 7
2. 集成的脚本(场景) ............................................................................................................................. 7
2.1 示范脚本:主叫(UAC) ............................................................................................................... 8
2.2 示范脚本:带媒体的 UAC .............................................................................................................. 8
2.3 示范脚本:被叫(UAS.xml) ......................................................................................................... 9
2.4 示范脚本:正则表达式,regexp.xml ............................................................................................. 9
2.5 示范脚本:分支,branchc.xml 和 branchs.xml ............................................................................. 9
2.6 UAC Out-of-call 消息 ....................................................................................................................... 10
2.7 3PCC(第三方呼叫控制) ............................................................................................................. 10
3. 扩展的 3PCC ......................................................................................................................................... 13
4. 控制 SIPp .............................................................................................................................................. 14
5. 后台运行 SIPp....................................................................................................................................... 16
6. 创建自定义的 XML 脚本 ...................................................................................................................... 16
6.1 创建客户端(类似 UAC)脚本 .................................................................................................... 23
6.2 创建服务端(类似 UAS)脚本 ..................................................................................................... 27
6.3 动作(Actions) ............................................................................................................................ 27
6.4 变量 ................................................................................................................................................ 34
6.5 条件分支 ........................................................................................................................................ 36
6.6 SIP 认证 ........................................................................................................................................... 38
6.7 初始场景 ........................................................................................................................................ 40
7. 运行界面 .............................................................................................................................................. 40
8. 传输层模式........................................................................................................................................... 42
9. 媒体处理 .............................................................................................................................................. 44
10. 退出码 ................................................................................................................................................ 44
11. 统计 .................................................................................................................................................... 44
12. 错误处理 ............................................................................................................................................ 45
13. 在线帮助 ............................................................................................................................................ 46
四、 使用 SIPP 做性能测试 ........................................................................................................... 50
1.使用 SIPp 做性能测试的建议 ............................................................................................................. 50
2.SIPp 内部调度机制 .............................................................................................................................. 50
五、 有用的工具 ........................................................................................................................... 51
1. JEdit ................................................................................................................................................... 51
2. Wireshark/tshark .............................................................................................................................. 51
3. SIP callflow ........................................................................................................................................ 51
一、 简介
SIPp 是一个测试 SIP 协议性能的工具软件,它包含了一些基本的 SipStone 用户代理工作
流程(UAC 和 UAS),并可使用 INVITE 和 BYE 建立和释放多个呼叫。它也可以读 XML 的场景
文件,即描述任何性能测试的配置文件(可以用他来模拟现场的 SIP 信令,以重现出现的故
障;或者可以自定义 SIP 协议以测试终端对某些方面的容错或错误处理能力)。它能动态显
示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把 CSV 统
计数据转储,在多个套接字上的 TCP 和 UDP,利用重新传输管理的多路复用。在场景定义文
件中可以使用正则表达式,动态调整呼叫速率。SIPp 可以用来测试许多真实的 SIP 设备,如
SIP 代理,B2BUAs,SIP 媒体服务器,SIP/x 网关,SIP PBX,等等,它也可以模仿上千个 SIP 代
理呼叫你的 SIP 系统。另外,SIPp 还可以简单用来测试 SIP 协议。
本文档是根据 sipp v3.4 版本来编写的,早期的 sipp 版本可能不含有本文档提到的一些
特性。
下面是 SIPp 的运行界面截图:
二、 安装 SIPp
1. 获取 SIPp
SIPp 在 GNU GPU 许可下发行,满足所有发行许可。SIPp 项目本来是由 Hewlett-Packard
的工程师创建并提供给 SIP 社区的,旨在为 SIP 社区提供一些有用的东西,但现在 HP 不再
提供任何帮助和授权,sipp 下载地址为 http://sourceforge.net/projects/sipp/files/
2. 安装 SIPp
就像其他许多开源项目一样,SIPp 也同样提供两个版本:稳定版本和非稳定版本。稳定
版本会被完全地测试再发布,本文档描述的所有功能都能正常使用。非稳定版本含有一些新
功能并修正了一些新发现的 bug,可以从 SIPp SVN 下载非稳定版本。
SIPp 可安装在 Linux 和 Cygwin 上面,其他 Unix 版本可能也可以安装使用 SIPp,但在每
一个发布周期中并未被测试。不过 SIPp 运行于 Cygwin 上面的性能没有 Linux 上面好,且 SIPp
只能在运行于 windows xp 或更高 windows 版本的 Cygwin 上面运行。在 Linux 环境中,SIPp
以源代码的形式提供,在使用 SIPp 之前需要编译 SIPp,在编译之前需要如下依赖组件:
C++ 编译器
curses 或者 ncurses 库
对于需要支持 TLS 功能:需要 OpenSSL 0.9.8 以上版本
对于需要支持播放 pcap:需要 libpcap 和 libnet
对于需要支持 SCTP:需要 lksctp-tools
对于需要支持统计分布的暂停:需要开源科学计算库(Gnu Scientific Libraries)
有如下四个选项来编译 SIPp:
不包含对 TLS,SCTP 或 PCAP 的支持
# tar -xvzf sipp-xxx.tar
# cd sipp
# ./configure
# make
包含 TLS 支持
# tar -xvzf sipp-xxx.tar
# cd sipp
# ./configure --with-openssl
# make
包含 PCAP play 支持
# tar -xvzf sipp-xxx.tar
# cd sipp
# ./configure --with-pcap
# make
包含 SCTP 支持
# tar -xvzf sipp-xxx.tar
# cd sipp
# ./configure --with-sctp
# make
或者组合支持以上功能
# tar -xvzf sipp-xxx.tar
# cd sipp
# ./configure --with-sctp --with-pcap --with-openssl
# make