技术笔记: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地址:


targz文件下载地址:


文档地址:


参数简单说明:


-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)编写拨号方案:


[/span>extension name="moh_test"

[/span>condition field="destination_number" expression="^6001$"

[/span>action application="answer"/>


[/span>action application="playback" data=""/>




2)启动tcpdump抓包


tcpdump -i enp0s3 udp -w g711a_moh.pcap


3)rtp数据导出


在弹出的对话框中选择需要导出的rtp流,点击“Prepare Filter”按钮:


选择导出特定分组:


导出过滤后的rtp数据:


上述为导出流程,具体pcap文件为时长1小时的g711a格式rtp包,可从如下渠道获取:


三、运行效果


FreeSWITCH机器:192.168.137.32


sipp机器:192.168.137.31


1、SIPP作为UAC发起呼叫


1)生成场景文件


在sipp机器执行如下操作:


./sipp //代码效果参考:http://www.lyjsj.net.cn/wx/art_23172.html

-sd uac_pcap ] uac_pcap.xml

2)修改xml文件


替换pcap部分;


修改等待时长为3600秒;


3)编写拨号方案


在FreeSWITCH上编辑 conf/dialplan/public.xml 文件,添加如下内容:


[/span>extension name="test1111"

[/span>condition field="destination_number" expression="^(654321)$"

[/span>action application="bridge" data="user/1000"/>




4)呼叫测试


在sipp机器上执行呼叫:


./sipp 192.168.137.32:5080 -i 192.168.137.31 -p 55050 -sf uac_pcap.xml -m 1 -s 654321


呼叫效果:


usc呼叫效果视//代码效果参考:http://www.lyjsj.net.cn/wx/art_23180.html

频:

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呼叫效果视频:


四、资源下载


本文涉及源码及二进制文件,可以从如下途径获取:


转载请注明出处,谢谢!

相关文章
|
1天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
7 0
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
|
3天前
|
存储 测试技术
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
10 0
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
|
4天前
|
存储 测试技术 Python
记一次线上安全测试中误用父类属性导致数据污染的解决方案
在线上安全测试的过程中,会使用 Nmap 进行端口扫描,为了提升端口扫描的效率,扫描策略通常是检测常用端口是否处于开放状态,并在父类中使用名为 all_open_ports 的属性来记录这些开放的端口。 在后续的测试过程中,需要检查所涉及的端口是否包含在 all_open_ports 中。如果不存在,就需要进一步对这些端口进行开放检测。如果端口的检测结果是开放的,测试将继续进行并将这些端口记录到 all_open_ports 中,以便在下次遇到相同端口时无需重复检测。 然而,由于安全测试是多线程进行的,某些情况下可以将 all_open_ports 理解为共享变量,这导致当两个不同的测试环境同
|
1天前
|
机器学习/深度学习 人工智能 监控
探索自动化测试的前沿技术与实践
在软件开发周期中,自动化测试已成为确保软件质量和效率的关键因素。本文旨在探讨自动化测试的最新技术和实践方法,通过分析当前行业内的最佳实践和面临的挑战,提供一系列针对性的策略和建议。我们将深入讨论如何有效集成自动化工具、优化测试流程、以及提升测试覆盖率和精确度。文章结合了权威的数据支持和技术分析,旨在为读者提供实用的指导和见解,帮助他们在不断变化的技术环境中保持竞争力。
8 0
|
2天前
|
SQL 数据采集 DataWorks
DataWorks操作报错合集之数据集成里面的数据调度独享资源组测试通过了,但是数据地图里无法通过,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3天前
|
SQL 存储 Java
程序技术好文:软件工程概论第一次课堂测试
程序技术好文:软件工程概论第一次课堂测试
|
3天前
|
机器人 定位技术 C++
技术笔记:ROS中测试机器人里程计信息
技术笔记:ROS中测试机器人里程计信息
|
11天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
23 3
|
4天前
|
存储 JSON 测试技术
软件测试之 接口测试 Postman使用(下)
软件测试之 接口测试 Postman使用(下)
14 2
|
4天前
|
测试技术 数据格式
软件测试之 接口测试 Postman使用(上)
软件测试之 接口测试 Postman使用(上)
13 1