Sha256: d02affb3722b99b337f675e80f856d671c2cf07104808f06f8f2ec850e02e9d3
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
# encoding: utf-8 module Adhearsion ## # This manages the list of calls the Adhearsion service receives class Calls < Hash include Celluloid trap_exit :call_died def from_offer(offer) Call.new(offer).tap do |call| self << call end end def <<(call) link call self[call.id] = call current_actor end def remove_inactive_call(call) if call_is_dead?(call) != nil call_id = key call delete call_id if call_id elsif call.respond_to?(:id) delete call.id else delete call end end def with_tag(tag) find_all do |call| call.tagged_with? tag end end def each(&block) values.each(&block) end private def call_is_dead?(call) !call.alive? rescue NoMethodError end def call_died(call, reason) catching_standard_errors do call_id = key call remove_inactive_call call PunchblockPlugin.client.execute_command Punchblock::Command::Hangup, :async => true, :call_id => call_id end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
adhearsion-2.0.0.rc2 | lib/adhearsion/calls.rb |