環境: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/[email protected]:55080 &bridge(user/1000)
執行效果如下:
uas呼叫效果視訊:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023052302 獲取。
本文涉及原始碼及二進位制檔案,可以從如下途徑獲取:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 20230523 獲取。