class Punchblock::Translator::Asterisk::Component::Component

Attributes

call[R]
call_id[R]
id[R]

Public Class Methods

new(component_node, call = nil) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 22
def initialize(component_node, call = nil)
  @component_node, @call = component_node, call
  @call_id = call.id if call
  @id = Punchblock.new_uuid
  @complete = false
  setup
end

Public Instance Methods

call_ended() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 57
def call_ended
  send_complete_event Punchblock::Event::Complete::Hangup.new
end
execute_command(command) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 33
def execute_command(command)
  command.response = ProtocolError.new.setup 'command-not-acceptable', "Did not understand command for component #{id}", call_id, id
end
logger_id() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 53
def logger_id
  "#{self.class}: #{call_id ? "Call ID: #{call_id}, Component ID: #{id}" : id}"
end
send_complete_event(reason, recording = nil) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 37
def send_complete_event(reason, recording = nil)
  return if @complete
  @complete = true
  event = Punchblock::Event::Complete.new reason: reason, recording: recording
  send_event event
  call.deregister_component id if call
  translator.deregister_component id
end
send_event(event) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 46
def send_event(event)
  event.component_id    = id
  event.target_call_id  = call_id
  event.source_uri      = id
  translator.handle_pb_event event
end
setup() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 30
def setup
end

Private Instance Methods

ami_client() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 67
def ami_client
  translator.ami_client
end
complete_with_error(error) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 83
def complete_with_error(error)
  send_complete_event Punchblock::Event::Complete::Error.new(details: error)
end
send_ref() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 75
def send_ref
  set_node_response Ref.new uri: id
end
set_node_response(value) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 71
def set_node_response(value)
  @component_node.response = value
end
translator() click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 63
def translator
  @translator ||= call.translator
end
with_error(name, text) click to toggle source
# File lib/punchblock/translator/asterisk/component.rb, line 79
def with_error(name, text)
  set_node_response ProtocolError.new.setup(name, text)
end