Class: RubyRabbitmqJanus::RRJTask

Inherits:
RRJ
  • Object
show all
Defined in:
lib/rrj/task.rb

Overview

# RubyRabbitmqJanus - Task

This class is used with rake task.

Direct Known Subclasses

RRJTaskAdmin

Instance Attribute Summary

Attributes inherited from RRJ

#session

Instance Method Summary collapse

Methods inherited from RRJ

#cleanup_connection

Constructor Details

#initializeRRJTask

Returns a new instance of RRJTask.



14
15
16
17
18
19
# File 'lib/rrj/task.rb', line 14

def initialize
  Tools::Config.instance
  Tools::Requests.instance
rescue
  raise Errors::RRJTask::Initialize
end

Instance Method Details

#handle_endpoint_private(options = {}) ⇒ Object

Create a transaction between Apps and Janus in queue private

:reek:FeatureEnvy

Examples:

Post a offer

options = {
  'instance' => 42,
  'session_id' => 71984735765,
  'handle_id' => 56753748917,
  'replace' => {
    'sdp' => 'v=0\r\no=[..more sdp stuff..]'
  }
}
@rrj.handle_endpoint_private(options) do |transaction|
  transaction.publish_message('peer::offer', options)
end

Since:

  • 2.7.0



113
114
115
116
117
118
119
120
121
# File 'lib/rrj/task.rb', line 113

def handle_endpoint_private(options = {})
  janus = session_instance(options)
  handle = 0 # Create always a new handle
  transaction = Janus::Transactions::Handle.new(true,
                                                janus.session,
                                                handle,
                                                janus.instance)
  transaction.connect { yield(transaction) }
end

#handle_endpoint_public(_options) ⇒ Object

For task is impossible to calling this method



85
86
87
# File 'lib/rrj/task.rb', line 85

def handle_endpoint_public(_options)
  nil
end

#session_endpoint_private(options = {}) ⇒ Object

Create a transaction between Apps and Janus in queue private

Examples:

Get Janus information

@rrj.session_endpoint_private do |transaction|
  response = transaction.publish_message('base::info').to_hash
end

Parameters:

  • options (Hash) (defaults to: {})

    Give a session number for use another session in Janus

Since:

  • 2.7.0



58
59
60
61
62
# File 'lib/rrj/task.rb', line 58

def session_endpoint_private(options = {})
  transaction = Janus::Transactions::Session.new(true,
                                                 options['session_id'])
  transaction.connect { yield(transaction) }
end

#session_endpoint_public(_options) ⇒ Object

For task is impossible to calling this method.



65
66
67
# File 'lib/rrj/task.rb', line 65

def session_endpoint_public(_options)
  nil
end

#start_transaction(options = {}) ⇒ Object

Deprecated.

Start a transaction with Janus. Request use session_id information.

Examples:

Get Janus information

@rrj.start_transaction do |transaction|
  response = transaction.publish_message('base::info').to_hash
end

Parameters:

  • options (Hash) (defaults to: {})

    Give a session number for use another session in Janus

Since:

  • 2.1.0



33
34
35
36
37
38
39
# File 'lib/rrj/task.rb', line 33

def start_transaction(options = {})
  transaction = Janus::Transactions::Session.new(true,
                                                 options['session_id'])
  transaction.connect { yield(transaction) }
rescue
  raise Errors::RRJ::StartTransaction.new(true, options)
end

#start_transaction_handle(exclusive = true, options = {}) ⇒ Object

Create a transaction between apps and janus with a handle

Since:

  • 2.1.0



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/rrj/task.rb', line 72

def start_transaction_handle(exclusive = true, options = {})
  janus = session_instance(options)
  handle = 0 # Create always a new handle
  transaction = Janus::Transactions::Handle.new(exclusive,
                                                janus.session,
                                                handle,
                                                janus.instance)
  transaction.connect { yield(transaction) }
rescue
  raise Errors::RRJTask::StartTransactionHandle.new(exclusive, options)
end