Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fonoster/fonoster
π The open-source alternative to Twilio.
https://github.com/fonoster/fonoster
cloud cloud-communications-platform cpaas customer-engagement customer-experience javascript kubernetes nodejs programmable-voice telephony twilio typescript ucaas voip webrtc
Last synced: 3 months ago
JSON representation
π The open-source alternative to Twilio.
- Host: GitHub
- URL: https://github.com/fonoster/fonoster
- Owner: fonoster
- License: mit
- Created: 2018-02-04T02:58:54.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-04-03T11:41:16.000Z (3 months ago)
- Last Synced: 2024-04-04T11:37:27.423Z (3 months ago)
- Topics: cloud, cloud-communications-platform, cpaas, customer-engagement, customer-experience, javascript, kubernetes, nodejs, programmable-voice, telephony, twilio, typescript, ucaas, voip, webrtc
- Language: JavaScript
- Homepage: https://fonoster.com
- Size: 122 MB
- Stars: 6,057
- Watchers: 102
- Forks: 316
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Lists
- awesome-open-source-systems - Fonoster - The open-source alternative to Twilio. (Uncategorised / Uptime Monitoring)
- awesome-rtc - Fonoster - Telecommunication stack built with Node.js. (Operations / Web/API Interfaces)
- awesome-stars - fonoster/fonoster - source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio (JavaScript)
- my-awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- docsify-awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio (JavaScript)
- awesome - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- my-awesome-list - fonoster - source alternative to Twilio. | fonoster | 6157 | (JavaScript)
- awesome-stars - fonoster - source alternative to Twilio. | fonoster | 6157 | (JavaScript)
- my-awesome-stars - fonoster - source alternative to Twilio. | fonoster | 6157 | (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster/fonoster - π The open-source alternative to Twilio. (JavaScript)
- awesome-stars - fonoster - source alternative to Twilio. | fonoster | 6152 | (JavaScript)
README
# Fonoster: The open-source alternative to Twilio
[Fonoster Inc](https://fonoster.com) researches an innovative Programmable Telecommunications Stack that will allow for an entirely cloud-based utility for businesses to connect telephony services with the Internet.
![build](https://github.com/fonoster/fonoster/workflows/unit%20tests/badge.svg) [![release](https://github.com/fonoster/fonoster/actions/workflows/release.yaml/badge.svg)](https://github.com/fonoster/fonoster/actions/workflows/release.yaml) [![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC)
![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social)
> Attention β οΈ:
>
> **Exploring Fonoster**: We encourage new users to initially explore Fonoster's features through our SaaS (Software as a Service) option. This platform is free to start and offers a comprehensive experience of what Fonoster can do.
>
> **Installation Advisory**: Please note that the current installation process for Fonoster is complex. We are actively working to simplify this process. We recommend waiting for our upcoming 0.4 or 0.5 release before attempting a direct installation. These future releases are designed to offer a more user-friendly installation experience.
>
>Thank you for your interest in Fonoster. We are committed to enhancing your experience with every release.## Features
The most notable features on Fonoster 0.4 are:
- [x] Multitenancy
- [x] Easy deployment of PBXs functionalities
- [x] Programmable Voice Applications
- [x] NodeJS SDK
- [x] Support for Amazon Simple Storage Service (S3)
- [x] Secure API endpoints with Let's Encrypt
- [x] Authentication with OAuth2
- [X] Authentication with JWT
- [x] Role-Based Access Control (RBAC)
- [x] Plugins-based Command-line Tool
- [x] Support for Google Speech APIs
- [x] Secrets managed by Hashicorp Vault## 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 call
- `Hangup` - Closes the call
- `Play` - Takes an URL or file and streams the sound back to the calling party
- `Say` - Takes a text, synthesizes the text into audio, and streams back the result
- `Gather` - Waits for DTMF or speech events and returns back the result
- `SGather` - Returns a stream for future DTMF and speech results
- `Dial` - Passes the call to an Agent or a Number at the PSTN
- `Record` - It records the voice of the calling party and saves the audio on the Storage sub-system
- `Mute` - It tells the channel to stop sending media, effectively muting the channel
- `Unmute` - It tells the channel to allow media flowVoice Application Example:
```typescript
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 Fonoster 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:
```typescript
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);
```## Getting Started
To get started with Fonoster use the following resources:
- [Deploying Fonoster to the Cloud](./docs/operator/deploy-your-server.md)
- [Getting started with Fonoster](https://learn.fonoster.com/)
- [Connecting Fonoster with Dialogflow](https://learn.fonoster.com/docs/tutorials/connecting_with_dialogflow)
- [Using Google Speech APIs](https://learn.fonoster.com/docs/tutorials/using_google_speech)
- [How we created an open-source alternative to Twilio and why it matters](https://github.com/fonoster/blog/blob/main/2021/001/post.md)## 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](https://github.com/fonoster/fonoster/issues)
## Contributing
For contributing, please see the following links:
- [Contribution Documents](https://github.com/fonoster/fonoster/blob/main/CONTRIBUTING.md)
- [Contributors](https://github.com/fonoster/fonoster/contributors)
![]()
Pedro Sanders
![]()
Efrain Peralta
![]()
Wardner Lara
![]()
Richard HC
![]()
Hoan Luu Huu
![]()
Speedy Monster
![]()
Brayan Munoz Vargas
![]()
0xflotus
![]()
Hector Ventura
![]()
Prasurjya Pran Borah
![]()
gabriel duncan
![]()
Dede kurniawan
![]()
Albert E. Hidalgo Taveras
![]()
Alex
![]()
Ali Firat ARI
![]()
Antonius Ostermann
![]()
Bruno Arueira
![]()
Bruno Wego
![]()
Christopher Adigun
![]()
Ciprian
![]()
Dung Duc Huynh (Kaka)
![]()
Fidal Mathew
![]()
Gary Barnes
![]()
Harish Chander
![]()
Jon Chin
![]()
Judge Godwins
![]()
Manish
![]()
Osama Sehgol
![]()
Paul SΓΌtterlin
![]()
Riad Vargas
![]()
Shailendra Paliwal
![]()
The Gitter Badger
![]()
Yuri
![]()
cdrsociate
![]()
pavan
![]()
nrjchnd
![]()
Salami Bashir
![]()
Shivam Deepak Chaudhary
![]()
showf68
![]()
telenautical
![]()
Wisdom Elendu
## Sponsors
We're glad to be supported by respected companies and individuals from several industries.
Find all our supporters [here](https://github.com/sponsors/fonoster)
> [Become a Github Sponsor](https://github.com/sponsors/fonoster)
## Authors
- [Pedro Sanders](https://github.com/psanders)
## License
Copyright (C) 2023 by [Fonoster Inc](https://fonoster.com). MIT License (see [LICENSE](https://github.com/fonoster/fonoster/blob/main/LICENSE) for details).