asterisk-ari-client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +85 -0
- data/Rakefile +54 -0
- data/asterisk-ari-client.gemspec +32 -0
- data/examples/list_channels.rb +14 -0
- data/examples/websocket.rb +33 -0
- data/lib/ari.rb +12 -0
- data/lib/ari/client.rb +124 -0
- data/lib/ari/generators/api.rb +23 -0
- data/lib/ari/generators/attribute.rb +35 -0
- data/lib/ari/generators/model.rb +38 -0
- data/lib/ari/generators/operation.rb +43 -0
- data/lib/ari/generators/parameter.rb +35 -0
- data/lib/ari/generators/property.rb +32 -0
- data/lib/ari/generators/resource_generator.rb +94 -0
- data/lib/ari/generators/templates/model.rb.erb +36 -0
- data/lib/ari/generators/templates/resource.rb.erb +97 -0
- data/lib/ari/list_resource.rb +23 -0
- data/lib/ari/model.rb +26 -0
- data/lib/ari/models.rb +47 -0
- data/lib/ari/models/.DS_Store +0 -0
- data/lib/ari/models/application_replaced.rb +17 -0
- data/lib/ari/models/asterisk_info.rb +35 -0
- data/lib/ari/models/bridge_attended_transfer.rb +63 -0
- data/lib/ari/models/bridge_blind_transfer.rb +35 -0
- data/lib/ari/models/bridge_created.rb +23 -0
- data/lib/ari/models/bridge_destroyed.rb +23 -0
- data/lib/ari/models/bridge_merged.rb +27 -0
- data/lib/ari/models/build_info.rb +19 -0
- data/lib/ari/models/caller_id.rb +19 -0
- data/lib/ari/models/channel_caller_id.rb +23 -0
- data/lib/ari/models/channel_created.rb +23 -0
- data/lib/ari/models/channel_destroyed.rb +23 -0
- data/lib/ari/models/channel_dialplan.rb +23 -0
- data/lib/ari/models/channel_dtmf_received.rb +23 -0
- data/lib/ari/models/channel_entered_bridge.rb +27 -0
- data/lib/ari/models/channel_hangup_request.rb +23 -0
- data/lib/ari/models/channel_left_bridge.rb +27 -0
- data/lib/ari/models/channel_state_change.rb +23 -0
- data/lib/ari/models/channel_talking_finished.rb +23 -0
- data/lib/ari/models/channel_talking_started.rb +23 -0
- data/lib/ari/models/channel_userevent.rb +35 -0
- data/lib/ari/models/channel_varset.rb +23 -0
- data/lib/ari/models/config_info.rb +27 -0
- data/lib/ari/models/device_state_changed.rb +23 -0
- data/lib/ari/models/dial.rb +31 -0
- data/lib/ari/models/dialed.rb +17 -0
- data/lib/ari/models/dialplan_cep.rb +19 -0
- data/lib/ari/models/endpoint_state_change.rb +23 -0
- data/lib/ari/models/format_lang_pair.rb +19 -0
- data/lib/ari/models/live_recording.rb +19 -0
- data/lib/ari/models/message.rb +19 -0
- data/lib/ari/models/missing_params.rb +19 -0
- data/lib/ari/models/playback_finished.rb +23 -0
- data/lib/ari/models/playback_started.rb +23 -0
- data/lib/ari/models/recording_failed.rb +23 -0
- data/lib/ari/models/recording_finished.rb +23 -0
- data/lib/ari/models/recording_started.rb +23 -0
- data/lib/ari/models/set_id.rb +19 -0
- data/lib/ari/models/stasis_end.rb +23 -0
- data/lib/ari/models/stasis_start.rb +27 -0
- data/lib/ari/models/status_info.rb +27 -0
- data/lib/ari/models/stored_recording.rb +19 -0
- data/lib/ari/models/system_info.rb +19 -0
- data/lib/ari/models/text_message.rb +23 -0
- data/lib/ari/models/text_message_received.rb +27 -0
- data/lib/ari/models/text_message_variable.rb +19 -0
- data/lib/ari/models/variable.rb +19 -0
- data/lib/ari/request_error.rb +8 -0
- data/lib/ari/resource.rb +37 -0
- data/lib/ari/resources.rb +11 -0
- data/lib/ari/resources/application.rb +101 -0
- data/lib/ari/resources/asterisk.rb +72 -0
- data/lib/ari/resources/bridge.rb +286 -0
- data/lib/ari/resources/channel.rb +610 -0
- data/lib/ari/resources/device_state.rb +98 -0
- data/lib/ari/resources/endpoint.rb +124 -0
- data/lib/ari/resources/event.rb +25 -0
- data/lib/ari/resources/mailbox.rb +99 -0
- data/lib/ari/resources/playback.rb +86 -0
- data/lib/ari/resources/recording.rb +241 -0
- data/lib/ari/resources/sound.rb +64 -0
- data/lib/ari/server_error.rb +8 -0
- data/lib/asterisk/ari/client.rb +10 -0
- data/lib/asterisk/ari/client/version.rb +7 -0
- data/test/fixtures/bridge_create.json +74 -0
- data/test/fixtures/bridge_get.json +74 -0
- data/test/fixtures/bridges_list.json +76 -0
- data/test/fixtures/channel_get.json +83 -0
- data/test/fixtures/channel_originate.json +83 -0
- data/test/fixtures/channel_originate_with_id.json +83 -0
- data/test/fixtures/channels_list.json +105 -0
- data/test/lib/asterisk-ari-client/.DS_Store +0 -0
- data/test/lib/asterisk-ari-client/bridge_test.rb +46 -0
- data/test/lib/asterisk-ari-client/channel_test.rb +59 -0
- data/test/test_helper.rb +42 -0
- metadata +265 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class DeviceState < Resource
|
|
14
|
+
|
|
15
|
+
attr_reader :name, :state
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# GET /deviceStates
|
|
19
|
+
#
|
|
20
|
+
# Device states
|
|
21
|
+
#
|
|
22
|
+
#
|
|
23
|
+
def self.list(options = {})
|
|
24
|
+
path = '/deviceStates'
|
|
25
|
+
response = client(options).get(path, options)
|
|
26
|
+
response.map { |hash| DeviceState.new(hash.merge(client: options[:client])) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# GET /deviceStates/%{deviceName}
|
|
30
|
+
#
|
|
31
|
+
# Device state
|
|
32
|
+
#
|
|
33
|
+
#
|
|
34
|
+
# Parameters:
|
|
35
|
+
#
|
|
36
|
+
# deviceName (required) - Name of the device
|
|
37
|
+
#
|
|
38
|
+
def self.get(options = {})
|
|
39
|
+
raise ArgumentError.new("Parameter deviceName must be passed in options hash.") unless options[:deviceName]
|
|
40
|
+
path = '/deviceStates/%{deviceName}' % options
|
|
41
|
+
response = client(options).get(path, options)
|
|
42
|
+
DeviceState.new(response.merge(client: options[:client]))
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def get(options = {})
|
|
46
|
+
self.class.get(options.merge(deviceStateId: self.id, client: @client))
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# PUT /deviceStates/%{deviceName}
|
|
50
|
+
#
|
|
51
|
+
# Device state
|
|
52
|
+
#
|
|
53
|
+
# Change the state of a device controlled by ARI. (Note - implicitly creates the d
|
|
54
|
+
#
|
|
55
|
+
# Parameters:
|
|
56
|
+
#
|
|
57
|
+
# deviceName (required) - Name of the device
|
|
58
|
+
# deviceState (required) - Device state value
|
|
59
|
+
#
|
|
60
|
+
def self.update(options = {})
|
|
61
|
+
raise ArgumentError.new("Parameter deviceName must be passed in options hash.") unless options[:deviceName]
|
|
62
|
+
raise ArgumentError.new("Parameter deviceState must be passed in options hash.") unless options[:deviceState]
|
|
63
|
+
path = '/deviceStates/%{deviceName}' % options
|
|
64
|
+
response = client(options).put(path, options)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def update(options = {})
|
|
68
|
+
self.class.update(options.merge(deviceStateId: self.id, client: @client))
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# DELETE /deviceStates/%{deviceName}
|
|
72
|
+
#
|
|
73
|
+
# Device state
|
|
74
|
+
#
|
|
75
|
+
#
|
|
76
|
+
# Parameters:
|
|
77
|
+
#
|
|
78
|
+
# deviceName (required) - Name of the device
|
|
79
|
+
#
|
|
80
|
+
def self.delete(options = {})
|
|
81
|
+
raise ArgumentError.new("Parameter deviceName must be passed in options hash.") unless options[:deviceName]
|
|
82
|
+
path = '/deviceStates/%{deviceName}' % options
|
|
83
|
+
response = client(options).delete(path, options)
|
|
84
|
+
rescue Ari::RequestError => e
|
|
85
|
+
raise unless e.code == '404'
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def delete(options = {})
|
|
89
|
+
self.class.delete(options.merge(deviceStateId: self.id, client: @client))
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
Ari::Client.send :define_method, 'device_states' do
|
|
97
|
+
Ari::ListResource.new(self, Ari::DeviceState)
|
|
98
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class Endpoint < Resource
|
|
14
|
+
|
|
15
|
+
attr_reader :technology, :resource, :state, :channel_ids
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# GET /endpoints
|
|
19
|
+
#
|
|
20
|
+
# Asterisk endpoints
|
|
21
|
+
#
|
|
22
|
+
#
|
|
23
|
+
def self.list(options = {})
|
|
24
|
+
path = '/endpoints'
|
|
25
|
+
response = client(options).get(path, options)
|
|
26
|
+
response.map { |hash| Endpoint.new(hash.merge(client: options[:client])) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# PUT /endpoints/sendMessage
|
|
30
|
+
#
|
|
31
|
+
# Send a message to some technology URI or endpoint.
|
|
32
|
+
#
|
|
33
|
+
#
|
|
34
|
+
# Parameters:
|
|
35
|
+
#
|
|
36
|
+
# to (required) - The endpoint resource or technology specific URI to send the message to. Valid resources are sip, pjsip, and xmpp.
|
|
37
|
+
# from (required) - The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.
|
|
38
|
+
# body - The body of the message
|
|
39
|
+
# variables -
|
|
40
|
+
#
|
|
41
|
+
def self.send_message(options = {})
|
|
42
|
+
raise ArgumentError.new("Parameter to must be passed in options hash.") unless options[:to]
|
|
43
|
+
raise ArgumentError.new("Parameter from must be passed in options hash.") unless options[:from]
|
|
44
|
+
path = '/endpoints/sendMessage'
|
|
45
|
+
response = client(options).put(path, options)
|
|
46
|
+
end
|
|
47
|
+
class << self; alias_method :sendMessage, :send_message; end
|
|
48
|
+
|
|
49
|
+
# GET /endpoints/%{tech}
|
|
50
|
+
#
|
|
51
|
+
# Asterisk endpoints
|
|
52
|
+
#
|
|
53
|
+
#
|
|
54
|
+
# Parameters:
|
|
55
|
+
#
|
|
56
|
+
# tech (required) - Technology of the endpoints (sip,iax2,...)
|
|
57
|
+
#
|
|
58
|
+
def self.list_by_tech(options = {})
|
|
59
|
+
raise ArgumentError.new("Parameter tech must be passed in options hash.") unless options[:tech]
|
|
60
|
+
path = '/endpoints/%{tech}' % options
|
|
61
|
+
response = client(options).get(path, options)
|
|
62
|
+
response.map { |hash| Endpoint.new(hash.merge(client: options[:client])) }
|
|
63
|
+
end
|
|
64
|
+
class << self; alias_method :listByTech, :list_by_tech; end
|
|
65
|
+
|
|
66
|
+
def list_by_tech(options = {})
|
|
67
|
+
self.class.list_by_tech(options.merge(endpointId: self.id, client: @client))
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# GET /endpoints/%{tech}/%{resource}
|
|
71
|
+
#
|
|
72
|
+
# Single endpoint
|
|
73
|
+
#
|
|
74
|
+
#
|
|
75
|
+
# Parameters:
|
|
76
|
+
#
|
|
77
|
+
# tech (required) - Technology of the endpoint
|
|
78
|
+
# resource (required) - ID of the endpoint
|
|
79
|
+
#
|
|
80
|
+
def self.get(options = {})
|
|
81
|
+
raise ArgumentError.new("Parameter tech must be passed in options hash.") unless options[:tech]
|
|
82
|
+
raise ArgumentError.new("Parameter resource must be passed in options hash.") unless options[:resource]
|
|
83
|
+
path = '/endpoints/%{tech}/%{resource}' % options
|
|
84
|
+
response = client(options).get(path, options)
|
|
85
|
+
Endpoint.new(response.merge(client: options[:client]))
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def get(options = {})
|
|
89
|
+
self.class.get(options.merge(endpointId: self.id, client: @client))
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# PUT /endpoints/%{tech}/%{resource}/sendMessage
|
|
93
|
+
#
|
|
94
|
+
# Send a message to some endpoint in a technology.
|
|
95
|
+
#
|
|
96
|
+
#
|
|
97
|
+
# Parameters:
|
|
98
|
+
#
|
|
99
|
+
# tech (required) - Technology of the endpoint
|
|
100
|
+
# resource (required) - ID of the endpoint
|
|
101
|
+
# from (required) - The endpoint resource or technology specific identity to send this message from. Valid resources are sip, pjsip, and xmpp.
|
|
102
|
+
# body - The body of the message
|
|
103
|
+
# variables -
|
|
104
|
+
#
|
|
105
|
+
def self.send_message_to_endpoint(options = {})
|
|
106
|
+
raise ArgumentError.new("Parameter tech must be passed in options hash.") unless options[:tech]
|
|
107
|
+
raise ArgumentError.new("Parameter resource must be passed in options hash.") unless options[:resource]
|
|
108
|
+
raise ArgumentError.new("Parameter from must be passed in options hash.") unless options[:from]
|
|
109
|
+
path = '/endpoints/%{tech}/%{resource}/sendMessage' % options
|
|
110
|
+
response = client(options).put(path, options)
|
|
111
|
+
end
|
|
112
|
+
class << self; alias_method :sendMessageToEndpoint, :send_message_to_endpoint; end
|
|
113
|
+
|
|
114
|
+
def send_message_to_endpoint(options = {})
|
|
115
|
+
self.class.send_message_to_endpoint(options.merge(endpointId: self.id, client: @client))
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
Ari::Client.send :define_method, 'endpoints' do
|
|
123
|
+
Ari::ListResource.new(self, Ari::Endpoint)
|
|
124
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class Event < Model
|
|
14
|
+
|
|
15
|
+
attr_reader :application, :timestamp
|
|
16
|
+
|
|
17
|
+
def timestamp=(val)
|
|
18
|
+
@timestamp ||= Time.parse(val)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class Mailbox < Resource
|
|
14
|
+
|
|
15
|
+
attr_reader :name, :old_messages, :new_messages
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# GET /mailboxes
|
|
19
|
+
#
|
|
20
|
+
# Mailboxes
|
|
21
|
+
#
|
|
22
|
+
#
|
|
23
|
+
def self.list(options = {})
|
|
24
|
+
path = '/mailboxes'
|
|
25
|
+
response = client(options).get(path, options)
|
|
26
|
+
response.map { |hash| Mailbox.new(hash.merge(client: options[:client])) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# GET /mailboxes/%{mailboxName}
|
|
30
|
+
#
|
|
31
|
+
# Mailbox state
|
|
32
|
+
#
|
|
33
|
+
#
|
|
34
|
+
# Parameters:
|
|
35
|
+
#
|
|
36
|
+
# mailboxName (required) - Name of the mailbox
|
|
37
|
+
#
|
|
38
|
+
def self.get(options = {})
|
|
39
|
+
raise ArgumentError.new("Parameter mailboxName must be passed in options hash.") unless options[:mailboxName]
|
|
40
|
+
path = '/mailboxes/%{mailboxName}' % options
|
|
41
|
+
response = client(options).get(path, options)
|
|
42
|
+
Mailbox.new(response.merge(client: options[:client]))
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def get(options = {})
|
|
46
|
+
self.class.get(options.merge(mailboxId: self.id, client: @client))
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# PUT /mailboxes/%{mailboxName}
|
|
50
|
+
#
|
|
51
|
+
# Mailbox state
|
|
52
|
+
#
|
|
53
|
+
#
|
|
54
|
+
# Parameters:
|
|
55
|
+
#
|
|
56
|
+
# mailboxName (required) - Name of the mailbox
|
|
57
|
+
# oldMessages (required) - Count of old messages in the mailbox
|
|
58
|
+
# newMessages (required) - Count of new messages in the mailbox
|
|
59
|
+
#
|
|
60
|
+
def self.update(options = {})
|
|
61
|
+
raise ArgumentError.new("Parameter mailboxName must be passed in options hash.") unless options[:mailboxName]
|
|
62
|
+
raise ArgumentError.new("Parameter oldMessages must be passed in options hash.") unless options[:oldMessages]
|
|
63
|
+
raise ArgumentError.new("Parameter newMessages must be passed in options hash.") unless options[:newMessages]
|
|
64
|
+
path = '/mailboxes/%{mailboxName}' % options
|
|
65
|
+
response = client(options).put(path, options)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def update(options = {})
|
|
69
|
+
self.class.update(options.merge(mailboxId: self.id, client: @client))
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# DELETE /mailboxes/%{mailboxName}
|
|
73
|
+
#
|
|
74
|
+
# Mailbox state
|
|
75
|
+
#
|
|
76
|
+
#
|
|
77
|
+
# Parameters:
|
|
78
|
+
#
|
|
79
|
+
# mailboxName (required) - Name of the mailbox
|
|
80
|
+
#
|
|
81
|
+
def self.delete(options = {})
|
|
82
|
+
raise ArgumentError.new("Parameter mailboxName must be passed in options hash.") unless options[:mailboxName]
|
|
83
|
+
path = '/mailboxes/%{mailboxName}' % options
|
|
84
|
+
response = client(options).delete(path, options)
|
|
85
|
+
rescue Ari::RequestError => e
|
|
86
|
+
raise unless e.code == '404'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def delete(options = {})
|
|
90
|
+
self.class.delete(options.merge(mailboxId: self.id, client: @client))
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
Ari::Client.send :define_method, 'mailboxes' do
|
|
98
|
+
Ari::ListResource.new(self, Ari::Mailbox)
|
|
99
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class Playback < Resource
|
|
14
|
+
|
|
15
|
+
attr_reader :id, :media_uri, :target_uri, :language, :state
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# GET /playbacks/%{playbackId}
|
|
19
|
+
#
|
|
20
|
+
# Control object for a playback operation.
|
|
21
|
+
#
|
|
22
|
+
#
|
|
23
|
+
# Parameters:
|
|
24
|
+
#
|
|
25
|
+
# playbackId (required) - Playback's id
|
|
26
|
+
#
|
|
27
|
+
def self.get(options = {})
|
|
28
|
+
raise ArgumentError.new("Parameter playbackId must be passed in options hash.") unless options[:playbackId]
|
|
29
|
+
path = '/playbacks/%{playbackId}' % options
|
|
30
|
+
response = client(options).get(path, options)
|
|
31
|
+
Playback.new(response.merge(client: options[:client]))
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def get(options = {})
|
|
35
|
+
self.class.get(options.merge(playbackId: self.id, client: @client))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# DELETE /playbacks/%{playbackId}
|
|
39
|
+
#
|
|
40
|
+
# Control object for a playback operation.
|
|
41
|
+
#
|
|
42
|
+
#
|
|
43
|
+
# Parameters:
|
|
44
|
+
#
|
|
45
|
+
# playbackId (required) - Playback's id
|
|
46
|
+
#
|
|
47
|
+
def self.stop(options = {})
|
|
48
|
+
raise ArgumentError.new("Parameter playbackId must be passed in options hash.") unless options[:playbackId]
|
|
49
|
+
path = '/playbacks/%{playbackId}' % options
|
|
50
|
+
response = client(options).delete(path, options)
|
|
51
|
+
rescue Ari::RequestError => e
|
|
52
|
+
raise unless e.code == '404'
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def stop(options = {})
|
|
56
|
+
self.class.stop(options.merge(playbackId: self.id, client: @client))
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# POST /playbacks/%{playbackId}/control
|
|
60
|
+
#
|
|
61
|
+
# Control object for a playback operation.
|
|
62
|
+
#
|
|
63
|
+
#
|
|
64
|
+
# Parameters:
|
|
65
|
+
#
|
|
66
|
+
# playbackId (required) - Playback's id
|
|
67
|
+
# operation (required) - Operation to perform on the playback.
|
|
68
|
+
#
|
|
69
|
+
def self.control(options = {})
|
|
70
|
+
raise ArgumentError.new("Parameter playbackId must be passed in options hash.") unless options[:playbackId]
|
|
71
|
+
raise ArgumentError.new("Parameter operation must be passed in options hash.") unless options[:operation]
|
|
72
|
+
path = '/playbacks/%{playbackId}/control' % options
|
|
73
|
+
response = client(options).post(path, options)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def control(options = {})
|
|
77
|
+
self.class.control(options.merge(playbackId: self.id, client: @client))
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
Ari::Client.send :define_method, 'playbacks' do
|
|
85
|
+
Ari::ListResource.new(self, Ari::Playback)
|
|
86
|
+
end
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
#
|
|
3
|
+
# WARNING !
|
|
4
|
+
#
|
|
5
|
+
# This is a generated file. DO NOT EDIT THIS FILE! Your changes will
|
|
6
|
+
# be lost the next time this file is regenerated.
|
|
7
|
+
#
|
|
8
|
+
# This file was generated using asterisk-ari-client ruby gem.
|
|
9
|
+
#
|
|
10
|
+
#------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
module Ari
|
|
13
|
+
class Recording < Resource
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# GET /recordings/stored
|
|
17
|
+
#
|
|
18
|
+
# Recordings
|
|
19
|
+
#
|
|
20
|
+
#
|
|
21
|
+
def self.list_stored(options = {})
|
|
22
|
+
path = '/recordings/stored'
|
|
23
|
+
response = client(options).get(path, options)
|
|
24
|
+
response.map { |hash| StoredRecording.new(hash.merge(client: options[:client])) }
|
|
25
|
+
end
|
|
26
|
+
class << self; alias_method :listStored, :list_stored; end
|
|
27
|
+
|
|
28
|
+
# GET /recordings/stored/%{recordingName}
|
|
29
|
+
#
|
|
30
|
+
# Individual recording
|
|
31
|
+
#
|
|
32
|
+
#
|
|
33
|
+
# Parameters:
|
|
34
|
+
#
|
|
35
|
+
# recordingName (required) - The name of the recording
|
|
36
|
+
#
|
|
37
|
+
def self.get_stored(options = {})
|
|
38
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
39
|
+
path = '/recordings/stored/%{recordingName}' % options
|
|
40
|
+
response = client(options).get(path, options)
|
|
41
|
+
StoredRecording.new(response.merge(client: options[:client]))
|
|
42
|
+
end
|
|
43
|
+
class << self; alias_method :getStored, :get_stored; end
|
|
44
|
+
|
|
45
|
+
def get_stored(options = {})
|
|
46
|
+
self.class.get_stored(options.merge(recordingId: self.id, client: @client))
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# DELETE /recordings/stored/%{recordingName}
|
|
50
|
+
#
|
|
51
|
+
# Individual recording
|
|
52
|
+
#
|
|
53
|
+
#
|
|
54
|
+
# Parameters:
|
|
55
|
+
#
|
|
56
|
+
# recordingName (required) - The name of the recording
|
|
57
|
+
#
|
|
58
|
+
def self.delete_stored(options = {})
|
|
59
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
60
|
+
path = '/recordings/stored/%{recordingName}' % options
|
|
61
|
+
response = client(options).delete(path, options)
|
|
62
|
+
rescue Ari::RequestError => e
|
|
63
|
+
raise unless e.code == '404'
|
|
64
|
+
end
|
|
65
|
+
class << self; alias_method :deleteStored, :delete_stored; end
|
|
66
|
+
|
|
67
|
+
def delete_stored(options = {})
|
|
68
|
+
self.class.delete_stored(options.merge(recordingId: self.id, client: @client))
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# POST /recordings/stored/%{recordingName}/copy
|
|
72
|
+
#
|
|
73
|
+
# Copy an individual recording
|
|
74
|
+
#
|
|
75
|
+
#
|
|
76
|
+
# Parameters:
|
|
77
|
+
#
|
|
78
|
+
# recordingName (required) - The name of the recording to copy
|
|
79
|
+
# destinationRecordingName (required) - The destination name of the recording
|
|
80
|
+
#
|
|
81
|
+
def self.copy_stored(options = {})
|
|
82
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
83
|
+
raise ArgumentError.new("Parameter destinationRecordingName must be passed in options hash.") unless options[:destinationRecordingName]
|
|
84
|
+
path = '/recordings/stored/%{recordingName}/copy' % options
|
|
85
|
+
response = client(options).post(path, options)
|
|
86
|
+
StoredRecording.new(response.merge(client: options[:client]))
|
|
87
|
+
end
|
|
88
|
+
class << self; alias_method :copyStored, :copy_stored; end
|
|
89
|
+
|
|
90
|
+
def copy_stored(options = {})
|
|
91
|
+
self.class.copy_stored(options.merge(recordingId: self.id, client: @client))
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# GET /recordings/live/%{recordingName}
|
|
95
|
+
#
|
|
96
|
+
# A recording that is in progress
|
|
97
|
+
#
|
|
98
|
+
#
|
|
99
|
+
# Parameters:
|
|
100
|
+
#
|
|
101
|
+
# recordingName (required) - The name of the recording
|
|
102
|
+
#
|
|
103
|
+
def self.get_live(options = {})
|
|
104
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
105
|
+
path = '/recordings/live/%{recordingName}' % options
|
|
106
|
+
response = client(options).get(path, options)
|
|
107
|
+
LiveRecording.new(response.merge(client: options[:client]))
|
|
108
|
+
end
|
|
109
|
+
class << self; alias_method :getLive, :get_live; end
|
|
110
|
+
|
|
111
|
+
def get_live(options = {})
|
|
112
|
+
self.class.get_live(options.merge(recordingId: self.id, client: @client))
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# DELETE /recordings/live/%{recordingName}
|
|
116
|
+
#
|
|
117
|
+
# A recording that is in progress
|
|
118
|
+
#
|
|
119
|
+
#
|
|
120
|
+
# Parameters:
|
|
121
|
+
#
|
|
122
|
+
# recordingName (required) - The name of the recording
|
|
123
|
+
#
|
|
124
|
+
def self.cancel(options = {})
|
|
125
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
126
|
+
path = '/recordings/live/%{recordingName}' % options
|
|
127
|
+
response = client(options).delete(path, options)
|
|
128
|
+
rescue Ari::RequestError => e
|
|
129
|
+
raise unless e.code == '404'
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def cancel(options = {})
|
|
133
|
+
self.class.cancel(options.merge(recordingId: self.id, client: @client))
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# POST /recordings/live/%{recordingName}/stop
|
|
137
|
+
#
|
|
138
|
+
#
|
|
139
|
+
#
|
|
140
|
+
#
|
|
141
|
+
# Parameters:
|
|
142
|
+
#
|
|
143
|
+
# recordingName (required) - The name of the recording
|
|
144
|
+
#
|
|
145
|
+
def self.stop(options = {})
|
|
146
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
147
|
+
path = '/recordings/live/%{recordingName}/stop' % options
|
|
148
|
+
response = client(options).post(path, options)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def stop(options = {})
|
|
152
|
+
self.class.stop(options.merge(recordingId: self.id, client: @client))
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# POST /recordings/live/%{recordingName}/pause
|
|
156
|
+
#
|
|
157
|
+
#
|
|
158
|
+
#
|
|
159
|
+
#
|
|
160
|
+
# Parameters:
|
|
161
|
+
#
|
|
162
|
+
# recordingName (required) - The name of the recording
|
|
163
|
+
#
|
|
164
|
+
def self.pause(options = {})
|
|
165
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
166
|
+
path = '/recordings/live/%{recordingName}/pause' % options
|
|
167
|
+
response = client(options).post(path, options)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def pause(options = {})
|
|
171
|
+
self.class.pause(options.merge(recordingId: self.id, client: @client))
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# DELETE /recordings/live/%{recordingName}/pause
|
|
175
|
+
#
|
|
176
|
+
#
|
|
177
|
+
#
|
|
178
|
+
#
|
|
179
|
+
# Parameters:
|
|
180
|
+
#
|
|
181
|
+
# recordingName (required) - The name of the recording
|
|
182
|
+
#
|
|
183
|
+
def self.unpause(options = {})
|
|
184
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
185
|
+
path = '/recordings/live/%{recordingName}/pause' % options
|
|
186
|
+
response = client(options).delete(path, options)
|
|
187
|
+
rescue Ari::RequestError => e
|
|
188
|
+
raise unless e.code == '404'
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def unpause(options = {})
|
|
192
|
+
self.class.unpause(options.merge(recordingId: self.id, client: @client))
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
# POST /recordings/live/%{recordingName}/mute
|
|
196
|
+
#
|
|
197
|
+
#
|
|
198
|
+
#
|
|
199
|
+
#
|
|
200
|
+
# Parameters:
|
|
201
|
+
#
|
|
202
|
+
# recordingName (required) - The name of the recording
|
|
203
|
+
#
|
|
204
|
+
def self.mute(options = {})
|
|
205
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
206
|
+
path = '/recordings/live/%{recordingName}/mute' % options
|
|
207
|
+
response = client(options).post(path, options)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def mute(options = {})
|
|
211
|
+
self.class.mute(options.merge(recordingId: self.id, client: @client))
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
# DELETE /recordings/live/%{recordingName}/mute
|
|
215
|
+
#
|
|
216
|
+
#
|
|
217
|
+
#
|
|
218
|
+
#
|
|
219
|
+
# Parameters:
|
|
220
|
+
#
|
|
221
|
+
# recordingName (required) - The name of the recording
|
|
222
|
+
#
|
|
223
|
+
def self.unmute(options = {})
|
|
224
|
+
raise ArgumentError.new("Parameter recordingName must be passed in options hash.") unless options[:recordingName]
|
|
225
|
+
path = '/recordings/live/%{recordingName}/mute' % options
|
|
226
|
+
response = client(options).delete(path, options)
|
|
227
|
+
rescue Ari::RequestError => e
|
|
228
|
+
raise unless e.code == '404'
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def unmute(options = {})
|
|
232
|
+
self.class.unmute(options.merge(recordingId: self.id, client: @client))
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
Ari::Client.send :define_method, 'recordings' do
|
|
240
|
+
Ari::ListResource.new(self, Ari::Recording)
|
|
241
|
+
end
|