Browsed by
标签:sipp

在ubuntu环境中运行SIPp

在ubuntu环境中运行SIPp

SIPp是一个非常好的SIP性能测试工具,我们一直用它,:-) 不过一直是在windows环境中使用这个软件。

而最近忙于将已有系统迁移到Linux环境,因此就有必要研究一下linux环境下的SIPp,我们以ubuntu环境为主。在ubuntu环境中安装、运行SIPp基本是非常简单的,因为ubuntu的软件源中已经加入了SIPp,不过运行时有些地方需要注意。

下面我们逐一进行介绍:

step 1: 安装SIPp

sudo apt-get install sip-tester

step 2: 运行SIPp

命令与windows环境的SIPp一样,需要注意的是Ubuntu/Kubuntu的网络环境中,缺省会安装一个循环网卡,如果运行SIPp时不指定本地地址,SIPp很可能会以该Loopback的地址填写SIP消息中的各项参数,导致大量呼损。因此我们只需注意以-i指定本地地址,以-p指定本地端口即可。下面是两个示例:

运行SIPp接收端程序:sipp -sn uas -i 192.168.1.10 -p 5060

运行SIPp发起端程序:sipp 192.168.1.20:5060 -sn uac -i 192.168.1.10 -p 5061 -r 3 -rp 1000 -m 30000

SIPp错误: Error opening terminal: cygwin

SIPp错误: Error opening terminal: cygwin

在运行SIPp进行测试时,经常有人会问到:“为什么我运行sipp会出现下面这个错误提示呢?”

Error opening terminal: cygwin

这个错误是说SIPp无法找到运行时必要的terminal信息,这有可能是由以下几方面的因素导致的:

(1)计算机上没有安装cygwin。cygwin是必须要有的。

(2)直接在command命令行窗口运行sipp。这个是最常见的错误。大家可能觉得把cygwin的bin目录以及sipp的目录加入到path路径就可以直接运行sipp了。直接运行时,还是没有指定cygwin的terminal信息,同样会出错。

那么该如何运行SIPp呢?

请注意SIPp安装后,在“start”程序组中建立了快捷方式“start sipp”,我们应点击这个快捷方式来运行SIPp。这个快捷方式,实际上是指向SIPp安装目录下的批处理文件:startterm.bat。打开这个批处理文件,我们可以很清楚地看到,首先进行了terminal信息的设置,然后进行了必要的mount操作,最后才能正常运行SIPp。

SIPp简单使用手册

SIPp简单使用手册

Windows下应用SIPp非常简单, 直接下载SIPp的安装文件安装即可。

需要注意的是,不要直接从cmd窗口启动SIPp,而是 点击SIPp的快捷方式“start sipp”,这样,它会将SIPp的安装目录加入路径中。或者,可以将sipp的安装目录加入系统的PATH路径,然后也可以直接在cmd窗口启动 SIPp。

sipp 192.168.1.100:5060 -sf caller_basic.xml -p 5062 -m 1 -r 1 -rp 2000 -d 2000

-sf     加载外部的xml定义文件
-inf    从外部csv文件导入数据信息
-p      指定本地端口。 如果不指定的话,系统使用一个随机的空闲端口;
-m  呼叫次数
-d  每个呼叫的保持时间(毫秒)

其他常用配置参数:

-r -rp Specify the rate period for the call rate.
Example: -r 7 -rp 2000 ==> 7 calls every 2 seconds.

实际上SIPp内置了缺省的UAS和UAC,因此,我们可以不需要定制xml脚本,直接用下面的命令进行测试:

启动SIPp做呼出:sipp 192.168.1.100:5060 -sn uac -p 5062 -r 1 -rp 2000 -d 2000

启动SIPp接受呼叫:sipp 192.168.1.100:5060 -sn uas -p 5063

应用在Fedora系统
下载sipp的源代码在Fedora 9下编译时,会有编译错误“INT_MAX未定义”。 解决方法:
修改sipp.hpp文件,增加以下宏定义即可:

#ifndef INT_MAX
#define INT_MAX 0xFFFFFFFF
#endif

直接使用命令make即可进行编译,在当前目录下产生sipp可执行文件。