2013-11-21 77 views
5

播放音頻文件,因此,使用語法像使用SIPP

../sipp -sn uac SERVER_IP -s DESTINATION_NUMBER -ap AUTH_PASSWORD -aa -m 1 -l 1 -d 10000 

我能夠發起一個SIP呼叫。我想實現的是,在被叫方接聽電話之後,播放一個.wav文件並在文件播放結束後終止通話。

我想使用命令行參數來實現這一點。有人曾經做過嗎?

回答

2

SIPp支持通過exec play_pcap_audio指令send a stream of pre-recorded RTP packets的能力。 (請參閱內置的uac_pcap場景作爲您場景的模型。)要發送的數據包存儲在PCAP格式的文件中。例如,數據包可以是測試呼叫的extracted from a Wireshark capture

$ sipp -sf custom_with_pcap_audio.xml SERVER_IP -s DESTINATION_NUMBER -ap AUTH_PASSWORD -aa -m 1 -l 1 -d 10000 

要創建custom_with_pcap_audio.xml,從這裏開始:

$ sipp -sd uac_pcap > custom_with_pcap_audio.xml 

然後編輯場景,請參閱您的PCAP文件(通過先前連接的一種技術獲得)。您還需要使延遲適合您的pcap錄音長度(而不是示例中給出的10000)。

+0

感謝您的回覆,但我沒有在尋找指向手冊的鏈接。你可以假設我已經完成了這些。 –

+0

要準確回答你的問題:是的,你確實可以通過命令行參數來實現這一點,並且人們之前已經做到了這一點。爲了擴大該答案的用處,它還需要創建一個自定義場景文件和一個pcap文件,如答案中所述。我將添加示例命令行到答案。 – yotommy

+0

感謝您的回答。播放wav或raw pcm文件可能比創建更復雜的pcap文件有可能嗎? –

9

最新的SIPp版本(3.4)現在支持從正確編碼的WAV文件直接進行RTP流式傳輸。

你要創建一個自定義場景文件(使用-sd uac選項傾倒了樣品UAC方案爲起點),並添加<action><exec rtp_stream="file.wav" /></action><recv response="200"></recv> XML塊內,來觸發WAV文件通過RTP播放當收到200 OK時。

http://sipp.sourceforge.net/doc/reference.html#Media%2FRTP+commands有更多關於設置的細節(如循環或非PCMA有效載荷類型)。

(我是SIPp的當前維護者。)

+1

從音頻樣本生成正確編碼的WAV對我來說不是自我解釋。我花了很多時間,直到我發現如何使用gstreamer重新編碼和轉換它們。 gst-launch filesrc location = piano1.wav \ ! wavparse \ ! audioconvert \ ! audioresample \ ! alawenc \ ! audio/x-alaw,rate = 8000,channels = 1 \ ! wavenc \ ! filesink位置= piano2.wav 希望這可以節省一些人發現的時間 –

+0

@JosiahDeWitt。我試過你的建議沒有運氣。我總是得到一個混亂的音頻。你可以請檢查這個問題http://stackoverflow.com/questions/39332306/how-to-encode-wav-to-play-with-sipp? – douglaslps