No release in over 3 years
Low commit activity in last 3 years
Ruby client library for the Asterisk REST Interface (ARI).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 5.4.2
>= 0
~> 2.9.3
~> 1.19.0

Runtime

 Project Readme

Build Status

About

This repository contains the ruby client library for the Asterisk REST Interface (ARI). It uses the swagger ARI json definitions to generate ruby classes.

Installation

Add this line to your application's Gemfile:

gem 'asterisk-ari-client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install asterisk-ari-client

and then require it:

require 'asterisk/ari/client'

Usage

# instantiate client
@client = Ari::Client.new(
  url: 'http://127.0.0.1:8088/ari',
  api_key: 'asterisk:asterisk',
  app: 'my-app'
)

# originate
@client.channels.originate endpoint: 'PJSIP/endpoint-name', extension: 11

# list all channels
channels = @client.channels.list

When working with only one client you can also use the following:

Ari.client = Ari::Client.new(
  url: 'http://127.0.0.1:8088/ari',
  api_key: 'asterisk:asterisk',
  app: 'my-app'
)

# list channels
channels = Ari::Channel.list

WebSocket events

# listen to events
@client.on :websocket_open do
  puts "Connected !"
end

@client.on :stasis_start do |e|
  puts "Received call to #{e.channel.dialplan.exten} !"
  
  e.channel.answer

  e.channel.on :channel_dtmf_received do |e|
    puts "Digit pressed: #{e.digit} on channel #{e.channel.name} !"
  end

  e.channel.on :stasis_end do |e|
    puts "Channel #{e.channel.name} left Stasis."
  end
end

# start websocket to receive events
@client.connect_websocket
sleep

Contributing

  1. Fork it ( https://github.com/svoboda-jan/asterisk-ari/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request