環境: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/[email protected]:55080 &bridge(user/1000)
運行效果如下:
uas呼叫效果視頻:
關注微信公衆號(聊聊博文,文末可掃碼)後回覆 2023052302 獲取。
四、資源下載
本文涉及源碼及二進制文件,可以從如下途徑獲取:
關注微信公衆號(聊聊博文,文末可掃碼)後回覆 20230523 獲取。