Giter VIP home page Giter VIP logo

eqivo-sandbox's Introduction

Programmable Voice scenarios built with Eqivo

eqivo sandbox

Given the fairly complex nature of VoIP, integrating against platforms such as Eqivo is not always straightforward, especially if compared against modern day web services. One has to configure at least a FreeSWITCH instance (for signalling and media handling) and then integrate their backend against Eqivo.

The purpose of this repository is to demonstrate how one can integrate against Eqivo through a set of simple real life inspired scenarios.

Assumptions

This sample project is built around Docker Compose, allowing the reader to understand how various components interact with each other as well to rapidly provide a known working setup.

The running machine is expected to have docker and docker-compose installed and the provided frontend is expected to be accessed via localhost only, to avoid running into problems with TLS and DNS. This is of course not what you want in production yet application orchestration is out of scope as far as this project goes.

The provided configuration is known to work out of the box at least in mainstream Linux distributions.

Getting started

First, clone (or even fork!) this repository:

git clone https://github.com/rtckit/eqivo-sandbox.git
cd eqivo-sandbox

Then pull the necessary Docker images:

docker-compose -p sandbox -f etc/docker-compose.yaml pull

Then fire up your Docker Compose cluster!

docker-compose -p sandbox -f etc/docker-compose.yaml up

Once the cluster is up, navigate to http://localhost:8081/ and follow the displayed directions.

Customize

You can implement your own scenarios or edit the provided ones.

The backend and frontend are configured to use a local volume mount so you can modify their respective source code files and your changes will be immediately available. To an extent, that's the case for the FreeSWITCH configuration though you will be expected to issue a reloadxml command and perhaps reload affected modules.

Caveat emptor

The provided configuration is not meant to be the basis for a production application, instead the emphasis is solely on how to integrate against Eqivo. Chances are you will integrate Eqivo against an existing backend or framework and all known best practice must be exercised here too. Deliberately left out of the sample but critical in production are proper user input sanitation, URL and XML encoding just to name a few.

License

CC0, see LICENSE file.

Acknowledgments

  • Bootstrap - Used by the frontend
  • JsSIP - SIP over WebSockets library used by the demo web phone (to simulate PSTN interactions)
  • FreePD - Public domain audio tracks used as music-on-hold
  • coinbase - API service used by a simple Bitcoin price scenario
  • Watson - Used to generate voice prompts used by the provided scenarios
  • FreeSWITCH - Handles the real time communications aspects, particularly signalling and media processing
  • Eqivo - Eqivo itself!

eqivo-sandbox's People

Contributors

cdosoftei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.