第一章SIPp介绍
SIPp
是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。
它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把CSV统计数据转储,在多个套接字上的TCP和UDP,利用重新传输管理的多路复用。在场景定义文件中可以使用正规表达式,动态调整呼叫速率。
SIPp可以用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x网关,SIP PBX,等等,它也可以模仿上千个SIP代理呼叫你的SIP系统。
它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把CSV统计数据转储,在多个套接字上的TCP和UDP,利用重新传输管理的多路复用。在场景定义文件中可以使用正规表达式,动态调整呼叫速率。
SIPp可以用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x网关,SIP PBX,等等,它也可以模仿上千个SIP代理呼叫你的SIP系统。
关于SIPp从google上搜索到很多,可是关于SIPp的中文说明资料较少,或者很多都是不齐全的安装使用说明。
SIPp的下载地址:
http://sourceforge.net/project/showfiles.php?group_id=104305&package_id=119322
(当我已经在使用rc6的时候,rc8已经出来了,|||-.-)
SIPp的四种安装方法:
1)
没有TLS支持与密码验证支持:
a) # tar -xvf sipp-1.1rc6.tar.gz
b) # cd sipp-1.1.rc6
c) # make
Make出来的sipp文件就是一个可执行的文件,只需要搭配场景xml文件与csv文件即可进行SIP测试
2)
拥有TLS支持与密码验证支持,但是不支PCAP语音播放:
a) # tar -xvf sipp-1.1rc6.tar.gz
b) # cd sipp-1.1.rc6
c) # make ossl
这样编译出来的文件就加入了TLS至于与密码验证支持功能sipp软件了。
3)
支持PCAP Play,但是没有密码验证支持:(PCAP Play即为可以进行RTP语音,但是没有407 AUTH验证)
a) # tar -xvf sipp-1.1rc6.tar.gz
b) # cd sipp-1.1.rc6
c)
# make pcapplay
4)
支持PCAP 声音文件播放,而且支持密码验证支持:(支持407 auth验证支持)
a)
# tar -xvf sipp-1.1rc6.tar
b)
# cd sipp-1.1.rc6
c)
# make pcapplay_ossl
最新消息:使用sipp-1.1rc6后,如果采用pcap方式发包播放后,通过抓包抓不到session的消息体。多次尝试与配置文件的修改均查看不到sip的session体。后来更新到sipp-1.1rc8后,抓包就可以看到sip session体了,看来其他使用者已经发现这个bug了.
第二章SIP的几个主要呼叫流程介绍
例1:
invite呼叫后暂停,结束呼叫。
A呼叫B,Ast返回100 tring与180 ring后,这边回ACK消息,然后Pause 10秒,发送Bye消息,系统返回200 ok。
|(1) INVITE |
|---------------à |
|(2) 100 (optional)|
|<-----------------|
|(3) 180 (optional)|
|<-----------------|
|(4) 200 |
|<-----------------|
|(5) ACK |
|---------------à |
| |
|(6) PAUSE |
| |
|(7) BYE |
|----------------->|
|(8) 200 |
|<-----------------|
例2:
invite呼叫,建立连接然后RTP,并带有RFC2833的DTMF,延迟几秒后发送Bye消息,对方返回200 OK。
Scenario file: uac_pcap.xml (original XML file)
SIPp UAC Remote
|(1) INVITE |
|------------------>|
|(2) 100 (optional) |
|<------------------|
|(3) 180 (optional) |
|<------------------|
|(4) 200 |
|<------------------|
|(5) ACK |
|------------------>|
| |
|(6) RTP send (8s) |
|==================>|
| |
|(7) RFC2833 DIGIT 1|
|==================>|
| |
|(8) BYE |
|------------------>|
|(9) 200 |
|<------------------|
例3:
SIPp作为SIP 服务器进行处理。
Remote SIPp UAS
|(1) INVITE |
|----------------->|
|(2) 180 |
|<-----------------|
|(3) 200 |
|<-----------------|
|(4) ACK |
|----------------->|
| |
|(5) PAUSE |
| |
|(6) BYE |
|------------------>|
|(7) 200 |
|<--------------------|
第一章例4:
典型的SIP register成功后、然后invite到AST,AST回了100与180或者403 forbidden消息,SIPp发送ACK,延迟5000ms后,SIPp发送Bye,AST回200 OK
REGISTER ----------――>
200 <----------
200 <----------
INVITE ---------->
100 <----------
180 <----------
403 <----------
200 <----------
ACK ---------->
[ 5000 ms]
BYE ---------->
200 <------------