Class: Vonage::Video
- Inherits:
-
Namespace
- Object
- Namespace
- Vonage::Video
show all
- Defined in:
- lib/vonage/video.rb
Defined Under Namespace
Classes: Archives, Broadcasts, Moderation, SIP, Signals, Streams
Instance Method Summary
collapse
Instance Method Details
79
80
81
|
# File 'lib/vonage/video.rb', line 79
def archives
@archives ||= Archives.new(@config)
end
|
85
86
87
|
# File 'lib/vonage/video.rb', line 85
def broadcasts
@broadcasts ||= Broadcasts.new(@config)
end
|
#create_session(**params) ⇒ Response
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/vonage/video.rb', line 31
def create_session(**params)
request_params = params.clone
request_params[:archive_mode] ||= 'manual'
media_mode = request_params.delete(:media_mode) || 'routed'
if media_mode == 'relayed' && request_params[:archive_mode] == 'manual'
request_params['p2p.preference'] = 'enabled'
else
request_params['p2p.preference'] = 'disabled'
end
response = request('/session/create', params: camelcase(request_params), type: Post)
public_response_data = {
session_id: response.entity.first.session_id,
archive_mode: request_params[:archive_mode],
media_mode: media_mode,
location: request_params[:location]
}
entity = Entity.new(public_response_data)
response.class.new(entity, response.http_response)
end
|
#generate_client_token(session_id:, scope: 'session.connect', role: 'publisher', **params) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/vonage/video.rb', line 56
def generate_client_token(session_id:, scope: 'session.connect', role: 'publisher', **params)
claims = {
application_id: @config.application_id,
scope: scope,
session_id: session_id,
role: role,
initial_layout_class_list: '',
sub: 'video',
acl: {
paths: {'/session/**' => {}}
}
}
claims[:data] = params[:data] if params[:data]
claims[:initial_layout_class_list] = params[:initial_layout_class_list].join(' ') if params[:initial_layout_class_list]
claims[:exp] = params[:expire_time].to_i if params[:expire_time]
JWT.generate(claims, @config.private_key)
end
|
91
92
93
|
# File 'lib/vonage/video.rb', line 91
def moderation
@moderation ||= Moderation.new(@config)
end
|
97
98
99
|
# File 'lib/vonage/video.rb', line 97
def signals
@signals ||= Signals.new(@config)
end
|
103
104
105
|
# File 'lib/vonage/video.rb', line 103
def streams
@streams ||= Streams.new(@config)
end
|