https://github.com/tiniyo/neoms
OpenSource Twilio Alternative
https://github.com/tiniyo/neoms
cpaas freeswitch nexmo plivo programmable-voice telnyx tiniyo twilio-api twiml voice-api
Last synced: 8 days ago
JSON representation
OpenSource Twilio Alternative
- Host: GitHub
- URL: https://github.com/tiniyo/neoms
- Owner: tiniyo
- License: apache-2.0
- Created: 2021-06-05T10:02:56.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-11-11T02:18:12.000Z (about 4 years ago)
- Last Synced: 2024-11-14T21:15:42.324Z (about 1 year ago)
- Topics: cpaas, freeswitch, nexmo, plivo, programmable-voice, telnyx, tiniyo, twilio-api, twiml, voice-api
- Language: Go
- Homepage: https://tiniyo.com
- Size: 163 KB
- Stars: 32
- Watchers: 2
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
NeoMs
The open-source alternative to Twilio.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
## About The Project
[![Product Name Screen Shot][product-screenshot]](https://tiniyo.com)
Project NeoMs is open-source alternative to twilio voice api. It helps software developer or enterprises to build CPaaS like twilio with their infrastructure.
### Built With
* [FreeSWITCH](https://github.com/signalwire/freeswitch)
* [GoLang](https://golang.org/)
* [Redis](https://redis.io/)
## Getting Started
### Prerequisites
NeoMs required local redis on each server where you setup NeoMs. Redis is used for live call stats.
* Redis
```sh
sudo apt install redis-server
```
* FreeSWITCH (You may install your desired version)
```sh
sudo apt-get update && apt-get install -y gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
# you may want to populate /etc/freeswitch at this point.
# if /etc/freeswitch does not exist, the standard vanilla configuration is deployed
# apt-get update && apt-get install -y freeswitch-meta-all
```
### Installation
1. Clone the repo
```sh
git clone https://github.com/tiniyo/neoms.git
```
2. Install the neoms package dependency using go mod.
```sh
cd neoms
go mod download
```
3. Please enter your api configurations using environment variable.
```sh
EXPORT REGION=ALL
EXPORT SER_USER=API_BASIC_AUTH_USER
EXPORT SER_SECRET=API_BASIC_AUTH_SECRET
EXPORT SIP_SERVICE=SIP_SERVICE_URL
EXPORT KAMGO_SERVICE=LOCATION_SERVICE_URL
EXPORT NUMBER_SERVICE=NUMBER_SERVICE_URL
EXPORT HEARTBEAT_SERVICE=HEARTBEAT_SERVICE_URL
EXPORT RATING_ROUTING_SERVICE=RATING_ROUTING_SERVICE_URL
EXPORT CDR_SERVICE=CDR_SERVICE_URL
EXPORT RECORDING_SERVICE=RECORDING_SERVICE_URL
```
4. build the neoms and run the n
```sh
go build -o neoms main.go
./neoms
```
## Usage
_For more examples, please refer to the [Documentation](https://tiniyo.com)_
## Roadmap
- [X] XML Parser
- [X] Play, Say, Dial, Sip, Number, Record, Hangup, Reject, Pause, Gather , Redirect Twilio elements support
- [] Conference
- [] Conference API
- [] Inbound XML Support
- [] Outbound XML Support
- [X] HeartBeat Event for billing
- [X] CDR Post to api
- [X] Initiated, Ringing, In-Progress, Hangup, Record Start, Record Stop Event for Twilio based callback for customer Url
- [X] HeartBeat Event for billing
- [X] Text2Speech Support
- [] Speech2Text Support
- [X] DTMF Support
- [] Speech Detection
See the [open issues](https://github.com/tiniyo/neoms/issues) for a full list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
## Contact
Your Name - [@twitter_handle](https://twitter.com/twitter_handle) - support@tiniyo.com
Project Link: [https://github.com/tiniyo/neoms](https://github.com/tiniyo/neoms)
## Acknowledgments
* []()
* []()
* []()
[contributors-shield]: https://img.shields.io/github/contributors/tiniyo/neoms.svg?style=for-the-badge
[contributors-url]: https://github.com/tiniyo/neoms/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/tiniyo/neoms.svg?style=for-the-badge
[forks-url]: https://github.com/tiniyo/neoms/network/members
[stars-shield]: https://img.shields.io/github/stars/tiniyo/neoms.svg?style=for-the-badge
[stars-url]: https://github.com/tiniyo/neoms/stargazers
[issues-shield]: https://img.shields.io/github/issues/tiniyo/neoms.svg?style=for-the-badge
[issues-url]: https://github.com/tiniyo/neoms/issues
[license-shield]: https://img.shields.io/github/license/tiniyo/neoms.svg?style=for-the-badge
[license-url]: https://github.com/tiniyo/neoms/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://in.linkedin.com/company/tiniyo
[product-screenshot]: images/cpass.jpeg