公司需要, 对Asterisk 进行一定的性能测试.
测试目标:
1. IVR 支持多少路
2. 一对一通话, 支持多少路
3. 不同编解码的性能影响.
4. 通话中,录音, 支持多少路.
测试工具: sipphttp://sipp.sourceforge.net/
辅助工具: Xlite
SIP rfc:http://www.ietf.org/rfc/rfc3261.txt
RTP for AVhttp://www.ietf.org/rfc/rfc3551.txt
环境:
CPU: xeon 5110
Asterisk1.4.7
Asterisk 基本操作:
启动: safe_asterisk, 或者asterisk -vvvc
如果是后台启动, 连接监控: astersisk -r
关闭: 在控制栏输入 stop now
Asterisk 配置:
关注两个配置文件(/etc/asterisk):
sip.conf // sip 分机号设置
extensions.conf // dail plan 设置, 控制呼入后是什么动作
sip.conf 添加2000 个分机号, 以便模拟1000 人呼叫(呼叫,应答)
[1000]
type=friend
host=dynamic
context=incoming //和extensions.conf 中对应
canreinvite=no //如果设置为yes, 双方通话信息会直接进行, 而不通过asterisk. 设置成no,表示所有交互都通过Asterisk.
[1001]
type=friend
host=dynamic
context=incoming
canreinvite=no
extensions.conf 这里列举了多种呼叫计划, 包括IVR, 拨号通话, 通话录音等.
[incoming]
;play hello world forever
exten => _XXXX,1,answer()
exten => _XXXX,2,playback(hello-world)
exten => _XXXX,3,goto(OneToOne,_XXXX,1)
;[typetest]
;exten => 1111,1,Wait(2)
;exten => 1111,2,Record(/tmp/asterisk-recording:gsm)
;exten => 1111,3,Hangup
;exten => 1112,1,Wait(2)
;exten => 1112,n,Playback(/tmp/asterisk-recording)
;exten => 1112,n,Hangup
;[typetest2]
;exten => _XXXX,1,answer()
;exten => _XXXX,2,dial(sip/${EXTEN},10,r)
;[typetest3]
;exten => 999,1,answer()
;exten => 999,2,dial(sip/${EXTEN},10,r)
;exten => 999,1,Meetme(1234,i,123456)
;[OneToOne]
;exten => _XXXX,1,answer()
;exten => _XXXX,2,mixmonitor(test${EXTEN}.wav|av(0)V(0))
;exten => _XXXX,3,dial(sip/${EXTEN},10,r)
;exten => _XXXX,4,Hangup
;exten => _XXXX,3,Record(/tmp/asterisk-recording${EXTEN}:gsm)
;[IVR]
;exten => _XXXX,1,answer()
;exten => _XXXX,2,playback(hello-world)
;exten => _XXXX,3,goto(IVR,_XXXX,2)
Sipp 基本操作:
sipp 涉及三个文档(以呼入后,就不停播放IVR 语音):
*.bat 批处理命令,方便调用, 其中 -m 参数表示
sipp -sf a16.xml -inf a16.csv -p 5062 -m 200 -i 172.16.3.199 10.0.1.4:5060 -trace_err
*.xml // 具体的操作, 核心部分, 下篇具体介绍xml 文件
*.csv // xml 里面引用的参数, 以便发起不同呼叫
SEQUENTIAL
2001;1002;
2003;1003;
2200;1200;