class AsteriskManager::ChannelEventObserver

Public Instance Methods

hangup(event) click to toggle source
# File lib/asterisk-manager/channel_event_observer.rb, line 33
def hangup(event)
  Channel.channels.delete event['Uniqueid']
end
new_channel(event) click to toggle source
# File lib/asterisk-manager/channel_event_observer.rb, line 18
def new_channel(event)
  channel                  = Channel.for_unique_id(event['Uniqueid'])
  channel.sip_id           = event['Channel']
  channel.state            = event['ChannelStateDesc']
  channel.caller_id_number = event['CallerIDNum']
  channel.caller_id_name   = event['CallerIDName']
end
new_state(event) click to toggle source
# File lib/asterisk-manager/channel_event_observer.rb, line 26
def new_state(event)
  channel                  = Channel.for_unique_id(event['Uniqueid'])
  channel.state            = event['ChannelStateDesc']
  channel.caller_id_number = event['CallerIDNum']
  channel.caller_id_name   = event['CallerIDName']
end
receive_event(event) click to toggle source
# File lib/asterisk-manager/channel_event_observer.rb, line 7
def receive_event(event)
  case event.type
  when 'Newchannel'
    new_channel(event)
  when 'Newstate'
    new_state(event)
  when 'Hangup'
    hangup(event)
  end
end
subscribe(event_listener) click to toggle source
# File lib/asterisk-manager/channel_event_observer.rb, line 3
def subscribe(event_listener)
  event_listener.subscribe self, 'Newchannel', 'Newstate', 'Hangup'
end