我在服务器上安装了Asterisk和FreePBX。我已经设置了一些测试扩展,我为这些配置了语音邮件。我发现语音邮件文件存储在/var/spool/asterisk/voicemail/default/(EXTENSION)/tmp/(TMPFILE).wav
中
并且他们后来被转移到/var/spool/asterisk/voicemail/default/(EXTENSION)/INBOX/msg####.wav
我想实时将语音数据流式传输到另一台服务器,以便服务器可以开始处理数据。那就是我想在Asterisk收到电话后立即开始流式传输数据,我不想在发送声音之前等待挂断。
我正在寻找如何挂钩Asterisk以获取语音数据。到目前为止我有一些想法:
1)定期检查/ tmp目录中的新文件,并在可用时立即开始阅读。但是文件名是随机的,我也想找出谁在调用的例子。好像死路一条。如果我在Asterisk尝试移动它们时读取它们,文件也可能会卡住?
2)也许我可以为Asterisk编写一个插件,可以在该过程的正确步骤中获取文件。如果是这样,我需要编写这样一个插件,如何配置它以便在语音邮件模块拿起电话后立即访问语音数据?
答案 0 :(得分:2)
您可以使用能够从第3频道获得声音的EAGI程序。
http://www.voip-info.org/wiki/view/Asterisk+EAGI
你也可以为星号做c / c ++应用程序,它会进行流程化(参见apps /文件夹中的源代码示例)