将voip音频转换为文本以进行调试

时间:2015-06-09 16:29:04

标签: voip freeswitch

在处理voip应用程序时,我通常最终拿起一部手机,与之通话,拿起另一部手机并检查我是否听到了自己的声音。如果我使用三方通话进行应用,这甚至会变得更加棘手。

使用软电话无济于事。

理想情况下,我希望能够运行基于命令行的多个实例,其中我可以拨打号码。一旦ua拨打电话并且另一方接听,两个代理都会交换音频。但是,不是必须听到一些音频,而是应用程序显示一些标识另一端的文本。可能是一些可以转换为文本的频率模式。然后该文本显示在应用程序上。

可以这样做吗?我正在针对freeswitch创建应用程序。在评论中也欢迎如何调试voip应用程序的想法。

2 个答案:

答案 0 :(得分:2)

是的,绝对的。最简单的方法是使用一个单独的FreeSWITCH服务器,用于发出测试呼叫和发送/接收测试信号。

tone_stream会以您需要的频率生成音调:https://freeswitch.org/confluence/display/FREESWITCH/Tone_stream

tone_detect可以检测频率并执行操作,甚至可以更好地生成可以通过ESL套接字捕获的事件:https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+tone_detect

生成此类调用的最佳方法是使用拨号程序脚本,该脚本通过Event Socket与FreeSWITCH进行通信。在这里,您可以看到我使用Perl创建的一些(工作)示例:

https://github.com/voxserv/rring/blob/master/lib/Rring/Caller/FreeSWITCH.pm - 这是我为测试提供商的SIP基础设施而构建的测试套件的一部分。正如您所看到的,它连接到FreeSWITCH,启动事件侦听器,然后发起呼叫并期望进行呼入。然后它发送并分析DTMF。

https://github.com/voxserv/freeswitch-helper-scripts/tree/master/esl - 这些是特殊用途拨号程序,您也可以将它们用作示例。

https://github.com/voxserv/freeswitch-perf-dialer - 这个会产生一系列调用,就像SIPp一样。

答案 1 :(得分:0)

另一种技术是播放样本音频文件并在另一端录制正在接收的音频[通话录音],然后比较两者。该系统适用于系统位于不同位置并且您正在测试端到端质量的设置。

有许多音频比较工具[如PESQ]应该不仅可以帮助您检测音频的存在,还可以提供有关音频流中各种参数降级的统计信息。

这可以扩展为在发布FS补丁时对其进行测试分析,也可以扩展到您想要强制执行的其他挂钩或质量标准。