Asterisk呼叫器示例支持windows, TTS和Node.js,Zabbix

Asterisk caller是一个使用Node.js、Express和Windows内置TTS进行简单Asterisk呼叫流程集成的示例。用户可以使用它向Asterisk请求呼叫,并使用Windows TTS API播放实时生成的音频。用户也可以应用在某些自动呼叫的场景中,实现实现自动化呼叫。一个很好的示例场景是使用Asterisk进行Zabbix自动化呼叫,并为每个特定问题播放一个自定义音频。asterisk非常灵活,可以通过很多方式支持外部资源接口,这里用户首先需要了解agi, ari和ami的使用方法。此示例分享可以帮助用户更好利用学习asterisk开源平台和其他第三方进入例如AI,TTS的基本操作,同时读者可以充分利用node.js 来开发新灵活的应用场景。

系统要求  

  • Node.JS v20.10.0以上版本  
  • 在Asterisk服务器端运行的AGI服务器。服务器必须知道如何处理文件名并在指定的通话中播放。  
  • 启用Asterisk AMI。(参见Asterisk文档中的manager.conf)  
  • 启用Asterisk ARI(http)。(参见Asterisk文档中的http.conf)  
  • 需要一台Windows电脑以便使用Powershell进行TTS转换。你可以用自己的实现(例如Azure TTS)替换“createTts()”函数,但必须遵循文件生成规则。

环境数据要求  

用户必须将“.env.example”文件重命名为.env,并填写所需字段。

ASTERISK_AMI_USER:在manager.conf中配置的AMI用户名  

ASTERISK_AMI_PASSWORD:在manager.conf中配置的AMI密码  

ASTERISK_AMI_HOST:Asterisk主机  

ASTERISK_AMI_PORT:Asterisk AMI端口(默认是5038)  

ASTERIK_ARI_HOST:Asterisk主机(应与Asterisk AMI主机相同)  

ASTERISK_ARI_USER:在http.conf中配置的Asterisk ARI用户  

ASTERISK_ARI_PASSWORD:在http.conf中配置的Asterisk ARI密码  

ASTERISK_ARI_PORT:Asterisk ARI端口(默认是8088)  

AUDIO_OUTPUT_BASE_PATH:存储TTS音频的基本路径。

工作原理  

该应用程序依赖于“/tts”路径,实时创建一个文本转语音的音频文件,并在给定的输出路径下以提供的名称和描述生成。音频文件将由Windows Powershell生成为.wav格式,然后使用fluent-ffmpeg模块转换为.gsm格式,并以文件创建时间命名存储在默认输出路径中。

生成的呼叫包含一个“fileName”变量,该变量被发送到AGI(Asterisk Gateway Interface),AGI读取呼叫并播放音频。请注意,您必须在Asterisk的服务器端实现AGI逻辑,此代码旨在生成一个tts文件并将其位置发送给Asterisk AGI以播放音频文件。

Express服务器在其静态路径下提供文件,支持Asterisk的调用。

更多项目详情:

https://github.com/Robertwyllyam/NodeJS-Asterisk-TTS

作者: james.zhu,更多关于SIP开源学习文档下载:

Asterisk呼叫器示例支持windows, TTS和Node.js,Zabbix

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论