FonosterTwilio 的开源替代品

联合创作 · 2023-10-01 10:01

Twilio Messaging 是一个在全球范围内发送和接收短信、彩信、OTT 消息的 API。它使用智能发送功能,确保信息可靠地到达终端用户,无论他们在哪里。Fonoster 则是 Twilio 的开源替代品。



特征



  • 使用 Cloud-Init 进行云初始化


  • 多租户


  • 轻松部署 PBX 功能


  • 可编程语音应用


  • 节点开发工具包


  • 网页软件开发工具包


  • 支持 Amazon Simple Storage Service (S3)


  • 使用 Let's Encrypt 保护 API 端点


  • 使用 OAuth2 进行身份验证


  • 使用 JWT 进行身份验证


  • 基于角色的访问控制 (RBAC)


  • 基于插件的命令行工具


  • 支持 Google Speech API


  • 对 Cloud Functions 的实验性支持



代码示例


语音应用程序是控制呼叫流程的服务器。语音应用程序可以使用以下的任意组合:



  • Answer - 接听来电

  • Hangup - 关闭呼叫

  • Say - 获取文本,将文本合成为音频,并将结果传回

  • Gather - 等待 DTMF 或语音事件并返回结果

  • Dial - 将呼叫传递给 PSTN 的座席或号码

  • Record - 记录主叫方的声音并将音频保存在存储子系统中

  • Mute - 它告诉频道停止发送媒体,有效地将频道静音

  • Unmute - 它告诉频道允许媒体流


语音应用示例:




const { VoiceServer } = require("@fonoster/voice");
const voiceServer = new VoiceServer({ base: '/voiceapp' });

voiceServer.listen((req, res) => {
console.log(req);
res.play("sound:hello-world");
});

// your app will leave at http://127.0.0.1/voiceapp
// and you can easily publish it to the Internet with:
// ngrok http 3000


FN 中的一切都是 API,发起调用也不例外。可以使用 SDK 通过几行代码开始调用。


使用 SDK 发起呼叫的示例:




const Fonoster = require("@fonoster/sdk");
const callManager = new Fonoster.CallManager();

callManager.call({
from: "9842753574",
to: "17853178070",
webhook: "https://5a2d2ea5d84d.ngrok.io/voiceapp"
})
.then(console.log)
.catch(console.error);


浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报