3. 使用Sipp
Sipp 的本质是可以条件反应,发送各种包.
如果拆开一个Sipp 的xml 场景文件就可以了解其实是一个自动的脚本可以发送sip消息.
Csv文件可以使用预制好的号码变量,减轻工作量.
Reg:
./sipp –sf reg.xml –m 1 –i 172.16.44.88–p 5062 –inf reg2.csv 172.16.44.110 –trace_err
Uac:
./sipp –sf branchc.xml –m 10 –l 10 –i172.16.44.88 –p 5063 –inf call.csv 172.16.44.110 –trace_err
Uas:
./sipp –sf branchs.xml –i 172.16.44.88–p 5062 –inf reg2.csv 172.16.44.110 –aa –trace_err
对于asterisk来说,peer 方式才是需要注册的,为了保证到asterisk的呼叫可以找到该peer,而user方式主要是用来呼出,验证方式是接收到invite之后再回407,带账号密码再invite。
所以我们一般给asterisk 的分机使用friend方式添加,主叫就不需要reg这个环节,UAC的csv内容一般为:
SEQUENTIAL #顺序模式,还有一种随机为 RANDOM
444;555;[authentication username=444 password=aaa]
# 第一个为主叫号码,第二个为被叫号码,第三个为验证的账号与密码
445;556;[authentication username=445 password=aaa]
446;557;[authentication username=446 password=aaa]
而不管是在ONDU还是在Asterisk,被叫都是需要注册到服务器上,告知服务器UA的地址,才可以让呼叫到达。但是UAS 是一个接收的脚本,REG是一个发送的脚本,一个端口是不能一次跑两个脚本的
虽然可以把REG写进UAS中,但是如果一个通话时间过长还是可能引起问题,还要考虑。
所以被叫需要先使用脚本REG注册到Server,再开启UAS.Csv文件中不同的地方就在于没有被叫号码.
SEQUENTIAL #顺序模式,还有一种随机为 RANDOM
555;[authentication username=555 password=aaa]
# 只是没有被叫号码,其他是一样的.
556;[authentication username=556 password=aaa]
557;[authentication username=557 password=aaa]
还有一些要注意的地方:
1. 标准的脚本就是一次简单的呼叫,没有验证,验证需要用脚本branchc/branchs
2. Asterisk中sip.conf有一个配置, canreinvite = yes 是默认,代表主被叫会直接重定向语音RTP流,需要在账号或者全局中设置成canreinvite=no,保证语音流正常