C/C++教程

sipp重放rtp数据测试FreeSWITCH

本文主要是介绍sipp重放rtp数据测试FreeSWITCH,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

环境: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、编译sipp

 1)安装依赖项

需要安装sctp库和libpcap库:

yum install lksctp-tools-devel.x86_64 libpcap-devel -y

2)配置cmake3

添加cmake3的软连接(cmake3二进制文件可从文末资源里面获取);

修改build.sh,使用cmake3进行构建:

 编译:

./build.sh --full

 编译好的文件如下:

 2、pcap文件制作

这里使用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作为UAC发起呼叫

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 获取。 

2、SIPP作为UAS接收呼叫

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 获取。

这篇关于sipp重放rtp数据测试FreeSWITCH的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!