Sha256: 58c6ad4e25d4b9dba9a40b96a79595e86e134eba7d16496c6a873650f0514c82
Contents?: true
Size: 1.12 KB
Versions: 11
Compression:
Stored size: 1.12 KB
Contents
# encoding: utf-8 require 'ruby_fs' module Punchblock module Connection class Freeswitch < GenericConnection attr_reader :translator, :stream attr_accessor :event_handler def initialize(options = {}) @translator = Translator::Freeswitch.new self, options[:media_engine], options[:default_voice] @stream_options = options.values_at(:host, :port, :password) @stream = new_fs_stream super() end def run pb_logger.debug "Starting the RubyFS stream" start_stream raise DisconnectedError end def stop stream.shutdown translator.terminate end def write(command, options) translator.execute_command! command, options end def handle_event(event) event_handler.call event if event_handler.respond_to?(:call) end private def new_fs_stream RubyFS::Stream.new(*@stream_options, lambda { |e| translator.handle_es_event! e }) end def start_stream @stream = new_fs_stream unless @stream.alive? @stream.run end end end end
Version data entries
11 entries across 11 versions & 1 rubygems