GithubHelp home page GithubHelp logo

chadxz / asterisk-playground Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 3.0 431 KB

A sandbox to tinker with Asterisk and its many interfaces

License: MIT License

Makefile 1.57% JavaScript 55.35% Shell 21.40% Dockerfile 21.68%
asterisk ansible vagrant javascript nodejs

asterisk-playground's Introduction

asterisk-playground

Vagrant + Ansible scripts for setting up an Asterisk instance on a ubuntu/xenial virtual machine. Comes with Dockerized Asterisk and a Node.js AGI + ARI app.


pre-reqs

Things you'll need locally for Ansible

  • An ssh key

  • Python 3 installed. On Mac I use homebrew.

  • pipx installed. On Mac I use homebrew.

  • virtualenv installed. Using pipx above.

  • Ensure you have an ssh key

  • Ensure you have Python 2.7.x installed. (Installed by default on OSX)

  • Ensure you have homebrew installed.

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  • Install Python pip package manager.

    easy_install pip

  • Use pip to install Ansible.

    pip install ansible

  • Install virtualbox and vagrant.

    brew cask install virtualbox vagrant

  • Start the virtual machine with vagrant up

deploying the system

To setup the vm from scratch:

$ make

Once deployed to, you can ssh into it:

$ ssh 192.168.68.68

To upgrade the asterisk box or agi+ari application:

$ make deploy

accessing the system

Once deployed, a few services will be available on the vm:

  • cAdvisor will be running, providing monitoring for the system and containers. Access this at http://192.168.68.68:8080/containers/

  • SwaggerUi will be running at http://192.168.68.68:1337 pointing at Asterisk.

  • Asterisk will be running. Point a sip client at 192.168.68.68 using the credentials from asterisk/conf/pjsip.conf.

  • The 'call-control' node app will be running, but it only interacts with Asterisk and exposes no public facing ui.

  • To view logs of any application, ssh into the box with vagrant ssh playground and use docker ps to view the container statuses and docker logs <container name> to view logs of any individual container. For Asterisk, you can access the console using the command docker exec -ti asterisk asterisk -c

asterisk-playground's People

Contributors

chadxz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

samuelg nrjchnd

asterisk-playground's Issues

Create an example of the use of the awry ARI Applications API

Use awry to interact with the ARI Applications API to prove out the client library's implementation. The applications api has the following apis:

  • list() all applications registered in Asterisk
  • get() a specific application's details
  • subscribe() to a specific application's eventSource, which could be a channelId, a bridgeId, an endpoint (using the form PJSIP/6001), or a deviceName
  • unsubscribe() from the same

Once the proper usage of these apis is discovered through an implementation, document them in a ticket in the awry issues so they can be added as examples in the jsdoc.

swagger-ui no longer working

seems the swagger-ui image that i was using has updated to no longer expose a way to add an authorization. Need to build a custom swagger-ui image to deploy that has ability to set api_key authorization like http://ari.asterisk.org

get better quality sounds

the sounds i'm using right now are lower quality than I could be using. should look into getting sln16 or g722 sounds for both core and moh

Create an example of the use of the awry ARI Asterisk API

Use awry to interact with the ARI Asterisk API to prove out the client library's implementation. The asterisk endpoint has the following apis:

Once the proper usage of these apis is discovered through an implementation, document them in a ticket in the awry issues so they can be added as examples in the jsdoc.

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.