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);

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报