All pastes #63432 Raw Edit

Miscellany

public text v1 · immutable
#63432 ·published 2006-06-09 21:42 UTC
rendered paste body
## This shows how to use the Server and Client classes together, without using Server to create a separate proxy server. 
require 'rubygems'
require 'rami'
include Rami


server = Server.new({'host' => 'localhost', 'username' => 'asterisk', 'secret' => 'secret'})
server.console =1
server.event_cache = 100
server.run


client = Client.new(server)
client.timeout = 10
client.originate({'Channel' => 'IAX2/nbts', 'Context' =>'default','Exten' =>'1000','Priority' =>1})


#################################

#There are wrappers for many other methods
#and the var t is used to store the output of a method useful to check results of methods such as queues or tu #check if a method execution went well

## Redirect
client.timeout = 10
t =  client.redirect({'Action' => 'Redirect', 'Channel' => 'test','ExtraChannel' => 'test', 'Context' => 'mainmenu', 'Exten' => '201', 'Priority' => 1})
print_results(t)

## Queues
client.timeout = 10
t =  client.queues
print_results(t)

## IAXpeers
client.timeout = 10
t =  client.iax_peers
print_results(t)

## SIPpeers
client.timeout = 10
t =  client.sip_peers
print_results(t)

## ParkedCalls
client.timeout = 10
t =  client.parked_calls
print_results(t)

## Hangup
client.timeout = 10
t =  client.hangup('SIP/test')
print_results(t)

## ExtensionState
client.timeout = 10
t =  client.extension_state('menu','201')
print_results(t)

## SetVar
client.timeout = 10
t =  client.setvar('IAX2/teliax-6','testmon',1)                                                                                              
print_results(t)

## GetVar
client.timeout = 10
t =  client.getvar('IAX2/teliax-6','testmon')                                                                                              
print_results(t)

## Monitor
client.timeout = 10
t =  client.monitor('SIP/test','testmon',1)
print_results(t)

## StopMonitor
t =  client.stop_monitor('SIP/test')
print_results(t)

## ChangeMonitor
t =  client.change_monitor('SIP/test','testmon')
print_results(t)

## Agents
client.timeout = 10
t =  client.agents
print_results(t)

## MailboxCount
client.timeout = 10
t =  client.mailbox_count(1002)
print_results(t)

## MailboxStatus
t =  client.mailbox_status(1001)
print_results(t)


## Ping
client.timeout = 10
t =  client.ping
print_results(t)

## DBPut
client.timeout = 10
t =  client.dbput('testfamily','testkey','testval')
print_results(t)

## DBGet
client.timeout = 10
t =  client.dbget('testfamily','testkey')                                                                                                    
print_results(t)

## Originate
# Waits for Hangup or OriginateFailed.  Returns all associated events
client.timeout = 90
t =  client.originate({'Channel' => 'IAX2/nbts', 'Context' =>'default','Exten' =>'1000','Priority' =>1})
print_results(t)

# Does not wait, returns immediately.  Associated events available via get_events or find_events.
client.timeout = 10
t =  client.originate({'Async' => 1,'Channel' => 'IAX2/nbts', 'Context' =>'default','Exten' =>'1000','Priority' =>1})
print_results(t)

## Status
t =  client.status()
print_results(t)

## AbsoluteTimeout
t =  client.absolute_timeout('IAX2/nbts',20)
print_results(t)

## Command
t =  client.command('show manager commands')
print_results(t)

## Find events in the state queue
t =  client.find_events('Event','NewCallerID')
print_results(t)
# OR
t =  client.find_events('any' => 'SIP/test_extension')
print_results(t)

## Get all events in the state queue
t =  client.get_events
print_results(t)