#!/usr/bin/env python

import ari
import logging

logging.basicConfig(level=logging.ERROR)

client = ari.connect('http://localhost:8088', 'asterisk', 'asterisk')

bridges = [b for b in client.bridges.list() if b.json['bridge_type'] == 'mixing']
if bridges:
    bridge = bridges[0]
    print "Using bridge {0}".format(bridge.id)
else:
    bridge = client.bridges.create(type='mixing')
    print "Created bridge {0}".format(bridge.id)

def stasis_start_cb(channel_obj, ev):
    channel = channel_obj.get('channel')
    print "Channel {0} has entered the application".format(channel.json.get('name'))

    channel.answer()
    print "Current channels:"
    current_channels = client.channels.list()
    for chan in current_channels:
        print chan.json.get('name')

    bridge.addChannel(channel=chan.id)

def stasis_end_cb(channel, ev):
    print "{0} has left the application".format(channel.json.get('name'))

client.on_channel_event('StasisStart', stasis_start_cb)
client.on_channel_event('StasisEnd', stasis_end_cb)

client.run(apps='ari-example')
