技术笔记: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呼叫效果视频:


四、资源下载


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


转载请注明出处,谢谢!

相关文章
|
6月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
583 120
|
7月前
|
人工智能 Java 测试技术
单元测试覆盖率的自动控制技术
Jacoco是Java程序覆盖率工具,可以在pom.xml通过配置来自动控制程序的覆盖率
170 5
|
7月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
274 0
|
8月前
|
人工智能 资源调度 jenkins
精准化回归测试:大厂实践与技术落地解析
在高频迭代时代,全量回归测试成本高、效率低,常导致关键 bug 漏测。精准化测试通过代码变更影响分析,智能筛选高价值用例,显著提升测试效率与缺陷捕获率,实现降本增效。已被阿里、京东、腾讯等大厂成功落地,成为质量保障的新趋势。
|
8月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
10月前
|
人工智能 缓存 自然语言处理
别再手搓测试数据了!AE测试数据智造系统揭秘
本文介绍如何通过构建基于大语言模型的测试数据智造Agent,解决AliExpress跨境电商测试中数据构造复杂、低效的问题,推动测试效率提升与智能化转型。
别再手搓测试数据了!AE测试数据智造系统揭秘
|
10月前
|
安全 测试技术 持续交付
软考软件评测师——基于风险的测试技术
本文详细阐述了测试计划的核心要素与制定流程,涵盖测试范围界定、实施策略规划、资源配置及风险管理机制。通过风险识别方法论和评估模型,构建了完整的质量保障体系。同时,针对不同测试级别与类型提供具体配置建议,并提出技术选型原则与实施规范,确保测试活动高效有序开展,为项目成功奠定基础。内容结合实际经验,具有较强指导意义。
|
存储 数据可视化 测试技术
一个测试工程师的实战笔记:我是如何在Postman和Apipost之间做出选择的?
优秀的API测试工具应该具备: 分层设计:既有可视化操作,也开放代码层深度定制 场景感知:自动识别加密需求推荐处理方案 协议包容:不强迫开发者为了不同协议切换工具 数据主权:允许自主选择数据存储位置
409 7
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
261 11
下一篇
开通oss服务