class AsteriskManager::Channel

Attributes

application_data[RW]
application_name[RW]
caller_id_name[RW]
caller_id_number[RW]
created_at[RW]
sip_id[RW]
state[RW]
unique_id[RW]

Public Class Methods

channels() click to toggle source
# File lib/asterisk-manager/channel.rb, line 47
def self.channels
  @channels ||= {}
end
for_unique_id(unique_id) click to toggle source
# File lib/asterisk-manager/channel.rb, line 51
def self.for_unique_id(unique_id)
  channels[unique_id] ||= new(unique_id: unique_id)
end
new(arguments = {}) click to toggle source
# File lib/asterisk-manager/channel.rb, line 12
def initialize(arguments = {})
  self.unique_id        = arguments[:unique_id]
  self.sip_id           = arguments[:sip_id]
  self.state            = arguments[:state]
  self.caller_id_number = arguments[:caller_id_number]
  self.caller_id_name   = arguments[:caller_id_name]
  self.application_name = arguments[:application_name]
  self.application_data = arguments[:application_data]
  self.created_at       = Time.now
end

Public Instance Methods

<=>(other_channel) click to toggle source
# File lib/asterisk-manager/channel.rb, line 43
def <=>(other_channel)
  unique_id.to_f <=> other_channel.unique_id.to_f
end
application() click to toggle source
# File lib/asterisk-manager/channel.rb, line 23
def application
  "#{application_name}(#{application_data})" if application_name.to_s.size > 0
end
caller_id() click to toggle source
# File lib/asterisk-manager/channel.rb, line 27
def caller_id
  "#{caller_id_number} #{caller_id_name}".strip
end
duration() click to toggle source
# File lib/asterisk-manager/channel.rb, line 35
def duration
  x = seconds.round
  hours   = x / 3600
  minutes = (x - hours * 3600) / 60
  seconds = (x - hours * 3600 - minutes * 60)
  "#{hours}:#{'%02d' % minutes}:#{'%02d' % seconds}"
end
seconds() click to toggle source
# File lib/asterisk-manager/channel.rb, line 31
def seconds
  Time.now - created_at
end