Audio 星号-将插件写入;捕获;语音流

Audio 星号-将插件写入;捕获;语音流,audio,asterisk,voip,freepbx,Audio,Asterisk,Voip,Freepbx,我已经在服务器上安装了Asterisk和FreePBX。我已经为测试设置了一些扩展,并为这些扩展配置了语音邮件。我发现语音邮件文件存储在/var/spool/asterisk/voicemail/default/(扩展名)/tmp/(TMPFILE.wav 他们后来被移动到/var/spool/asterisk/voicemail/default/(分机)/收件箱/msg#####.wav 我想将语音数据实时传输到另一台服务器,以便服务器可以开始处理数据。也就是说,我想在Asterisk收到呼叫

我已经在服务器上安装了Asterisk和FreePBX。我已经为测试设置了一些扩展,并为这些扩展配置了语音邮件。我发现语音邮件文件存储在
/var/spool/asterisk/voicemail/default/(扩展名)/tmp/(TMPFILE.wav
他们后来被移动到
/var/spool/asterisk/voicemail/default/(分机)/收件箱/msg#####.wav

我想将语音数据实时传输到另一台服务器,以便服务器可以开始处理数据。也就是说,我想在Asterisk收到呼叫后立即开始流式传输数据,我不想在发送声音之前等待挂断

我正在寻找如何连接到星号来获取语音数据。到目前为止,我有一些想法:

1) 定期检查/tmp目录中的新文件,并在它们可用时立即开始读取它们。但是文件名是随机的,例如,我也想知道是谁在打电话。看起来像一条死胡同。如果我在Asterisk尝试移动文件时读取它们,文件也可能会被卡住


2) 也许我可以为Asterisk编写一个插件,在正确的步骤中提取文件。如果是这样,我需要编写什么样的插件,以及如何配置它,以便在语音邮件模块拿起电话后立即访问语音数据?

您可以使用EAGI程序,该程序能够从第3频道获取声音


您还可以使用c/c++应用程序for asterisk进行流化处理(示例请参见应用程序/文件夹中的源代码)

您可以使用EAGI程序,该程序可以从第3频道获取声音


您还可以使用c/c++应用程序for asterisk来进行流化处理(示例请参见应用程序/文件夹中的源代码)

谢谢您的回复。这听起来很贴切。伊吉直截了当地向前看,我也发现了一个很好的例子。但是我可以将EAGI脚本配置为用于所有传入呼叫吗?我能收到EAGI的电话号码吗?请阅读更多关于AGI的信息。确保您可以通过AGI控制所有呼叫。但无论如何,你们需要先读一读星号的书。我设法找到了一个可行的解决方案。这是相当直接的,但音频质量真的很差。我一直在寻找一种方法来增加它。可能吗?如果没有,我想我需要找到另一个解决方案…采样率8khz。所有的voip都是这样的。您可以使用16khz(宽带编解码器),但当您调用POTS线路时,它将被重新采样。所以没有意义。EAGI也将重新采样到8khz,因为它与旧的脚本兼容。您可以将窄带流记录到文件中,这没有问题。但您无法从PSTN获取窄带。谷歌的“g722+星号”。我不能说补丁c/c++代码对你来说是否简单,抱歉,谢谢你的回复。这听起来很贴切。伊吉直截了当地向前看,我也发现了一个很好的例子。但是我可以将EAGI脚本配置为用于所有传入呼叫吗?我能收到EAGI的电话号码吗?请阅读更多关于AGI的信息。确保您可以通过AGI控制所有呼叫。但无论如何,你们需要先读一读星号的书。我设法找到了一个可行的解决方案。这是相当直接的,但音频质量真的很差。我一直在寻找一种方法来增加它。可能吗?如果没有,我想我需要找到另一个解决方案…采样率8khz。所有的voip都是这样的。您可以使用16khz(宽带编解码器),但当您调用POTS线路时,它将被重新采样。所以没有意义。EAGI也将重新采样到8khz,因为它与旧的脚本兼容。您可以将窄带流记录到文件中,这没有问题。但您无法从PSTN获取窄带。谷歌的“g722+星号”。对不起,我不能说修补程序c/c++代码对您来说是否简单