Sha256: d31989475ec248d317f8589e2710417bfd0b96e17e5dfce0851b76151b352518

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

module Adhearsion
  module VoIP
    module Asterisk
      module Manager


        ##
        # This is the object containing a response from Asterisk.
        #
        # Note: not all responses have an ActionID!
        #
        class ManagerInterfaceResponse

          class << self
            def from_immediate_response(text)
              returning new do |instance|
                instance.text_body = text
              end
            end
          end

          attr_accessor :action,
                        :action_id,
                        :text_body  # For "Response: Follows" sections
          attr_reader   :events

          def initialize
            @headers = HashWithIndifferentAccess.new
          end

          def has_text_body?
            !! @text_body
          end

          def headers
            @headers.clone
          end

          def [](arg)
            @headers[arg]
          end

          def []=(key,value)
            @headers[key] = value
          end

        end

        class ManagerInterfaceError < StandardError

          attr_accessor :message
          def initialize
            @headers = HashWithIndifferentAccess.new
          end

          def [](key)
            @headers[key]
          end

          def []=(key,value)
            @headers[key] = value
          end

        end

        class ManagerInterfaceEvent < ManagerInterfaceResponse

          attr_reader :name
          def initialize(name)
            super()
            @name = name
          end

        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
adhearsion-0.8.6 lib/adhearsion/voip/asterisk/manager_interface/ami_messages.rb
adhearsion-0.8.5 lib/adhearsion/voip/asterisk/manager_interface/ami_messages.rb