🚀 The open-source alternative to Twilio
Fonoster: The open-source alternative to Twilio
Fonoster Inc researches an innovative Programmable Telecommunications Stack that will allow for an entirely cloud-based utility for businesses to connect telephony services with the Internet.
Features
The most notable features on FN 0.3 are:
Code Examples
A Voice Application is a server that takes control of the flow in a call. A Voice Application can use any combination of the following verbs:
Answer
- Accepts an incoming callHangup
- Closes the callPlay
- Takes an URL or file and streams the sound back to the calling partySay
- Takes a text, synthesizes the text into audio, and streams back the resultGather
- Waits for DTMF or speech events and returns back the resultSGather
- Returns a stream for future DTMF and speech resultsDial
- Passes the call to an Agent or a Number at the PSTNRecord
- It records the voice of the calling party and saves the audio on the Storage sub-systemMute
- It tells the channel to stop sending media, effectively muting the channelUnmute
- It tells the channel to allow media flowVoice Application Example:
const { VoiceServer } = require("@fonoster/voice");const serverConfig = { pathToFiles:
${process.cwd()}/sounds
, };new VoiceServer(serverConfig).listen( async (req, res) => { console.log(req); await res.answer(); await res.play(
sound:${req.selfEndpoint}/sounds/hello-world.sln16
); await res.hangup(); } );// your app will live at http://127.0.0.1:3000 // and you can easily publish it to the Internet with: // ngrok http 3000
Everything in FN is an API first, and initiating a call is no exception. You can use the SDK to start a call with a few lines of code.
Example of originating a call with the SDK:
const Fonoster = require("@fonoster/sdk"); const callManager = new Fonoster.CallManager();Getting StartedcallManager.call({ from: "9842753574", to: "17853178070", webhook: "https://5a2d2ea5d84d.ngrok.io/voiceapp" }) .then(console.log) .catch(console.error);
To get started with FN use the following resources:
Give a Star! ⭐
If you like this project or plan to use it in the future, please give it a star. Thanks 🙏
Bugs and Feedback
For bugs, questions, and discussions, please use the Github Issues
Contributing
For contributing, please see the following links:
Sponsors
We're glad to be supported by respected companies and individuals from several industries.
Find all our supporters here
Authors
License
Copyright (C) 2022 by Fonoster Inc. MIT License (see LICENSE for details).
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.