Project Fonos is open-source telecommunications for the cloud. It helps VoIP integrators quickly deploy new networks and benefit from value-added services such as Programmable Voice, Messaging, and Video. This repository assembles the various components needed to deploy a telephony system at scale.
Special Announcement:
We now have a Slack Channel
There we plan to discuss roadmaps, feature requests and more
Join the channel
To get started with Fonos Programmable Voice follow the next few steps.
Preparation
The first step with Fonos Programmable Voice is to install all the requirements. Refer to websites of the various products in the list bellow for detail on installation and configuration.
Requirements:
- K8S Cluster
- Node and NPM
- A softphone (with support for tcp)
Running the Infrastructure
To run Fonos in your cluster, please follow the deployment instructions
Work is on the way to enable Fonos for Docker Swarm
Installing the Tools
The next step is to install the Command-Line Tool. To install the tool run the following command:
npm install @fonos/ctl -g
For details on this tool please go to ctl @ npmjs.
Creating and Deploy an Application
If everything is went to plan, it is now time to generate and deploy your first Voice Application.
mkdir voice-app
cd voice-app
fonos apps:init
fonos apps:deploy
For more examples go the examples folder in this repository.
Testing
To interact with your application, point your softphone to Asterisk sub-system. The testing information is as follows:
USENAME = 1001
PASSWORD = 1234
TEST EXTENSION = 1002
What's Next?
Congratulations if you made it this far. The next step with Fonos is to get familiar with the Command-Line Tool and the SDK.
Fonos' main features are:
- Programmable Voice
- Available on Kubernetes environment
- Typical SIP Server functions; Proxy, Registrar, Location Service
- Configurable routing strategies; Intra-Domain, Domain Ingress, Domain Egress and Peer Egress
- Per node Multi-Tenancy/Multi-Domain with Domain level Access Control List
- Transport: TCP, UDP, TLS, WebSocket
- Database: Redis
The following is a list of modules and other subcomponents of Project Fonos by topic and current status.
Name | Topic | Description | Status |
---|---|---|---|
core | Core | Core API | |
events | Core | Event managment | |
storage | Core | Utility module for storage managment | |
ctl | Tooling | Controls a Fonos deployment using the API | |
sdk | Tooling | Bundle API for all user facing components | |
voice | Programmable Voice | NodeJS Implementation of Voice API | |
appmanager | Programmable Voice | API for deployment and managment of PVAs | |
dispatcher | Programmable Voice | Takes a call and passes control to media controller | |
tts | Programmable Voice | Abstracts for TTS features | |
marytts | Programmable Voice | Default TTS implementation | |
googleasr | Programmable Voice | Google implementation for ASR feature | |
googletts | Programmable Voice | Google implementation for TTS feature | |
mediacontroller | Programmable Voice | NodeJS implementation for Fonos media controller | |
mediaserver | VoIP Network, Programmable Voice | Asterisk based media server | |
agents | VoIP Network | API to create, update, get and delete Agents |
|
domains | VoIP Network | API to create, update, get and delete Domains |
|
providers | VoIP Network | API to create, update, get and delete Providers |
|
numbers | VoIP Network | API to create, update, get and delete Numbers |
|
sipproxy | VoIP Network | SIP proxy subcomponent | |
mediarelay | VoIP Network | RTPEngine controller and balancer | |
aaa | VoIP Network | Access Authorization Accounting | |
logger | Misc | Useful for Programmable Voice Applications (PVAs) | |
certs | Misc | Certificate creation and managment | |
errors | Misc | Util module for error managment | |
roles | Misc | API Access Control |
For bugs, questions, and discussions please use the Github Issues
For contributing, please see the following links:
We're glad to be supported by respected companies and individuals from several industries. See our Github Sponsors to learn more.
Platinum Sponsors
Find all supporters in our BACKERS.md
file.
Copyright (C) 2020 by Fonoster Inc. MIT License (see LICENSE for details).