Sha256: 4cd409d5568c9db443311fbaeb26bc417b0343124cb40d642acc501e23d8d572
Contents?: true
Size: 1.93 KB
Versions: 3
Compression:
Stored size: 1.93 KB
Contents
# encoding: utf-8 require 'adhearsion/event' module Adhearsion class Event class Complete < Event register :complete, :ext attribute :reason attribute :recording attribute :fax attribute :fax_metadata, Hash, default: {} def inherit(xml_node) if reason_node = xml_node.at_xpath('*') self.reason = Adhearsion::Rayo::RayoNode.from_xml(reason_node).tap do |reason| reason.target_call_id = target_call_id reason.component_id = component_id end end if recording_node = xml_node.at_xpath('//ns:recording', ns: Rayo::RAYO_NAMESPACES[:record_complete]) self.recording = Adhearsion::Rayo::RayoNode.from_xml(recording_node).tap do |recording| recording.target_call_id = target_call_id recording.component_id = component_id end end if fax_node = xml_node.at_xpath('//ns:fax', ns: Rayo::RAYO_NAMESPACES[:fax_complete]) self.fax = Adhearsion::Rayo::RayoNode.from_xml(fax_node).tap do |fax| fax.target_call_id = target_call_id fax.component_id = component_id end end xml_node.xpath('//ns:metadata', ns: Rayo::RAYO_NAMESPACES[:fax_complete]).each do |md| fax_metadata[md['name']] = md['value'] end super end class Reason < Event attribute :name, Symbol, default: ->(node,_) { node.class.registered_name.to_sym } def inherit(xml_node) self.name = xml_node.name.to_sym super end end class Stop < Reason register :stop, :ext_complete end class Hangup < Reason register :hangup, :ext_complete end class Error < Reason register :error, :ext_complete attribute :details def inherit(xml_node) self.details = xml_node.text.strip super end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
adhearsion-3.0.0.rc1 | lib/adhearsion/event/complete.rb |
adhearsion-3.0.0.beta2 | lib/adhearsion/event/complete.rb |
adhearsion-3.0.0.beta1 | lib/adhearsion/event/complete.rb |