SIPP用来生成大量对于远程服务器的SIP呼叫,其中有在最后生成的sipp二进制可执行文件中,包含了一下几种内置的scenario,基本上可以实现大部分的测试场景。想要使用这些内部场景,只需要指定-sn选项。下面分析一下这几中内置的scenario:
1.UAC
SIPp UAC Remote |(1) INVITE | |------------------>| |(2) 100 (optional) | |<------------------| |(3) 180 (optional) | |<------------------| |(4) 200 | |<------------------| |(5) ACK | |------------------>| | | |(6) PAUSE | | | |(7) BYE | |------------------>| |(8) 200 | |<------------------|这里面用PAUSE来模拟通话。
2.UAC with MEDIA
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.UAS
Remote SIPp UAS |(1) INVITE | |------------------>| |(2) 180 | |<------------------| |(3) 200 | |<------------------| |(4) ACK | |------------------>| | | |(5) PAUSE | | | |(6) BYE | |------------------>| |(7) 200 | |<------------------|4.regexp
SIPp regexp Remote |(1) INVITE | |------------------>| |(2) 100 (optional) | |<------------------| |(3) 180 (optional) | |<------------------| |(4) 200 | |<------------------| |(5) ACK | |------------------>| | | |(6) PAUSE | | | |(7) BYE | |------------------>| |(8) 200 | |<------------------|5.branch
分为branchc 和branchs
REGISTER ----------> 200 <---------- 200 <---------- INVITE ----------> 100 <---------- 180 <---------- 403 <---------- 200 <---------- ACK ----------> [ 5000 ms] BYE ----------> 200 <----------6.out-of-call message
当UAC收到out-of-call即呼叫超时的情况时,只是简单的回复200。如果想要重写这种相应,在命令行中用-oocsf or -oocsn选项来指定新的scenario文件。
SIPp UAC Remote |(1) .* | |<------------------| |(2) 200 | |------------------>|7.3PCC
第三方呼叫控制
A Controller B |(1) INVITE no SDP | | |<------------------| | |(2) 200 offer1 | | |------------------>| | | |(3) INVITE offer1 | | |------------------>| | |(4) 200 OK answer1 | | |<------------------| | |(5) ACK | | |------------------>| |(6) ACK answer1 | | |<------------------| | |(7) RTP | | |.......................................|由Controller来控制A和B的通话。