0

我已经在服务器上安装了 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 编写一个插件,它可以在正确的过程中提取文件。如果是这样,我需要编写这样的插件吗?如何配置它以在语音邮件模块拿起电话后立即访问语音数据?

4

1 回答 1

3

您可以使用 EAGI 程序,它可以从通道 #3 获得声音。

http://www.voip-info.org/wiki/view/Asterisk+EAGI

您还可以为 asterisk 执行 c/c++ 应用程序,该应用程序将执行流式传输(请参阅应用程序/文件夹中的源代码以获取示例)

于 2015-12-01T22:10:55.733 回答