所以使用类似
的语法../sipp -sn uac SERVER_IP -s DESTINATION_NUMBER -ap AUTH_PASSWORD -aa -m 1 -l 1 -d 10000
我可以发起一个SIP呼叫。我想要实现的是,在被叫方选择呼叫之后,播放.wav文件并在文件播放完毕后终止呼叫。
我想使用命令行参数实现此目的。有人曾经这样做过吗?
答案 0 :(得分:11)
最新的SIPp版本(3.4)现在支持来自正确编码的WAV文件的直接RTP流。
您需要创建自定义方案文件(使用-sd uac
选项将示例UAC方案转储为起点)并在<action><exec rtp_stream="file.wav" /></action>
XML块中添加<recv response="200"></recv>
,当收到200 OK时,触发通过RTP播放的WAV文件。
http://sipp.sourceforge.net/doc/reference.html#Media%2FRTP+commands有更多有关设置此内容的详细信息(例如循环或非PCMA有效内容类型)。
(我是SIPp的当前维护者。)
答案 1 :(得分: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)。