Class: RubyAsterisk::AMI
- Inherits:
-
Object
- Object
- RubyAsterisk::AMI
- Defined in:
- lib/ruby-asterisk.rb
Instance Attribute Summary collapse
-
#connected ⇒ Object
Returns the value of attribute connected.
-
#host ⇒ Object
Returns the value of attribute host.
-
#port ⇒ Object
Returns the value of attribute port.
Instance Method Summary collapse
- #command(command) ⇒ Object
- #connect ⇒ Object
- #core_show_channels ⇒ Object
- #disconnect ⇒ Object
- #extension_state(exten, context) ⇒ Object
-
#initialize(host, port) ⇒ AMI
constructor
A new instance of AMI.
- #login(username, password) ⇒ Object
- #meet_me_list ⇒ Object
- #originate(caller, context, callee, priority, variable = nil) ⇒ Object
- #parked_calls ⇒ Object
Constructor Details
#initialize(host, port) ⇒ AMI
Returns a new instance of AMI.
11 12 13 14 15 16 |
# File 'lib/ruby-asterisk.rb', line 11 def initialize(host,port) self.host = host.to_s self.port = port.to_i self.connected = false @session = nil end |
Instance Attribute Details
#connected ⇒ Object
Returns the value of attribute connected.
9 10 11 |
# File 'lib/ruby-asterisk.rb', line 9 def connected @connected end |
#host ⇒ Object
Returns the value of attribute host.
9 10 11 |
# File 'lib/ruby-asterisk.rb', line 9 def host @host end |
#port ⇒ Object
Returns the value of attribute port.
9 10 11 |
# File 'lib/ruby-asterisk.rb', line 9 def port @port end |
Instance Method Details
#command(command) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ruby-asterisk.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 ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/ruby-asterisk.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 ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/ruby-asterisk.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 ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/ruby-asterisk.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) ⇒ Object
95 96 97 98 99 100 101 102 103 104 |
# File 'lib/ruby-asterisk.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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ruby-asterisk.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 ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/ruby-asterisk.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) ⇒ Object
106 107 108 109 110 111 112 113 114 115 |
# File 'lib/ruby-asterisk.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" => 30) do |data| request.response_data << data end Response.new("Originate",request.response_data) end |
#parked_calls ⇒ Object
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/ruby-asterisk.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 |