请注意:此仓库不再积极维护。
对于对类似模块感兴趣的人,请参考这个仓库,它以不同的(双重许可)方式提供:
- 一般用途采用AGLP-3许可。
- 仅用于jambonz安装时采用MIT许可。
drachtio-freeswitch-modules
这是一个开源的Freeswitch模块集合,主要为使用drachtio-fsrmf的drachtio应用程序而构建,但通常也可用于通用的Freeswitch应用程序。这些模块已在Freeswitch 1.8版本上进行了测试。
mod_audio_fork
一个Freeswitch模块,可以在媒体服务器端点上附加一个bug,并通过websockets将L16音频流传输到远程服务器。音频从不在媒体服务器上本地存储到磁盘,这使其非常适合"无静态数据"类型的应用程序。该模块还支持从服务器接收媒体以回放给呼叫者,从而实现全功能的IVR或对话类应用程序的创建。
mod_google_tts
一个tts提供程序模块,与Google Cloud Text-to-Speech API集成,并集成到Freeswitch的TTS框架中(即可与mod_dptools的'speak'应用程序一起使用)。
mod_google_transcribe
添加了一个Freeswitch API调用,可以使用Google Cloud Speech-to-Text API在Freeswitch通道上启动(或停止)实时转录。
mod_dialogflow
添加了一个Freeswitch API,可以在Freeswitch通道上启动Google Dialogflow代理。
mod_aws_lex
添加了Freeswitch API调用,以集成AWS Lex v2 API。
mod_aws_transcribe
添加了一个Freeswitch API调用,可以使用AWS流式转录(基于HTTP/2)在Freeswitch通道上启动(或停止)实时转录。
安装
这些模块有依赖项,需要构建一个支持grpc(如果构建任何Google模块)和libwebsockets的自定义版本的Freeswitch。具体来说,mod_google_tts、mod_google_transcribe和mod_dialogflow需要grpc,而mod_audio_fork需要libwebsockets。
从源代码构建
这个Ansible角色可用于构建支持这些模块的Freeswitch 1.8。即使您出于某种原因不想使用Ansible,任务文件和补丁文件也应该让您了解如何自己手动构建或通过您喜欢的自动化方式构建(但为什么不直接使用Ansible呢!)
注意:该Ansible角色假设您在Debian 9(stretch)上构建。
使用Docker
执行docker pull drachtio/drachtio-freeswitch-mrf:v1.10.1-full
以获取包含上述所有模块(除mod_aws_transcribe外)的Docker镜像。
配置
访问Google服务的三个模块(mod_google_tts、mod_google_transcribe和mod_dialogflow)需要在Freeswitch服务器上安装JSON服务密钥文件,并且名为"GOOGLE_APPLICATION_CREDENTIALS"的环境变量必须指向该文件位置。