环境:CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
sipp版本:3.6.1
sipp是一款VoIP测试工具,日常开发过程中会使用到该软件,但其自身携带的pcap文件夹里面的rtp数据包太小,rtp长时间测试的场景会出现媒体异常的情况,需要制作长时间pcap文件以满足测试,这里记录下使用sipp作为uac和uas对接freeswitch重放长时间rtp数据测试的过程。
github地址:https://github.com/SIPp/sipp
targz文件下载地址:https://github.com/SIPp/sipp/releases
文档地址:https://sipp.readthedocs.io/en/v3.6.1/
参数简单说明:
-sn 使用内置的场景,默认使用uac,即标准SipStone UAC
-sd 导出内置场景
-sf 使用指定场景配置文件
-i 指定本地IP
-p 指定本地端口,默认随机端口
-l 限制并行呼叫数,默认值:3 * call_duration (s) * rate
-m 在呼叫次数达到后退出
-r 场景执行速度,默认1秒10次
-r 10 -rp 5s 则限定为每5秒10 calls
-rp (Rate Period,默认毫秒数)
1)安装依赖项
需要安装sctp库和libpcap库:
yum install lksctp-tools-devel.x86_64 libpcap-devel -y
2)配置cmake3
添加cmake3的软连接(cmake3二进制文件可从文末资源里面获取);
修改build.sh,使用cmake3进行构建:
编译:
./build.sh --full
编译好的文件如下:
这里使用freeswitch的moh声音制作pcap文件,具体如下。
1)编写拨号方案:
<extension name="moh_test"> <condition field="destination_number" expression="^6001$"> <action application="answer"/> <action application="playback" data="local_stream://moh"/> </condition> </extension>
2)启动tcpdump抓包
tcpdump -i enp0s3 udp -w g711a_moh.pcap
3)rtp数据导出
选择 “电话-》RTP流”
在弹出的对话框中选择需要导出的rtp流,点击“Prepare Filter”按钮:
选择导出特定分组:
导出过滤后的rtp数据:
上述为导出流程,具体pcap文件为时长1小时的g711a格式rtp包,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230523 获取。
FreeSWITCH机器:192.168.137.32
sipp机器:192.168.137.31
1)生成场景文件
在sipp机器执行如下操作:
./sipp -sd uac_pcap >> uac_pcap.xml
2)修改xml文件
替换pcap部分;
修改等待时长为3600秒;
3)编写拨号方案
在FreeSWITCH上编辑 conf/dialplan/public.xml 文件,添加如下内容:
<extension name="test1111"> <condition field="destination_number" expression="^(654321)$"> <action application="bridge" data="user/1000"/> </condition> </extension>
4)呼叫测试
在sipp机器上执行呼叫:
./sipp 192.168.137.32:5080 -i 192.168.137.31 -p 55050 -sf uac_pcap.xml -m 1 -s 654321
呼叫效果:
usc呼叫效果视频:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023052301 获取。
1)生成场景文件
在sipp机器执行如下操作:
./sipp -sd uas >> uas_pcap.xml
修改sdp里面的编码为PCMA:
移除option标签,并添加pcap文件:
2)启动uas
在sipp机器执行如下命令:
./sipp -i 192.168.137.31 -p 55080 -sf uas_pcap.xml
3)执行外呼
在FreeSWITCH机器执行如下命令:
originate {tag=test}sofia/external/123456@192.168.137.31:55080 &bridge(user/1000)
运行效果如下:
uas呼叫效果视频:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023052302 获取。
本文涉及源码及二进制文件,可以从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230523 获取。