Sha256: 3e7f3fd8e099195cd558b0869bdb7b20c09f7480f82a0addfd06ff346a810ff0

Contents?: true

Size: 1.69 KB

Versions: 2

Compression:

Stored size: 1.69 KB

Contents

module Matrioska
  module DialWithApps
    def dial_with_local_apps(to, options = {}, &block)
      dial = Adhearsion::CallController::Dial::ParallelConfirmationDial.new to, options, call

      runner = Matrioska::AppRunner.new call
      yield runner, dial
      runner.start

      dial.track_originating_call
      dial.prep_calls
      dial.place_calls
      dial.await_completion
      dial.cleanup_calls
      dial.status
    end

    def dial_with_remote_apps(to, options = {}, &block)
      dial = Adhearsion::CallController::Dial::ParallelConfirmationDial.new to, options, call

      dial.track_originating_call

      dial.prep_calls do |new_call|
        new_call.on_joined call do
          runner = Matrioska::AppRunner.new new_call
          yield runner, dial
          runner.start
        end
      end

      dial.place_calls
      dial.await_completion
      dial.cleanup_calls
      dial.status
    end

    def dial_with_apps(to, options = {}, &block)
      dial = Adhearsion::CallController::Dial::ParallelConfirmationDial.new to, options, call
      yield dial

      local_runner = Matrioska::AppRunner.new call
      @local_runner_block.call local_runner
      local_runner.start

      dial.prep_calls do |new_call|
        new_call.on_joined call do
          remote_runner = Matrioska::AppRunner.new new_call
          @remote_runner_block.call remote_runner
          remote_runner.start
        end
      end

      dial.track_originating_call
      dial.place_calls
      dial.await_completion
      dial.cleanup_calls
      dial.status
    end

  private

    def local(&block)
      @local_runner_block = block
    end

    def remote(&block)
      @remote_runner_block = block
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
matrioska-0.2.1 lib/matrioska/dial_with_apps.rb
matrioska-0.2.0 lib/matrioska/dial_with_apps.rb