Class: AsteriskManager::ChannelEventObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/asterisk-manager/channel_event_observer.rb

Instance Method Summary collapse

Instance Method Details

#hangup(event) ⇒ Object



33
34
35
# File 'lib/asterisk-manager/channel_event_observer.rb', line 33

def hangup(event)
  Channel.channels.delete event['Uniqueid']
end

#new_channel(event) ⇒ Object



18
19
20
21
22
23
24
# 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) ⇒ Object



26
27
28
29
30
31
# 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) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# 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) ⇒ Object



3
4
5
# File 'lib/asterisk-manager/channel_event_observer.rb', line 3

def subscribe(event_listener)
  event_listener.subscribe self, 'Newchannel', 'Newstate', 'Hangup'
end