我想实现一个可以实现以下目标的简单VoIP系统;

  • 用户上载mp3或wav文件并提供电话号码。
  • 拨打给定的电话号码,选择电话后,将播放上载的mp3 / wav文件。播放完整个文件后,电话将被挂断。

  • 我想知道是否有任何支持此功能的开源库?或使用开源软件可以实现这一目标?

    最佳答案

    我为此工作做了类似的测试。

    我有

  • 使用Freeswitch在我办公室的盒子上测试一个框架,我在FreeSWITCH盒子上用密码创建了一些用户。
  • 然后,我使用一个Sip测试工具/客户端来管理与Sip代理,另一个用户的连接。

  • 例如...说我的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/

    10-12 05:17