class Asterisk::AMI

Attributes

connected[RW]

Public Class Methods

new(username, password, host="localhost", port=5038) click to toggle source
# File lib/ami.rb, line 10
def initialize(username, password, host="localhost", port=5038)
  @connection = Asterisk::Connection.new(username, password, host, port)
  @connected = false
end

Public Instance Methods

channels() click to toggle source
# File lib/ami.rb, line 59
def channels
  Asterisk::Action.new("Command", { "Command" => "show channels" }).send(@connection)
end
command(command) click to toggle source
# File lib/ami.rb, line 35
def command(command)
  Asterisk::Action.new("Command", {"Command" => command}).send(@connection)
end
connect() click to toggle source
# File lib/ami.rb, line 15
def connect
  begin
    @connection.connect
    self.connected = true
  rescue Exception => ex
    false
  end
end
core_show_channels() click to toggle source
# File lib/ami.rb, line 39
def core_show_channels
  Asterisk::Action.new("CoreShowChannels").send(@connection)
end
disconnect() click to toggle source
# File lib/ami.rb, line 24
def disconnect
  begin
    @connection.disconnect if self.connected
    self.connected = false
    true
  rescue Exception => ex
    puts ex
    false
  end
end
extension_state(exten,context) click to toggle source
# File lib/ami.rb, line 51
def extension_state(exten,context)
  Asterisk::Action.new("ExtensionState", {"Exten" => exten, "Context" => context}).send(@connection)
end
mailbox_count(exten, context="default") click to toggle source
# File lib/ami.rb, line 95
def mailbox_count(exten, context="default")
  Asterisk::Action.new("MailboxCount", {"Mailbox" => "#{exten}@#{context}"}).send(@connection)
end
mailbox_status(exten, context="default") click to toggle source
# File lib/ami.rb, line 91
def mailbox_status(exten, context="default")
  Asterisk::Action.new("MailboxStatus", {"Mailbox" => "#{exten}@#{context}"}).send(@connection)
end
meet_me_list() click to toggle source
# File lib/ami.rb, line 43
def meet_me_list
  Asterisk::Action.new("MeetMeList").send(@connection)
end
originate(caller,context,callee,priority,variable=nil) click to toggle source
# File lib/ami.rb, line 55
def originate(caller,context,callee,priority,variable=nil)
  Asterisk::Action.new("Originate", {"Channel" => caller, "Context" => context, "Exten" => callee, "Priority" => priority, "Callerid" => caller, "Timeout" => "30000", "Variable" => variable  }).send(@connection)
end
parked_calls() click to toggle source
# File lib/ami.rb, line 47
def parked_calls
  Asterisk::Action.new("ParkedCalls").send(@connection)
end
queue_add(queue, exten, penalty=2, paused=false, member_name) click to toggle source
# File lib/ami.rb, line 71
def queue_add(queue, exten, penalty=2, paused=false, member_name)
  Asterisk::Action.new("QueueAdd", {"Queue" => queue, "Interface" => exten, "Penalty" => penalty, "Paused" => paused, "MemberName" => member_name}).send(@connection)
end
queue_pause(queue, exten) click to toggle source
# File lib/ami.rb, line 75
def queue_pause(queue, exten)
  Asterisk::Action.new("QueuePause", {"Interface" => exten, "Paused" => paused}).send(@connection)
end
queue_remove(queue, exten) click to toggle source
# File lib/ami.rb, line 79
def queue_remove(queue, exten)
  Asterisk::Action.new("QueueRemove", {"Queue" => queue, "Interface" => exten}).send(@connection)
end
queue_status() click to toggle source
# File lib/ami.rb, line 83
def queue_status
  Asterisk::Action.new("QueueStatus").send(@connection)
end
queue_summary(queue) click to toggle source
# File lib/ami.rb, line 87
def queue_summary(queue)
  Asterisk::Action.new("QueueSummary", {"Queue" => queue}).send(@connection)
end
queues() click to toggle source
# File lib/ami.rb, line 67
def queues
  Asterisk::Action.new("Queues").send(@connection)
end
redirect(caller,context,callee,priority,variable=nil) click to toggle source
# File lib/ami.rb, line 63
def redirect(caller,context,callee,priority,variable=nil)
  Asterisk::Action.new("Redirect", {"Channel" => caller, "Context" => context, "Exten" => callee, "Priority" => priority, "Callerid" => caller, "Timeout" => "30000", "Variable" => variable}).send(@connection)
end