我想实现一个可以实现以下目标的简单VoIP系统;
我想知道是否有任何支持此功能的开源库?或使用开源软件可以实现这一目标?
最佳答案
我为此工作做了类似的测试。
我有
例如...说我的freeswitch是ip:120.0.0.7
我在该freeswitch上以用户5000的身份进行注册,我想致电也已注册的用户4000。
我使用 SIPP(Linux)或 SIPCLI(Windows)。
SIPP
SIPP的好处是它真正强大,可以执行许多性能测试,而不能进行任何性能测试。但是发送音频有点挑战,但这是可行的。您基本上是通过某种编解码器(g711,g729等)发送pcap录制的音频,因此您可以运行以下命令:
sudo sipp -s [the phone number/ user] [your freeswitch] -sn uac_pcap -mi [your ip] -l 1 -m 1
最后两个参数(l和m)设置负载量,默认情况下,sipp每秒发送10个 call 。你可能不想要那个。所以l说“将调用限制为#”,m说“一次只运行x个调用”。
SIPCLI
sipcli是更简单的方法(但这是仅Windows的工具。)
在sipcli中,您基本上可以发送wav文件以及文本到语音。我喜欢它。它具有一个内置的库,可以拨打该号码,您可以传递-t这样的信息:“这是对用于sip和v o IP测试的测试工具的测试。”它将在通话中即时转换为音频。您还可以建立指向已录制的WAV文件的方案...。
SIPCLI将使用类似于SIPP的命令进行连接:
sipcli [user/phone number] -d [domain or proxy] -t "This is text i want converted to speech on the phone call"
您也可以传递指向wav的链接。
sipcli也可以发送dtmf音调,或者您也可以指向wav的dtmf音调。
场景编辑器起初有点复杂,需要一点时间来适应。但是一旦掌握了制作场景文件的功能,那就很容易了。
SIPP的好处
SIPP可以捕获性能指标(您配置的起点和终点之间的总时间(以毫秒为单位))
SIPP可以在您想要的终端吸引成千上万的电话
SIPP可以提高通话速度或降低通话速度
SIPP可以生成统计信息和CSV文件进行分析
您编写的SIPP方案本身就是在构建数据包。因此,您可以更好地控制数据包在INVITE上发送的内容。
SIPP是开源的
SIPP的负数
SIPP无法发送WAV文件
SIPP无法生成自己的dtmf音调(它使用pcaps,这可能会出现问题)
SIPP无法生成文本到语音
SIPP的实现有些复杂
SIPCLI的好处
SIPCLI可以即时将文本转换为语音
SIPCLI可以使用录制的WAV发送给收件人
SIPCLI易于使用
SIPCLI也可以充当接收者(即,IVR播放问候并接受输入)
SIPCLI具有一些逻辑来验证接收到的数据(例如,用户按#3,然后按#4。)
SIPCLI的负数
SIPCLI不允许您访问它发送的SIP header (因此对测试的控制较少)
SIPCLI不执行负载或性能指标
首先,SIPCLI的编辑器有点困难,但不如学习SIPP的高级功能难
SIPCLI不是开源的。...它的试用版有用90%。要获得其他10%(更长的通话时间),您需要以70美元的价格购买。
我还尝试了其他工具,例如PJSua,但是这两个是我用来测试所讨论场景的基础。
关于Framework / softwsitch / proxy ...我使用Freeswitch。
关于audio - 通过VoIP播放音频文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4845302/