twilio-ruby 5.2.0 → 5.2.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.
@@ -1,141 +1,104 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
1
7
  module Twilio
2
8
  module TwiML
3
- # Messaging TwiML Response
9
+ ##
10
+ # <Response> TwiML for Messages
4
11
  class MessagingResponse < TwiML
5
- # Create a new <Response>
6
- def initialize
7
- super()
8
- self.name = 'Response'
12
+ def initialize(**keyword_args)
13
+ super(**keyword_args)
14
+ @name = 'Response'
15
+
9
16
  yield(self) if block_given?
10
17
  end
11
18
 
12
- # Create a <Message> element
13
- #
14
- # == Parameters:
15
- # body:: body of the message
16
- # to:: number to send to
17
- # from_:: number to send from
18
- # method:: action HTTP method
19
- # action:: action URL
20
- # status_callback:: callback URL
19
+ ##
20
+ # Create a new <Message> element
21
+ # message:: Message Body
22
+ # to:: Phone Number to send Message to
23
+ # from:: Phone Number to send Message from
24
+ # action:: Action URL
25
+ # method:: Action URL Method
21
26
  # keyword_args:: additional attributes
22
- #
23
- # == Returns:
24
- # A <Response> element with a <Message> child element
25
- def message(body: nil, to: nil, from: nil, method: nil, action: nil, status_callback: nil, **keyword_args)
26
- message = Message.new(
27
- body: body,
28
- to: to,
29
- from: from,
30
- method: method,
31
- action: action,
32
- status_callback: status_callback,
33
- **keyword_args
34
- )
27
+ def message(message: nil, to: nil, from: nil, action: nil, method: nil, **keyword_args)
28
+ message = Message.new(message: message, to: to, from: from, action: action, method: method, **keyword_args)
35
29
 
36
30
  yield(message) if block_given?
37
31
  append(message)
38
32
  end
39
33
 
40
- # Create an <Redirect> element
41
- #
42
- # == Parameters:
43
- # url:: URL to redirect to
44
- # method:: HTTP method
45
- # keyword_args:: attributes
46
- #
47
- # == Returns:
48
- # A <Response> element with an <Redirect> child element
34
+ ##
35
+ # Create a new <Redirect> element
36
+ # url:: Redirect URL
37
+ # method:: Redirect URL method
38
+ # keyword_args:: additional attributes
49
39
  def redirect(url, method: nil, **keyword_args)
50
40
  append(Redirect.new(url, method: method, **keyword_args))
51
41
  end
52
42
  end
53
43
 
54
- # <Message> element
55
- class Message < TwiML
56
- # Create a <Message> element
57
- #
58
- # == Parameters:
59
- # body:: message body
60
- # keyword_args:: additional attributes
61
- #
62
- # == Returns:
63
- # A <Message> element
64
- def initialize(body: nil, **keyword_args)
44
+ ##
45
+ # <Redirect> TwiML Verb
46
+ class Redirect < TwiML
47
+ def initialize(url, **keyword_args)
65
48
  super(**keyword_args)
66
- @value = body unless body.nil?
49
+ @name = 'Redirect'
50
+ @value = url
67
51
  yield(self) if block_given?
68
52
  end
53
+ end
69
54
 
70
- # Create a <Body> element
71
- #
72
- # == Parameters:
73
- # body:: body of message
74
- # keyword_args:: additional attributes
75
- #
76
- # == Returns:
77
- # A <Message> element with a <Body> child element
78
- def body(body)
79
- append(Body.new(body))
55
+ ##
56
+ # <Message> TwiML Verb
57
+ class Message < TwiML
58
+ def initialize(message: nil, **keyword_args)
59
+ super(**keyword_args)
60
+ @name = 'Message'
61
+ @value = message unless message.nil?
62
+ yield(self) if block_given?
80
63
  end
81
64
 
82
- # Create a <Media> element
83
- #
84
- # == Parameters:
85
- # body:: body of message
65
+ ##
66
+ # Create a new <Body> element
67
+ # message:: Message Body
86
68
  # keyword_args:: additional attributes
87
- #
88
- # == Returns:
89
- # A <Message> element with a <Media> child element
90
- def media(url)
91
- append(Media.new(url))
69
+ def body(message, **keyword_args)
70
+ append(Body.new(message, **keyword_args))
92
71
  end
93
- end
94
72
 
95
- # <Body> element
96
- class Body < TwiML
97
- # Create a <Body> element
98
- #
99
- # == Parameters:
100
- # body:: message body
101
- #
102
- # == Returns:
103
- # A <Body> element
104
- def initialize(body)
105
- super()
106
- @value = body
73
+ ##
74
+ # Create a new <Media> element
75
+ # url:: Media URL
76
+ # keyword_args:: additional attributes
77
+ def media(url, **keyword_args)
78
+ append(Media.new(url, **keyword_args))
107
79
  end
108
80
  end
109
81
 
110
- # <Media> element
82
+ ##
83
+ # <Media> TwiML Noun
111
84
  class Media < TwiML
112
- # Create a <Media> element
113
- #
114
- # == Parameters:
115
- # url:: media URL location
116
- #
117
- # == Returns:
118
- # A <Media> element
119
- def initialize(url)
120
- super()
85
+ def initialize(url, **keyword_args)
86
+ super(**keyword_args)
87
+ @name = 'Media'
121
88
  @value = url
89
+ yield(self) if block_given?
122
90
  end
123
91
  end
124
92
 
125
- # <Redirect> element
126
- class Redirect < TwiML
127
- # Create a <Redirect> element
128
- #
129
- # == Parameters:
130
- # url:: redirect URL location
131
- # keyword_args:: additional attributes
132
- #
133
- # == Returns:
134
- # A <Redirect> element
135
- def initialize(url, **keyword_args)
93
+ ##
94
+ # <Body> TwiML Noun
95
+ class Body < TwiML
96
+ def initialize(message, **keyword_args)
136
97
  super(**keyword_args)
137
- @value = url
98
+ @name = 'Body'
99
+ @value = message
100
+ yield(self) if block_given?
138
101
  end
139
102
  end
140
103
  end
141
- end
104
+ end
@@ -1,68 +1,72 @@
1
1
  require 'libxml'
2
2
 
3
+ ##
4
+ # This code was generated by
5
+ # \ / _ _ _| _ _
6
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
7
+ # / /
8
+
3
9
  module Twilio
4
10
  module TwiML
5
- class TwiMLError < StandardError
6
- end
11
+ class TwiMLError < StandardError; end
7
12
 
8
- # TwiML Base Class
9
13
  class TwiML
10
- # Generate getter/setter methods
11
- attr_accessor :name
12
- attr_accessor :indent
13
-
14
- def initialize(indent: false, **keyword_args)
15
- @name = self.class.name.split('::').last
16
- @indent = indent
17
- @value = nil
18
- @verbs = []
19
- @attrs = {}
20
-
21
- keyword_args.each do |key, val|
22
- @attrs[TwiML.to_lower_camel_case(key)] = val unless val.nil?
14
+ attr_accessor :name, :indent
15
+
16
+ def initialize(indent: false, **keyword_args)
17
+ @name = self.class.name.split('::').last
18
+ @indent = indent
19
+ @value = nil
20
+ @verbs = []
21
+ @attrs = {}
22
+
23
+ keyword_args.each do |key, val|
24
+ @attrs[TwiML.to_lower_camel_case(key)] = val unless val.nil?
25
+ end
23
26
  end
24
- end
25
27
 
26
- def self.to_lower_camel_case(symbol)
27
- # Symbols don't have the .split method, so convert to string first
28
- result = symbol.to_s.split('_').map(&:capitalize).join
29
- result[0].downcase + result[1..result.length]
30
- end
28
+ def self.to_lower_camel_case(symbol)
29
+ # Symbols don't have the .split method, so convert to string first
30
+ result = symbol.to_s.split('_').map(&:capitalize).join
31
+ result[0].downcase + result[1..result.length]
32
+ end
31
33
 
32
- def to_s(xml_declaration = true)
33
- xml = self.xml.to_s(indent: indent)
34
+ def to_s(xml_declaration = true)
35
+ xml = self.xml.to_s(indent: indent)
34
36
 
35
- return ('<?xml version="1.0" encoding="UTF-8"?>' + xml) if xml_declaration
36
- xml
37
- end
38
- alias to_xml to_s
37
+ return ('<?xml version="1.0" encoding="UTF-8"?>' + xml) if xml_declaration
38
+ xml
39
+ end
39
40
 
40
- def xml
41
- # create XML element
42
- elem = LibXML::XML::Node.new(@name, @value)
41
+ def xml
42
+ # create XML element
43
+ value = (@value.is_a?(String) or @value == nil) ? @value : JSON.generate(@value)
44
+ elem = LibXML::XML::Node.new(@name, value)
43
45
 
44
- # set element attributes
45
- keys = @attrs.keys.sort
46
- keys.each do |key|
47
- value = @attrs[key]
46
+ # set element attributes
47
+ keys = @attrs.keys.sort
48
+ keys.each do |key|
49
+ value = @attrs[key]
48
50
 
49
- value_is_boolean = value.is_a?(TrueClass) || value.is_a?(FalseClass)
50
- elem[key] = value_is_boolean ? value.to_s.downcase : value.to_s
51
- end
51
+ value_is_boolean = value.is_a?(TrueClass) || value.is_a?(FalseClass)
52
+ elem[key] = value_is_boolean ? value.to_s.downcase : value.to_s
53
+ end
54
+
55
+ @verbs.each do |verb|
56
+ elem << verb.xml
57
+ end
52
58
 
53
- @verbs.each do |verb|
54
- elem << verb.xml
59
+ elem
55
60
  end
56
61
 
57
- elem
58
- end
62
+ def append(verb)
63
+ raise TwiMLError, 'Only appending of TwiML is allowed' unless verb.is_a?(TwiML)
59
64
 
60
- def append(verb)
61
- raise TwiMLError, 'Only appending of TwiML is allowed' unless verb.is_a?(TwiML)
65
+ @verbs << verb
66
+ self
67
+ end
62
68
 
63
- @verbs << verb
64
- self
65
- end
69
+ alias to_xml to_s
66
70
  end
67
71
  end
68
- end
72
+ end
@@ -1,916 +1,532 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
1
7
  module Twilio
2
8
  module TwiML
3
- # Voice TwiML Response
9
+ ##
10
+ # <Response> TwiML for Voice
4
11
  class VoiceResponse < TwiML
5
- # Create a new <Response>
6
- def initialize
7
- super()
12
+ def initialize(**keyword_args)
13
+ super(**keyword_args)
8
14
  @name = 'Response'
15
+
9
16
  yield(self) if block_given?
10
17
  end
11
18
 
12
- # Create a <Dial> element
13
- #
14
- # == Parameters:
15
- # number:: phone number to dial
16
- # action:: action URL
17
- # method:: action HTTP method
18
- # timeout:: time to wait for answer
19
- # hangup_on_star:: hangup call on * press
20
- # time_limit:: max time length
21
- # caller_id:: caller ID to display
22
- # record:: record the call
23
- # trim:: trim the recording
24
- # recording_status_callback:: status callback URL
25
- # recording_status_callback_method:: status callback URL method
19
+ ##
20
+ # Create a new <Dial> element
21
+ # number:: Phone number to dial
22
+ # action:: Action URL
23
+ # method:: Action URL method
24
+ # timeout:: Time to wait for answer
25
+ # hangup_on_star:: Hangup call on star press
26
+ # time_limit:: Max time length
27
+ # caller_id:: Caller ID to display
28
+ # record:: Record the call
29
+ # trim:: Trim the recording
30
+ # recording_status_callback:: Recording status callback URL
31
+ # recording_status_callback_method:: Recording status callback URL method
26
32
  # keyword_args:: additional attributes
27
- #
28
- # == Returns:
29
- # A <Response> element with a <Dial> child element
30
- def dial(
31
- number: nil,
32
- action: nil,
33
- method: nil,
34
- timeout: nil,
35
- hangup_on_star: nil,
36
- time_limit: nil,
37
- caller_id: nil,
38
- record: nil,
39
- trim: nil,
40
- recording_status_callback: nil,
41
- recording_status_callback_method: nil,
42
- **keyword_args
43
- )
44
-
45
- dial = Dial.new(
46
- number: number,
47
- action: action,
48
- method: method,
49
- timeout: timeout,
50
- hangup_on_star: hangup_on_star,
51
- time_limit: time_limit,
52
- caller_id: caller_id,
53
- record: record,
54
- trim: trim,
55
- recording_status_callback: recording_status_callback,
56
- recording_status_callback_method: recording_status_callback_method,
57
- **keyword_args
58
- )
33
+ def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, **keyword_args)
34
+ dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, **keyword_args)
59
35
 
60
36
  yield(dial) if block_given?
61
37
  append(dial)
62
38
  end
63
39
 
64
- # Create an <Echo> element
65
- #
66
- # == Parameters:
67
- # keyword_args:: attributes
68
- #
69
- # == Returns:
70
- # A <Response> element with an <Echo> child element
40
+ ##
41
+ # Create a new <Echo> element
42
+ # keyword_args:: additional attributes
71
43
  def echo(**keyword_args)
72
44
  append(Echo.new(**keyword_args))
73
45
  end
74
46
 
75
- # Create an <Enqueue> element
76
- #
77
- # == Parameters:
78
- # name:: friendly name
79
- # action:: action URL
80
- # method:: action URL method
81
- # wait_url:: wait URL
82
- # wait_url_method:: wait URL method
83
- # workflow_sid:: TaskRouter workflow SID
47
+ ##
48
+ # Create a new <Enqueue> element
49
+ # name:: Friendly name
50
+ # action:: Action URL
51
+ # method:: Action URL method
52
+ # wait_url:: Wait URL
53
+ # wait_url_method:: Wait URL method
54
+ # workflow_sid:: TaskRouter Workflow SID
84
55
  # keyword_args:: additional attributes
85
- #
86
- # == Returns:
87
- # A <Response> element with an <Enqueue> child element
88
- def enqueue(
89
- name,
90
- action: nil,
91
- method: nil,
92
- wait_url: nil,
93
- wait_url_method: nil,
94
- workflow_sid: nil,
95
- **keyword_args
96
- )
97
-
98
- enqueue = Enqueue.new(
99
- name,
100
- action: action,
101
- method: method,
102
- wait_url: wait_url,
103
- wait_url_method: wait_url_method,
104
- workflow_sid: workflow_sid,
105
- **keyword_args
106
- )
56
+ def enqueue(name: nil, action: nil, method: nil, wait_url: nil, wait_url_method: nil, workflow_sid: nil, **keyword_args)
57
+ enqueue = Enqueue.new(name: name, action: action, method: method, wait_url: wait_url, wait_url_method: wait_url_method, workflow_sid: workflow_sid, **keyword_args)
107
58
 
108
59
  yield(enqueue) if block_given?
109
60
  append(enqueue)
110
61
  end
111
62
 
112
- # Create a <Gather> element
113
- #
114
- # == Parameters:
115
- # action:: action URL
116
- # method:: action URL method
117
- # timeout:: time to wait while gathering input
118
- # finish_on_key:: finish on key press
119
- # num_digits:: digits to collect
120
- # partial_result_callback:: callback url
121
- # partial_result_callback_method:: callback method
122
- # language:: locale string
123
- # hints:: speech recognition hints
124
- # barge_in:: stop playing media upon speech
125
- # acknowledge_sound_url:: url to hit when sound starts
63
+ ##
64
+ # Create a new <Gather> element
65
+ # input:: Input type Twilio should accept
66
+ # action:: Action URL
67
+ # method:: Action URL method
68
+ # timeout:: Time to wait to gather input
69
+ # finish_on_key:: Finish gather on key
70
+ # num_digits:: Number of digits to collect
71
+ # partial_result_callback:: Partial result callback URL
72
+ # partial_result_callback_method:: Partial result callback URL method
73
+ # language:: Language to use
74
+ # hints:: Speech recognition hints
75
+ # barge_in:: Stop playing media upon speech
126
76
  # keyword_args:: additional attributes
127
- #
128
- # == Returns:
129
- # A <Response> element with a <Gather> child element
130
- def gather(
131
- action: nil,
132
- method: nil,
133
- timeout: nil,
134
- finish_on_key: nil,
135
- num_digits: nil,
136
- partial_result_callback: nil,
137
- partial_result_callback_method: nil,
138
- language: nil,
139
- hints: nil,
140
- barge_in: nil,
141
- acknowledge_sound_url: nil,
142
- **keyword_args
143
- )
144
-
145
- gather = Gather.new(
146
- action: action,
147
- method: method,
148
- timeout: timeout,
149
- finish_on_key: finish_on_key,
150
- num_digits: num_digits,
151
- partial_result_callback: partial_result_callback,
152
- partial_result_callback_method: partial_result_callback_method,
153
- language: language,
154
- hints: hints,
155
- barge_in: barge_in,
156
- acknowledge_sound_url: acknowledge_sound_url,
157
- **keyword_args
158
- )
77
+ def gather(input: nil, action: nil, method: nil, timeout: nil, finish_on_key: nil, num_digits: nil, partial_result_callback: nil, partial_result_callback_method: nil, language: nil, hints: nil, barge_in: nil, **keyword_args)
78
+ gather = Gather.new(input: input, action: action, method: method, timeout: timeout, finish_on_key: finish_on_key, num_digits: num_digits, partial_result_callback: partial_result_callback, partial_result_callback_method: partial_result_callback_method, language: language, hints: hints, barge_in: barge_in, **keyword_args)
159
79
 
160
80
  yield(gather) if block_given?
161
81
  append(gather)
162
82
  end
163
83
 
164
- # Create a <Hangup> element
165
- #
166
- # == Returns:
167
- # A <Response> element with a <Hangup> child element
168
- def hangup
169
- append(Hangup.new)
84
+ ##
85
+ # Create a new <Hangup> element
86
+ # keyword_args:: additional attributes
87
+ def hangup(**keyword_args)
88
+ append(Hangup.new(**keyword_args))
170
89
  end
171
90
 
172
- # Create a <Leave> element
173
- #
174
- # == Returns:
175
- # A <Response> element with a <Leave> child element
176
- def leave
177
- append(Leave.new)
91
+ ##
92
+ # Create a new <Leave> element
93
+ # keyword_args:: additional attributes
94
+ def leave(**keyword_args)
95
+ append(Leave.new(**keyword_args))
178
96
  end
179
97
 
180
- # Create a <Pause> element
181
- #
182
- # == Parameters:
183
- # length:: time in seconds to pause
184
- #
185
- # == Returns:
186
- # A <Response> element with a <Pause> child element
187
- def pause(length: nil)
188
- append(Pause.new(length: length))
98
+ ##
99
+ # Create a new <Pause> element
100
+ # length:: Length in seconds to pause
101
+ # keyword_args:: additional attributes
102
+ def pause(length: nil, **keyword_args)
103
+ append(Pause.new(length: length, **keyword_args))
189
104
  end
190
105
 
191
- # Create a <Play> element
192
- #
193
- # == Parameters:
194
- # url:: url to play
195
- # loop:: times to loop
196
- # digits:: play DTMF tones during a call
106
+ ##
107
+ # Create a new <Play> element
108
+ # url:: Media URL
109
+ # loop:: Times to loop media
110
+ # digits:: Play DTMF tones for digits
197
111
  # keyword_args:: additional attributes
198
- #
199
- # == Returns:
200
- # A <Response> element with a <Play> child element
201
112
  def play(url: nil, loop: nil, digits: nil, **keyword_args)
202
- append(Play.new(
203
- url: url,
204
- loop: loop,
205
- digits: digits,
206
- **keyword_args
207
- ))
208
- end
209
-
210
- # Create a <Record> element
211
- #
212
- # == Parameters:
213
- # action:: action URL
214
- # method:: action URL method
215
- # timeout:: timeout for recording
216
- # finish_on_key:: finish recording on key
217
- # max_length:: max length to record
218
- # play_beep:: play beep
219
- # trim:: trim the recording
220
- # recording_status_callback:: status callback for the recordings
221
- # recording_status_callback_method:: status callback method
222
- # transcribe:: transcribe the recording
223
- # transcribe_callback:: transcribe callback URL
113
+ append(Play.new(url: url, loop: loop, digits: digits, **keyword_args))
114
+ end
115
+
116
+ ##
117
+ # Create a new <Queue> element
118
+ # name:: Queue name
119
+ # url:: Action URL
120
+ # method:: Action URL method
121
+ # reservation_sid:: TaskRouter Reservation SID
122
+ # post_work_activity_sid:: TaskRouter Activity SID
123
+ # keyword_args:: additional attributes
124
+ def queue(name, url: nil, method: nil, reservation_sid: nil, post_work_activity_sid: nil, **keyword_args)
125
+ append(Queue.new(name, url: url, method: method, reservation_sid: reservation_sid, post_work_activity_sid: post_work_activity_sid, **keyword_args))
126
+ end
127
+
128
+ ##
129
+ # Create a new <Record> element
130
+ # action:: Action URL
131
+ # method:: Action URL method
132
+ # timeout:: Timeout to begin recording
133
+ # finish_on_key:: Finish recording on key
134
+ # max_length:: Max time to record in seconds
135
+ # play_beep:: Play beep
136
+ # trim:: Trim the recording
137
+ # recording_status_callback:: Status callback URL
138
+ # recording_status_callback_method:: Status callback URL method
139
+ # transcribe:: Transcribe the recording
140
+ # transcribe_callback:: Transcribe callback URL
224
141
  # keyword_args:: additional attributes
225
- #
226
- # == Returns:
227
- # A <Response> element with a <Record> child element
228
- def record(
229
- action: nil,
230
- method: nil,
231
- timeout: nil,
232
- finish_on_key: nil,
233
- max_length: nil,
234
- play_beep: nil,
235
- trim: nil,
236
- recording_status_callback: nil,
237
- recording_status_callback_method: nil,
238
- transcribe: nil,
239
- transcribe_callback: nil,
240
- **keyword_args
241
- )
242
- append(Record.new(
243
- action: action,
244
- method: method,
245
- timeout: timeout,
246
- finish_on_key: finish_on_key,
247
- max_length: max_length,
248
- play_beep: play_beep,
249
- trim: trim,
250
- recording_status_callback: recording_status_callback,
251
- recording_status_callback_method: recording_status_callback_method,
252
- transcribe: transcribe,
253
- transcribe_callback: transcribe_callback,
254
- **keyword_args
255
- ))
256
- end
257
-
258
- # Create a <Redirect> element
259
- #
260
- # == Parameters:
261
- # url:: redirect URL
262
- # method:: redirect method
142
+ def record(action: nil, method: nil, timeout: nil, finish_on_key: nil, max_length: nil, play_beep: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, transcribe: nil, transcribe_callback: nil, **keyword_args)
143
+ append(Record.new(action: action, method: method, timeout: timeout, finish_on_key: finish_on_key, max_length: max_length, play_beep: play_beep, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, transcribe: transcribe, transcribe_callback: transcribe_callback, **keyword_args))
144
+ end
145
+
146
+ ##
147
+ # Create a new <Redirect> element
148
+ # url:: Redirect URL
149
+ # method:: Redirect URL method
263
150
  # keyword_args:: additional attributes
264
- #
265
- # == Returns:
266
- # A <Response> element with a <Redirect> child element
267
151
  def redirect(url, method: nil, **keyword_args)
268
152
  append(Redirect.new(url, method: method, **keyword_args))
269
153
  end
270
154
 
271
- # Create a <Reject> element
272
- #
273
- # == Parameters:
274
- # reason:: rejection reason
155
+ ##
156
+ # Create a new <Reject> element
157
+ # reason:: Rejection reason
275
158
  # keyword_args:: additional attributes
276
- #
277
- # == Returns:
278
- # A <Response> element with a <Reject> child element
279
159
  def reject(reason: nil, **keyword_args)
280
160
  append(Reject.new(reason: reason, **keyword_args))
281
161
  end
282
162
 
283
- # Create a <Say> element
284
- #
285
- # == Parameters:
286
- # body:: message body
287
- # loop:: times to loop
288
- # language:: language of message
289
- # voice:: voice to use
163
+ ##
164
+ # Create a new <Say> element
165
+ # message:: Message to say
166
+ # voice:: Voice to use
167
+ # loop:: Times to loop message
168
+ # language:: Message langauge
290
169
  # keyword_args:: additional attributes
291
- #
292
- # == Returns:
293
- # A <Response> element with a <Say> child element
294
- def say(body, loop: nil, language: nil, voice: nil, **keyword_args)
295
- append(Say.new(
296
- body,
297
- loop: loop,
298
- language: language,
299
- voice: voice,
300
- **keyword_args
301
- ))
302
- end
303
-
304
- # Create a <Sms> element
305
- #
306
- # == Parameters:
307
- # body:: body of message
308
- # to:: to phone number
309
- # from_:: from phone number
310
- # method:: action URL method
311
- # action:: action URL
312
- # status_callback:: status callback URL
170
+ def say(message, voice: nil, loop: nil, language: nil, **keyword_args)
171
+ append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args))
172
+ end
173
+
174
+ ##
175
+ # Create a new <Sms> element
176
+ # message:: Message body
177
+ # to:: Number to send message to
178
+ # from:: Number to send message from
179
+ # action:: Action URL
180
+ # method:: Action URL method
181
+ # status_callback:: Status callback URL
313
182
  # keyword_args:: additional attributes
314
- #
315
- # == Returns:
316
- # A <Response> element with a <Sms> child element
317
- def sms(body, to: nil, from: nil, method: nil, action: nil, status_callback: nil, **keyword_args)
318
- append(Sms.new(
319
- body,
320
- to: to,
321
- from: from,
322
- method: method,
323
- action: action,
324
- status_callback: status_callback,
325
- **keyword_args
326
- ))
183
+ def sms(message, to: nil, from: nil, action: nil, method: nil, status_callback: nil, **keyword_args)
184
+ append(Sms.new(message, to: to, from: from, action: action, method: method, status_callback: status_callback, **keyword_args))
327
185
  end
328
186
  end
329
187
 
330
- # <Dial> element
331
- class Dial < TwiML
332
- # Create a <Dial> element
333
- #
334
- # == Parameters:
335
- # number:: phone number to dial
336
- # keyword_args:: additional attributes
337
- #
338
- # == Returns:
339
- # A <Dial> element
340
- def initialize(number: nil, **keyword_args)
188
+ ##
189
+ # <Sms> TwiML Noun
190
+ class Sms < TwiML
191
+ def initialize(message, **keyword_args)
341
192
  super(**keyword_args)
342
- @value = number unless number.nil?
193
+ @name = 'Sms'
194
+ @value = message
343
195
  yield(self) if block_given?
344
196
  end
345
-
346
- # Create a <Client> element
347
- #
348
- # == Parameters:
349
- # name:: name of client
350
- # method:: action URL method
351
- # url:: action URL
352
- # status_callback_event:: events to call status callback
353
- # status_callback_method:: status callback URL method
354
- # status_callback:: status callback URL
355
- # keyword_args:: additional attributes
356
- #
357
- # == Returns:
358
- # A <Dial> element with a <Client> child element
359
- def client(
360
- name,
361
- method: nil,
362
- url: nil,
363
- status_callback_event: nil,
364
- status_callback_method: nil,
365
- status_callback: nil,
366
- **keyword_args
367
- )
368
- append(Client.new(
369
- name,
370
- method: method,
371
- url: url,
372
- status_callback_event: status_callback_event,
373
- status_callback_method: status_callback_method,
374
- status_callback: status_callback,
375
- **keyword_args
376
- ))
377
- end
378
-
379
- # Create a <Conference> element
380
- #
381
- # == Parameters:
382
- # name:: name of conference
383
- # muted:: join the conference muted
384
- # start_conference_on_enter:: start the conference on enter
385
- # end_conference_on_exit:: end the conference on exit
386
- # max_participants:: max number of people in conference
387
- # beep:: play beep when joining
388
- # record:: record the conference
389
- # trim:: trim the recording
390
- # wait_method:: wait URL method
391
- # wait_url:: wait URL to play
392
- # event_callback_url:: event callback URL
393
- # status_callback_event:: events to call status callback
394
- # status_callback:: status callback URL
395
- # status_callback_method:: status callback URL method
396
- # recording_status_callback:: recording status callback URL
397
- # recording_status_callback_method:: recording status callback URL method
398
- # keyword_args:: additional attributes
399
- #
400
- # == Returns:
401
- # A <Dial> element with a <Conference> child element
402
- def conference(
403
- name,
404
- muted: nil,
405
- start_conference_on_enter: nil,
406
- end_conference_on_exit: nil,
407
- max_participants: nil,
408
- beep: nil,
409
- record: nil,
410
- trim: nil,
411
- wait_url: nil,
412
- wait_method: nil,
413
- event_callback_url: nil,
414
- status_callback: nil,
415
- status_callback_event: nil,
416
- status_callback_method: nil,
417
- recording_status_callback: nil,
418
- recording_status_callback_method: nil,
419
- **keyword_args
420
- )
421
- append(Conference.new(
422
- name,
423
- muted: muted,
424
- start_conference_on_enter: start_conference_on_enter,
425
- end_conference_on_exit: end_conference_on_exit,
426
- max_participants: max_participants,
427
- beep: beep,
428
- record: record,
429
- trim: trim,
430
- wait_url: wait_url,
431
- wait_method: wait_method,
432
- event_callback_url: event_callback_url,
433
- status_callback: status_callback,
434
- status_callback_event: status_callback_event,
435
- status_callback_method: status_callback_method,
436
- recording_status_callback: recording_status_callback,
437
- recording_status_callback_method: recording_status_callback_method,
438
- **keyword_args
439
- ))
440
- end
441
-
442
- # Create a <Number> element
443
- #
444
- # == Parameters:
445
- # number:: phone number to dial
446
- # send_digits:: play DTMF tones when the call is answered
447
- # url:: TwiML URL
448
- # method:: TwiML URL method
449
- # status_callback_event:: events to call status callback
450
- # status_callback:: status callback URL
451
- # status_callback_method:: status callback URL method
452
- # keyword_args:: additional attributes
453
- #
454
- # == Returns:
455
- # A <Dial> element with a <Number> child element
456
- def number(
457
- number,
458
- send_digits: nil,
459
- url: nil,
460
- method: nil,
461
- status_callback: nil,
462
- status_callback_event: nil,
463
- status_callback_method: nil,
464
- **keyword_args
465
- )
466
- append(Number.new(
467
- number,
468
- send_digits: send_digits,
469
- url: url,
470
- method: method,
471
- status_callback: status_callback,
472
- status_callback_event: status_callback_event,
473
- status_callback_method: status_callback_method,
474
- **keyword_args
475
- ))
476
- end
477
-
478
- # Create a <Queue> element
479
- #
480
- # == Parameters:
481
- # queue_name:: queue name
482
- # url:: action URL
483
- # method:: action URL method
484
- # reservation_sid:: TaskRouter reservation SID
485
- # post_work_activity_sid:: TaskRouter activity SID
486
- # keyword_args:: additional attributes
487
- #
488
- # == Returns:
489
- # A <Dial> element with a <Queue> child element
490
- def queue(
491
- queue_name,
492
- url: nil,
493
- method: nil,
494
- reservation_sid: nil,
495
- post_work_activity_sid: nil,
496
- **keyword_args
497
- )
498
- append(Queue.new(
499
- queue_name,
500
- url: url,
501
- method: method,
502
- reservation_sid: reservation_sid,
503
- post_work_activity_sid: post_work_activity_sid,
504
- **keyword_args
505
- ))
506
- end
507
-
508
- # Create a <Sim> element
509
- #
510
- # == Parameters:
511
- # sid:: sim sid
512
- # keyword_args:: additional attributes
513
- #
514
- # == Returns:
515
- # A <Dial> element with a <Sim> child element
516
- def sim(sid, **keyword_args)
517
- append(Sim.new(sid, **keyword_args))
518
- end
519
-
520
- # Create a <Sip> element
521
- #
522
- # == Parameters:
523
- # uri:: sip url
524
- # username:: sip username
525
- # password:: sip password
526
- # url:: action URL
527
- # method:: action URL method
528
- # status_callback_event:: events to call status callback
529
- # status_callback:: status callback URL
530
- # status_callback_method:: status callback URL method
531
- # keyword_args:: additional attributes
532
- #
533
- # == Returns:
534
- # A <Dial> element with a <Sip> child element
535
- def sip(
536
- uri,
537
- username: nil,
538
- password: nil,
539
- url: nil,
540
- method: nil,
541
- status_callback: nil,
542
- status_callback_event: nil,
543
- status_callback_method: nil,
544
- **keyword_args
545
- )
546
- append(Sip.new(
547
- uri,
548
- username: username,
549
- password: password,
550
- url: url,
551
- method: method,
552
- status_callback: status_callback,
553
- status_callback_event: status_callback_event,
554
- status_callback_method: status_callback_method,
555
- **keyword_args
556
- ))
557
- end
558
197
  end
559
198
 
560
- # <Client> element
561
- class Client < TwiML
562
- # Create a <Client> element
563
- #
564
- # == Parameters:
565
- # name:: name of client
566
- # keyword_args:: additional attributes
567
- #
568
- # == Returns:
569
- # A <Client> element
570
- def initialize(name, **keyword_args)
199
+ ##
200
+ # <Say> TwiML Verb
201
+ class Say < TwiML
202
+ def initialize(message, **keyword_args)
571
203
  super(**keyword_args)
572
- @value = name
204
+ @name = 'Say'
205
+ @value = message
206
+ yield(self) if block_given?
573
207
  end
574
208
  end
575
209
 
576
- # <Conference> element
577
- class Conference < TwiML
578
- # Create a <Conference> element
579
- #
580
- # == Parameters:
581
- # name:: name of conference
582
- # keyword_args:: additional attributes
583
- #
584
- # == Returns:
585
- # A <Conference> element
586
- def initialize(name, **keyword_args)
210
+ ##
211
+ # <Reject> TwiML Verb
212
+ class Reject < TwiML
213
+ def initialize(**keyword_args)
587
214
  super(**keyword_args)
588
- @value = name
215
+ @name = 'Reject'
216
+
217
+ yield(self) if block_given?
589
218
  end
590
219
  end
591
220
 
592
- # <Number> element
593
- class Number < TwiML
594
- # Create a <Number> element
595
- #
596
- # == Parameters:
597
- # number:: phone number
598
- # keyword_args:: additional attributes
599
- #
600
- # == Returns:
601
- # A <Number> element
602
- def initialize(number, **keyword_args)
221
+ ##
222
+ # <Redirect> TwiML Verb
223
+ class Redirect < TwiML
224
+ def initialize(url, **keyword_args)
603
225
  super(**keyword_args)
604
- @value = number
226
+ @name = 'Redirect'
227
+ @value = url
228
+ yield(self) if block_given?
605
229
  end
606
230
  end
607
231
 
608
- # <Queue> element
609
- class Queue < TwiML
610
- # Create a <Queue> element
611
- #
612
- # == Parameters:
613
- # queue_name:: name of queues
614
- # keyword_args:: additional attributes
615
- #
616
- # == Returns:
617
- # A <Queue> element
618
- def initialize(queue_name, **keyword_args)
232
+ ##
233
+ # <Record> TwiML Verb
234
+ class Record < TwiML
235
+ def initialize(**keyword_args)
619
236
  super(**keyword_args)
620
- @value = queue_name
237
+ @name = 'Record'
238
+
239
+ yield(self) if block_given?
621
240
  end
622
241
  end
623
242
 
624
- # <Sim> element
625
- class Sim < TwiML
626
- # Create a <Sim> element
627
- #
628
- # == Parameters:
629
- # sid:: sim sid
630
- # keyword_args:: additional attributes
631
- #
632
- # == Returns:
633
- # A <Sim> element
634
- def initialize(sid, **keyword_args)
243
+ ##
244
+ # <Queue> TwiML Noun
245
+ class Queue < TwiML
246
+ def initialize(name, **keyword_args)
635
247
  super(**keyword_args)
636
- @value = sid
248
+ @name = 'Queue'
249
+ @value = name
250
+ yield(self) if block_given?
637
251
  end
638
252
  end
639
253
 
640
- # <Sip> element
641
- class Sip < TwiML
642
- # Create a <Sip> element
643
- #
644
- # == Parameters:
645
- # uri:: sip uri
646
- # keyword_args:: additional attributes
647
- #
648
- # == Returns:
649
- # A <Sip> element
650
- def initialize(uri, **keyword_args)
254
+ ##
255
+ # <Play> TwiML Verb
256
+ class Play < TwiML
257
+ def initialize(url: nil, **keyword_args)
651
258
  super(**keyword_args)
652
- @value = uri
259
+ @name = 'Play'
260
+ @value = url unless url.nil?
261
+ yield(self) if block_given?
653
262
  end
654
263
  end
655
264
 
656
- # <Echo> element
657
- class Echo < TwiML
658
- # Create a <Echo> element
659
- #
660
- # == Parameters:
661
- # keyword_args:: additional attributes
662
- #
663
- # == Returns:
664
- # A <Echo> element
265
+ ##
266
+ # <Pause> TwiML Verb
267
+ class Pause < TwiML
665
268
  def initialize(**keyword_args)
666
269
  super(**keyword_args)
270
+ @name = 'Pause'
271
+
272
+ yield(self) if block_given?
667
273
  end
668
274
  end
669
275
 
670
- # <Enqueue> element
671
- class Enqueue < TwiML
672
- # Create a <Enqueue> element
673
- #
674
- # == Parameters:
675
- # name:: queue name
676
- # keyword_args:: additional attributes
677
- #
678
- # == Returns:
679
- # A <Enqueue> element
680
- def initialize(name, **keyword_args)
276
+ ##
277
+ # <Leave> TwiML Verb
278
+ class Leave < TwiML
279
+ def initialize(**keyword_args)
681
280
  super(**keyword_args)
682
- @value = name
683
- yield(self) if block_given?
684
- end
281
+ @name = 'Leave'
685
282
 
686
- # Create a <Task> element
687
- #
688
- # == Parameters:
689
- # attributes:: attributes for a task
690
- # keyword_args:: additional attributes
691
- #
692
- # == Returns:
693
- # An <Enqueue> element with a <Task> child element
694
- def task(attributes, **keyword_args)
695
- append(Task.new(attributes, **keyword_args))
283
+ yield(self) if block_given?
696
284
  end
697
285
  end
698
286
 
699
- # <Task> element
700
- class Task < TwiML
701
- # Create a <Task> element
702
- #
703
- # == Parameters:
704
- # attributes:: attributes for a task
705
- # keyword_args:: additional attributes
706
- #
707
- # == Returns:
708
- # A <Task> element
709
- def initialize(attributes, **keyword_args)
287
+ ##
288
+ # <Hangup> TwiML Verb
289
+ class Hangup < TwiML
290
+ def initialize(**keyword_args)
710
291
  super(**keyword_args)
711
- @value = attributes.is_a?(String) ? attributes : JSON.generate(attributes)
292
+ @name = 'Hangup'
293
+
294
+ yield(self) if block_given?
712
295
  end
713
296
  end
714
297
 
715
- # <Gather> element
298
+ ##
299
+ # <Gather> TwiML Verb
716
300
  class Gather < TwiML
717
- # Create a <Gather> element
718
- #
719
- # == Parameters:
720
- # keyword_args:: additional attributes
721
- #
722
- # == Returns:
723
- # A <Gather> element
724
301
  def initialize(**keyword_args)
725
302
  super(**keyword_args)
303
+ @name = 'Gather'
304
+
726
305
  yield(self) if block_given?
727
306
  end
728
307
 
729
- # Create a <Say> element
730
- #
731
- # == Parameters:
732
- # name:: name of client
733
- # body:: message body
734
- # loop:: times to loop
735
- # language:: message language
736
- # voice:: voice to use
308
+ ##
309
+ # Create a new <Say> element
310
+ # message:: Message to say
311
+ # voice:: Voice to use
312
+ # loop:: Times to loop message
313
+ # language:: Message langauge
314
+ # keyword_args:: additional attributes
315
+ def say(message, voice: nil, loop: nil, language: nil, **keyword_args)
316
+ append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args))
317
+ end
318
+
319
+ ##
320
+ # Create a new <Pause> element
321
+ # length:: Length in seconds to pause
737
322
  # keyword_args:: additional attributes
738
- #
739
- # == Returns:
740
- # A <Gather> element with a <Say> child element
741
- def say(body, loop: nil, language: nil, voice: nil, **keyword_args)
742
- append(Say.new(
743
- body,
744
- loop: loop,
745
- language: language,
746
- voice: voice,
747
- **keyword_args
748
- ))
749
- end
750
-
751
- # Create a <Play> element
752
- #
753
- # == Parameters:
754
- # url:: media URL
755
- # loop:: times to loop
756
- # digits:: digits to simulate
323
+ def pause(length: nil, **keyword_args)
324
+ append(Pause.new(length: length, **keyword_args))
325
+ end
326
+
327
+ ##
328
+ # Create a new <Play> element
329
+ # url:: Media URL
330
+ # loop:: Times to loop media
331
+ # digits:: Play DTMF tones for digits
757
332
  # keyword_args:: additional attributes
758
- #
759
- # == Returns:
760
- # A <Gather> element with a <Play> child element
761
333
  def play(url: nil, loop: nil, digits: nil, **keyword_args)
762
- append(Play.new(
763
- url: url,
764
- loop: loop,
765
- digits: digits,
766
- **keyword_args
767
- ))
768
- end
769
-
770
- # Create a <Pause> element
771
- #
772
- # == Parameters:
773
- # length:: time to pause
774
- #
775
- # == Returns:
776
- # A <Gather> element with a <Pause> child element
777
- def pause(length: nil)
778
- append(Pause.new(length: length))
334
+ append(Play.new(url: url, loop: loop, digits: digits, **keyword_args))
779
335
  end
780
336
  end
781
337
 
782
- # <Pause> element
783
- class Pause < TwiML
784
- # Create a <Pause> element
785
- #
786
- # == Parameters:
787
- # keyword_args:: additional attributes
788
- #
789
- # == Returns:
790
- # A <Pause> element
791
- def initialize(**keyword_args)
338
+ ##
339
+ # <Enqueue> TwiML Noun
340
+ class Enqueue < TwiML
341
+ def initialize(name: nil, **keyword_args)
792
342
  super(**keyword_args)
343
+ @name = 'Enqueue'
344
+ @value = name unless name.nil?
345
+ yield(self) if block_given?
793
346
  end
794
- end
795
347
 
796
- # <Play> element
797
- class Play < TwiML
798
- # Create a <Play> element
799
- #
800
- # == Parameters:
801
- # url:: media URL
348
+ ##
349
+ # Create a new <Task> element
350
+ # body:: TaskRouter task attributes
802
351
  # keyword_args:: additional attributes
803
- #
804
- # == Returns:
805
- # A <Play> element
806
- def initialize(url: nil, **keyword_args)
807
- super(**keyword_args)
808
- @value = url
352
+ def task(body, **keyword_args)
353
+ append(Task.new(body, **keyword_args))
809
354
  end
810
355
  end
811
356
 
812
- # <Say> element
813
- class Say < TwiML
814
- # Create a <Say> element
815
- #
816
- # == Parameters:
817
- # body:: message body
818
- # keyword_args:: additional attributes
819
- #
820
- # == Returns:
821
- # A <Say> element
357
+ ##
358
+ # <Task> TwiML Noun
359
+ class Task < TwiML
822
360
  def initialize(body, **keyword_args)
823
361
  super(**keyword_args)
362
+ @name = 'Task'
824
363
  @value = body
364
+ yield(self) if block_given?
825
365
  end
826
366
  end
827
367
 
828
- # <Hangup> element
829
- class Hangup < TwiML
830
- # Create a <hangup_on_star> element
831
- #
832
- # == Parameters:
833
- # keyword_args:: additional attributes
834
- #
835
- # == Returns:
836
- # A <hangup_on_star> element
368
+ ##
369
+ # <Echo> TwiML Verb
370
+ class Echo < TwiML
837
371
  def initialize(**keyword_args)
838
372
  super(**keyword_args)
373
+ @name = 'Echo'
374
+
375
+ yield(self) if block_given?
839
376
  end
840
377
  end
841
378
 
842
- # <Leave> element
843
- class Leave < TwiML
844
- # Create a <Leave> element
845
- #
846
- # == Parameters:
379
+ ##
380
+ # <Dial> TwiML Verb
381
+ class Dial < TwiML
382
+ def initialize(number: nil, **keyword_args)
383
+ super(**keyword_args)
384
+ @name = 'Dial'
385
+ @value = number unless number.nil?
386
+ yield(self) if block_given?
387
+ end
388
+
389
+ ##
390
+ # Create a new <Client> element
391
+ # name:: Client name
392
+ # url:: Client URL
393
+ # method:: Client URL Method
394
+ # status_callback_event:: Events to trigger status callback
395
+ # status_callback:: Status Callback URL
396
+ # status_callback_method:: Status Callback URL Method
397
+ # keyword_args:: additional attributes
398
+ def client(name, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
399
+ append(Client.new(name, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
400
+ end
401
+
402
+ ##
403
+ # Create a new <Conference> element
404
+ # name:: Conference name
405
+ # muted:: Join the conference muted
406
+ # beep:: Play beep when joining
407
+ # start_conference_on_enter:: Start the conference on enter
408
+ # end_conference_on_exit:: End the conferenceon exit
409
+ # wait_url:: Wait URL
410
+ # wait_method:: Wait URL method
411
+ # max_participants:: Maximum number of participants
412
+ # record:: Record the conference
413
+ # region:: Conference region
414
+ # whisper:: Call whisper
415
+ # trim:: Trim the conference recording
416
+ # status_callback_event:: Events to call status callback URL
417
+ # status_callback:: Status callback URL
418
+ # status_callback_method:: Status callback URL method
419
+ # recording_status_callback:: Recording status callback URL
420
+ # recording_status_callback_method:: Recording status callback URL method
421
+ # event_callback_url:: Event callback URL
422
+ # keyword_args:: additional attributes
423
+ def conference(name, muted: nil, beep: nil, start_conference_on_enter: nil, end_conference_on_exit: nil, wait_url: nil, wait_method: nil, max_participants: nil, record: nil, region: nil, whisper: nil, trim: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, recording_status_callback: nil, recording_status_callback_method: nil, event_callback_url: nil, **keyword_args)
424
+ append(Conference.new(name, muted: muted, beep: beep, start_conference_on_enter: start_conference_on_enter, end_conference_on_exit: end_conference_on_exit, wait_url: wait_url, wait_method: wait_method, max_participants: max_participants, record: record, region: region, whisper: whisper, trim: trim, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, event_callback_url: event_callback_url, **keyword_args))
425
+ end
426
+
427
+ ##
428
+ # Create a new <Number> element
429
+ # number:: Phone Number to dial
430
+ # send_digits:: DTMF tones to play when the call is answered
431
+ # url:: TwiML URL
432
+ # method:: TwiML URL method
433
+ # status_callback_event:: Events to call status callback
434
+ # status_callback:: Status callback URL
435
+ # status_callback_method:: Status callback URL method
847
436
  # keyword_args:: additional attributes
848
- #
849
- # == Returns:
850
- # A <Leave> element
851
- def initialize(**keyword_args)
437
+ def number(number, send_digits: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
438
+ append(Number.new(number, send_digits: send_digits, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
439
+ end
440
+
441
+ ##
442
+ # Create a new <Queue> element
443
+ # name:: Queue name
444
+ # url:: Action URL
445
+ # method:: Action URL method
446
+ # reservation_sid:: TaskRouter Reservation SID
447
+ # post_work_activity_sid:: TaskRouter Activity SID
448
+ # keyword_args:: additional attributes
449
+ def queue(name, url: nil, method: nil, reservation_sid: nil, post_work_activity_sid: nil, **keyword_args)
450
+ append(Queue.new(name, url: url, method: method, reservation_sid: reservation_sid, post_work_activity_sid: post_work_activity_sid, **keyword_args))
451
+ end
452
+
453
+ ##
454
+ # Create a new <Sim> element
455
+ # sim_sid:: SIM SID
456
+ # keyword_args:: additional attributes
457
+ def sim(sim_sid, **keyword_args)
458
+ append(Sim.new(sim_sid, **keyword_args))
459
+ end
460
+
461
+ ##
462
+ # Create a new <Sip> element
463
+ # sip_url:: SIP URL
464
+ # username:: SIP Username
465
+ # password:: SIP Password
466
+ # url:: Action URL
467
+ # method:: Action URL method
468
+ # status_callback_event:: Status callback events
469
+ # status_callback:: Status callback URL
470
+ # status_callback_method:: Status callback URL method
471
+ # keyword_args:: additional attributes
472
+ def sip(sip_url, username: nil, password: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
473
+ append(Sip.new(sip_url, username: username, password: password, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
474
+ end
475
+ end
476
+
477
+ ##
478
+ # <Sip> TwiML Noun
479
+ class Sip < TwiML
480
+ def initialize(sip_url, **keyword_args)
852
481
  super(**keyword_args)
482
+ @name = 'Sip'
483
+ @value = sip_url
484
+ yield(self) if block_given?
853
485
  end
854
486
  end
855
487
 
856
- # <Record> element
857
- class Record < TwiML
858
- # Create a <Record> element
859
- #
860
- # == Parameters:
861
- # keyword_args:: additional attributes
862
- #
863
- # == Returns:
864
- # A <Record> element
865
- def initialize(**keyword_args)
488
+ ##
489
+ # <Sim> TwiML Noun
490
+ class Sim < TwiML
491
+ def initialize(sim_sid, **keyword_args)
866
492
  super(**keyword_args)
493
+ @name = 'Sim'
494
+ @value = sim_sid
495
+ yield(self) if block_given?
867
496
  end
868
497
  end
869
498
 
870
- # <Redirect> element
871
- class Redirect < TwiML
872
- # Create a <Redirect> element
873
- #
874
- # == Parameters:
875
- # url:: TwiML URL
876
- # keyword_args:: additional attributes
877
- #
878
- # == Returns:
879
- # A <Redirect> element
880
- def initialize(url, **keyword_args)
499
+ ##
500
+ # <Number> TwiML Noun
501
+ class Number < TwiML
502
+ def initialize(number, **keyword_args)
881
503
  super(**keyword_args)
882
- @value = url
504
+ @name = 'Number'
505
+ @value = number
506
+ yield(self) if block_given?
883
507
  end
884
508
  end
885
509
 
886
- # <Reject> element
887
- class Reject < TwiML
888
- # Create a <Reject> element
889
- #
890
- # == Parameters:
891
- # keyword_args:: additional attributes
892
- #
893
- # == Returns:
894
- # A <Reject> element
895
- def initialize(**keyword_args)
510
+ ##
511
+ # <Conference> TwiML Noun
512
+ class Conference < TwiML
513
+ def initialize(name, **keyword_args)
896
514
  super(**keyword_args)
515
+ @name = 'Conference'
516
+ @value = name
517
+ yield(self) if block_given?
897
518
  end
898
519
  end
899
520
 
900
- # <Sms> element
901
- class Sms < TwiML
902
- # Create a <Sms> element
903
- #
904
- # == Parameters:
905
- # body:: message body
906
- # keyword_args:: additional attributes
907
- #
908
- # == Returns:
909
- # A <Sms> element
910
- def initialize(body, **keyword_args)
521
+ ##
522
+ # <Client> TwiML Noun
523
+ class Client < TwiML
524
+ def initialize(name, **keyword_args)
911
525
  super(**keyword_args)
912
- @value = body
526
+ @name = 'Client'
527
+ @value = name
528
+ yield(self) if block_given?
913
529
  end
914
530
  end
915
531
  end
916
- end
532
+ end