class Pabx::AMI
Attributes
connected[RW]
host[RW]
port[RW]
Public Class Methods
new(host,port)
click to toggle source
# File lib/pabx.rb, line 11 def initialize(host,port) self.host = host.to_s self.port = port.to_i self.connected = false @session = nil end
Public Instance Methods
command(command)
click to toggle source
# File lib/pabx.rb, line 51 def command(command) request = Request.new("Command",{ "Command" => command }) request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("Command",request.response_data) end
connect()
click to toggle source
# File lib/pabx.rb, line 18 def connect begin @session = Net::Telnet::new("Host" => self.host,"Port" => self.port) self.connected = true rescue Exception => ex false end end
core_show_channels()
click to toggle source
# File lib/pabx.rb, line 62 def core_show_channels request = Request.new("CoreShowChannels") request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("CoreShowChannels",request.response_data) end
disconnect()
click to toggle source
# File lib/pabx.rb, line 27 def disconnect begin @session.close if self.connected @session = nil self.connected = false true rescue Exception => ex puts ex false end end
extension_state(exten,context)
click to toggle source
# File lib/pabx.rb, line 95 def extension_state(exten,context) request = Request.new("ExtensionState",{"Exten" => exten, "Context" => context}) request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("ExtensionState",request.response_data) end
login(username,password)
click to toggle source
# File lib/pabx.rb, line 39 def login(username,password) self.connect unless self.connected request = Request.new("Login",{"Username" => username, "Secret" => password}) request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("Login",request.response_data) end
meet_me_list()
click to toggle source
# File lib/pabx.rb, line 73 def meet_me_list request = Request.new("MeetMeList") request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("MeetMeList",request.response_data) end
originate(caller,context,callee,priority,variable=nil)
click to toggle source
# File lib/pabx.rb, line 106 def originate(caller,context,callee,priority,variable=nil) request = Request.new("Originate",{"Channel" => caller, "Context" => context, "Exten" => callee, "Priority" => priority, "Callerid" => caller, "Timeout" => "30000", "Variable" => variable }) request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 40) do |data| request.response_data << data end Response.new("Originate",request.response_data) end
parked_calls()
click to toggle source
# File lib/pabx.rb, line 84 def parked_calls request = Request.new("ParkedCalls") request.commands.each do |command| @session.write(command) end @session.waitfor("String" => "ActionID: "+request.action_id, "Timeout" => 3) do |data| request.response_data << data end Response.new("ParkedCalls",request.response_data) end