【问题标题】:play audio file over VoIP通过 VoIP 播放音频文件
【发布时间】:2013-04-30 08:38:06
【问题描述】:

我想实现一个简单的VoIP系统,可以实现以下功能;

  1. 用户上传 mp3 或 wav 文件并提供电话号码。
  2. 拨打给定的电话号码,拿起电话时,播放上传的mp3/wav文件。播放完整个文件后,通话就挂断了。

我想知道是否有任何支持这个的开源库?还是我可以使用的开源软件?

【问题讨论】:

  • 什么平台、操作系统等?
  • 是否还有一种简单的方法可以播放 mp3/ogg/wav 来接听来电?

标签: audio voip


【解决方案1】:

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

我有

  1. 在我办公室的机器上使用 Freeswitch 的测试框架,我在 FreeSWITCH 机器上创建了一些使用密码的用户。
  2. 然后我使用 sip 测试工具/客户端来管理与 sip 代理的连接,以及与另一个用户的连接。

例如...说我的freeswitch是ip:120.0.0.7

我正在以用户 5000 的身份在该 freeswitch 上注册,我想致电也已注册的用户 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 个调用。你可能不想要那个。所以 l 说“将调用限制为 #”,m 说“一次只运行 x 个调用”。

SIPCLI

更简单的方法是 sipcli(但它是一个仅限 Windows 的工具。) 在 sipcli 中,您基本上可以发送 wav 文件以及文本到语音。我喜欢它。它有一个内置的库,可以拨打号码,你可以通过类似 -t “这是对 sip 和 v o i p 测试的测试工具的测试。”它会在通话中即时将其转换为音频。您还可以构建指向您录制的 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 标头(因此对测试的控制较少) SIPCLI 不做负载或性能指标 SIPCLI的编辑器一开始有点难,但没有学习SIPP的高级功能那么难 SIPCLI 不是开源的……它的试用版 90% 有用。要获得另外 10%(更长的通话时间),您需要以 70 美元的价格购买。

我也尝试过 PJSua 等其他工具,但这两个是我测试您所说的场景的基础。

关于框架/softwsitch/proxy...我使用Freeswitch。

【讨论】:

    【解决方案2】:

    是的,您可以使用 Asterisk、Freeswitch(我的个人喜好)或许多其他类似的平台。

    完成 freeswitch 设置后,请查看此链接以开始使用: http://wiki.freeswitch.org/wiki/Javascript_QuickStart

    【讨论】:

    【解决方案3】:

    使用ivrworx 进行简单测试

    查看流媒体示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多