Class: Twilio::REST::Api::V2010::AccountContext::CallList

Inherits:
ListResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/api/v2010/account/call.rb,
lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb

Defined Under Namespace

Classes: FeedbackSummaryContext, FeedbackSummaryInstance, FeedbackSummaryList, FeedbackSummaryPage

Instance Method Summary collapse

Constructor Details

#initialize(version, account_sid: nil) ⇒ CallList

Initialize the CallList

Parameters:

  • version (Version)

    Version that contains the resource

  • account_sid (String) (defaults to: nil)

    The SID of the Account that created this Call resource.


22
23
24
25
26
27
28
29
30
31
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 22

def initialize(version, account_sid: nil)
  super(version)

  # Path Solution
  @solution = {account_sid: }
  @uri = "/Accounts/#{@solution[:account_sid]}/Calls.json"

  # Components
  @feedback_summaries = nil
end

Instance Method Details

#create(to: nil, from: nil, method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, status_callback_event: :unset, status_callback_method: :unset, send_digits: :unset, timeout: :unset, record: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, machine_detection: :unset, machine_detection_timeout: :unset, recording_status_callback_event: :unset, trim: :unset, caller_id: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, async_amd: :unset, async_amd_status_callback: :unset, async_amd_status_callback_method: :unset, byoc: :unset, call_reason: :unset, call_token: :unset, recording_track: :unset, time_limit: :unset, url: :unset, twiml: :unset, application_sid: :unset) ⇒ CallInstance

Create the CallInstance

Parameters:

  • to (String) (defaults to: nil)

    The phone number, SIP address, or client identifier to call.

  • from (String) (defaults to: nil)

    The phone number or client identifier to use as the caller id. If using a phone number, it must be a Twilio number or a Verified outgoing caller id for your account. If the `to` parameter is a phone number, `From` must also be a phone number.

  • method (String) (defaults to: :unset)

    The HTTP method we should use when calling the `url` parameter's value. Can be: `GET` or `POST` and the default is `POST`. If an `application_sid` parameter is present, this parameter is ignored.

  • fallback_url (String) (defaults to: :unset)

    The URL that we call using the `fallback_method` if an error occurs when requesting or executing the TwiML at `url`. If an `application_sid` parameter is present, this parameter is ignored.

  • fallback_method (String) (defaults to: :unset)

    The HTTP method that we should use to request the `fallback_url`. Can be: `GET` or `POST` and the default is `POST`. If an `application_sid` parameter is present, this parameter is ignored.

  • status_callback (String) (defaults to: :unset)

    The URL we should call using the `status_callback_method` to send status information to your application. If no `status_callback_event` is specified, we will send the `completed` status. If an `application_sid` parameter is present, this parameter is ignored. URLs must contain a valid hostname (underscores are not permitted).

  • status_callback_event (Array[String]) (defaults to: :unset)

    The call progress events that we will send to the `status_callback` URL. Can be: `initiated`, `ringing`, `answered`, and `completed`. If no event is specified, we send the `completed` status. If you want to receive multiple events, specify each one in a separate `status_callback_event` parameter. See the code sample for monitoring call progress. If an `application_sid` is present, this parameter is ignored.

  • status_callback_method (String) (defaults to: :unset)

    The HTTP method we should use when calling the `status_callback` URL. Can be: `GET` or `POST` and the default is `POST`. If an `application_sid` parameter is present, this parameter is ignored.

  • send_digits (String) (defaults to: :unset)

    A string of keys to dial after connecting to the number, maximum of 32 digits. Valid digits in the string include: any digit (`0`-`9`), '`#`', '`*`' and '`w`', to insert a half second pause. For example, if you connected to a company phone number and wanted to pause for one second, and then dial extension 1234 followed by the pound key, the value of this parameter would be `ww1234#`. Remember to URL-encode this string, since the '`#`' character has special meaning in a URL. If both `SendDigits` and `MachineDetection` parameters are provided, then `MachineDetection` will be ignored.

  • timeout (String) (defaults to: :unset)

    The integer number of seconds that we should allow the phone to ring before assuming there is no answer. The default is `60` seconds and the maximum is `600` seconds. For some call flows, we will add a 5-second buffer to the timeout value you provide. For this reason, a timeout value of 10 seconds could result in an actual timeout closer to 15 seconds. You can set this to a short time, such as `15` seconds, to hang up before reaching an answering machine or voicemail.

  • record (Boolean) (defaults to: :unset)

    Whether to record the call. Can be `true` to record the phone call, or `false` to not. The default is `false`. The `recording_url` is sent to the `status_callback` URL.

  • recording_channels (String) (defaults to: :unset)

    The number of channels in the final recording. Can be: `mono` or `dual`. The default is `mono`. `mono` records both legs of the call in a single channel of the recording file. `dual` records each leg to a separate channel of the recording file. The first channel of a dual-channel recording contains the parent call and the second channel contains the child call.

  • recording_status_callback (String) (defaults to: :unset)

    The URL that we call when the recording is available to be accessed.

  • recording_status_callback_method (String) (defaults to: :unset)

    The HTTP method we should use when calling the `recording_status_callback` URL. Can be: `GET` or `POST` and the default is `POST`.

  • sip_auth_username (String) (defaults to: :unset)

    The username used to authenticate the caller making a SIP call.

  • sip_auth_password (String) (defaults to: :unset)

    The password required to authenticate the user account specified in `sip_auth_username`.

  • machine_detection (String) (defaults to: :unset)

    Whether to detect if a human, answering machine, or fax has picked up the call. Can be: `Enable` or `DetectMessageEnd`. Use `Enable` if you would like us to return `AnsweredBy` as soon as the called party is identified. Use `DetectMessageEnd`, if you would like to leave a message on an answering machine. If `send_digits` is provided, this parameter is ignored. For more information, see Answering Machine Detection.

  • machine_detection_timeout (String) (defaults to: :unset)

    The number of seconds that we should attempt to detect an answering machine before timing out and sending a voice request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds.

  • recording_status_callback_event (Array[String]) (defaults to: :unset)

    The recording status events that will trigger calls to the URL specified in `recording_status_callback`. Can be: `in-progress`, `completed` and `absent`. Defaults to `completed`. Separate multiple values with a space.

  • trim (String) (defaults to: :unset)

    Whether to trim any leading and trailing silence from the recording. Can be: `trim-silence` or `do-not-trim` and the default is `trim-silence`.

  • caller_id (String) (defaults to: :unset)

    The phone number, SIP address, or Client identifier that made this call. Phone numbers are in E.164 format (e.g., +16175551212). SIP addresses are formatted as `[email protected]`.

  • machine_detection_speech_threshold (String) (defaults to: :unset)

    The number of milliseconds that is used as the measuring stick for the length of the speech activity, where durations lower than this value will be interpreted as a human and longer than this value as a machine. Possible Values: 1000-6000. Default: 2400.

  • machine_detection_speech_end_threshold (String) (defaults to: :unset)

    The number of milliseconds of silence after speech activity at which point the speech activity is considered complete. Possible Values: 500-5000. Default: 1200.

  • machine_detection_silence_timeout (String) (defaults to: :unset)

    The number of milliseconds of initial silence after which an `unknown` AnsweredBy result will be returned. Possible Values: 2000-10000. Default: 5000.

  • async_amd (String) (defaults to: :unset)

    Select whether to perform answering machine detection in the background. Default, blocks the execution of the call until Answering Machine Detection is completed. Can be: `true` or `false`.

  • async_amd_status_callback (String) (defaults to: :unset)

    The URL that we should call using the `async_amd_status_callback_method` to notify customer application whether the call was answered by human, machine or fax.

  • async_amd_status_callback_method (String) (defaults to: :unset)

    The HTTP method we should use when calling the `async_amd_status_callback` URL. Can be: `GET` or `POST` and the default is `POST`.

  • byoc (String) (defaults to: :unset)

    The SID of a BYOC (Bring Your Own Carrier) trunk to route this call with. Note that `byoc` is only meaningful when `to` is a phone number; it will otherwise be ignored. (Beta)

  • call_reason (String) (defaults to: :unset)

    The Reason for the outgoing call. Use it to specify the purpose of the call that is presented on the called party's phone. (Branded Calls Beta)

  • call_token (String) (defaults to: :unset)

    A token string needed to invoke a forwarded call. A call_token is generated when an incoming call is received on a Twilio number. this field should be populated by the incoming call's call_token to make this outgoing call as a forwarded call of incoming call. A forwarded call should bear the same caller-id of incoming call.

  • recording_track (String) (defaults to: :unset)

    The audio track to record for the call. Can be: `inbound`, `outbound` or `both`. The default is `both`. `inbound` records the audio that is received by Twilio. `outbound` records the audio that is generated from Twilio. `both` records the audio that is received and generated by Twilio.

  • time_limit (String) (defaults to: :unset)

    The maximum duration of the call in seconds. Constraints depend on account and configuration.

  • url (String) (defaults to: :unset)

    The absolute URL that returns the TwiML instructions for the call. We will call this URL using the `method` when the call connects. For more information, see the Url Parameter section in Making Calls.

  • twiml (String) (defaults to: :unset)

    TwiML instructions for the call Twilio will use without fetching Twiml from url parameter. If both `twiml` and `url` are provided then `twiml` parameter will be ignored.

  • application_sid (String) (defaults to: :unset)

    The SID of the Application resource that will handle the call, if the call will be handled by an application.

Returns:


167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 167

def create(to: nil, from: nil, method: :unset, fallback_url: :unset, fallback_method: :unset, status_callback: :unset, status_callback_event: :unset, status_callback_method: :unset, send_digits: :unset, timeout: :unset, record: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, machine_detection: :unset, machine_detection_timeout: :unset, recording_status_callback_event: :unset, trim: :unset, caller_id: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, async_amd: :unset, async_amd_status_callback: :unset, async_amd_status_callback_method: :unset, byoc: :unset, call_reason: :unset, call_token: :unset, recording_track: :unset, time_limit: :unset, url: :unset, twiml: :unset, application_sid: :unset)
  data = Twilio::Values.of({
      'To' => to,
      'From' => from,
      'Url' => url,
      'Twiml' => twiml,
      'ApplicationSid' => application_sid,
      'Method' => method,
      'FallbackUrl' => fallback_url,
      'FallbackMethod' => fallback_method,
      'StatusCallback' => status_callback,
      'StatusCallbackEvent' => Twilio.serialize_list(status_callback_event) { |e| e },
      'StatusCallbackMethod' => status_callback_method,
      'SendDigits' => send_digits,
      'Timeout' => timeout,
      'Record' => record,
      'RecordingChannels' => recording_channels,
      'RecordingStatusCallback' => recording_status_callback,
      'RecordingStatusCallbackMethod' => recording_status_callback_method,
      'SipAuthUsername' => sip_auth_username,
      'SipAuthPassword' => sip_auth_password,
      'MachineDetection' => machine_detection,
      'MachineDetectionTimeout' => machine_detection_timeout,
      'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
      'Trim' => trim,
      'CallerId' => caller_id,
      'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
      'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
      'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
      'AsyncAmd' => async_amd,
      'AsyncAmdStatusCallback' => async_amd_status_callback,
      'AsyncAmdStatusCallbackMethod' => async_amd_status_callback_method,
      'Byoc' => byoc,
      'CallReason' => call_reason,
      'CallToken' => call_token,
      'RecordingTrack' => recording_track,
      'TimeLimit' => time_limit,
  })

  payload = @version.create('POST', @uri, data: data)

  CallInstance.new(@version, payload, account_sid: @solution[:account_sid], )
end

#eachObject

When passed a block, yields CallInstance records from the API. This operation lazily loads records as efficiently as possible until the limit is reached.


304
305
306
307
308
309
310
311
312
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 304

def each
  limits = @version.read_limits

  page = self.page(page_size: limits[:page_size], )

  @version.stream(page,
                  limit: limits[:limit],
                  page_limit: limits[:page_limit]).each {|x| yield x}
end

#feedback_summaries(sid = :unset) ⇒ FeedbackSummaryList, FeedbackSummaryContext

Access the feedback_summaries

Parameters:

  • sid (String) (defaults to: :unset)

    A 34 character string that uniquely identifies this resource.

Returns:

Raises:

  • (ArgumentError)

377
378
379
380
381
382
383
384
385
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 377

def feedback_summaries(sid=:unset)
  raise ArgumentError, 'sid cannot be nil' if sid.nil?

  if sid != :unset
    return FeedbackSummaryContext.new(@version, @solution[:account_sid], sid, )
  end

    @feedback_summaries ||= FeedbackSummaryList.new(@version, account_sid: @solution[:account_sid], )
end

#get_page(target_url) ⇒ Page

Retrieve a single page of CallInstance records from the API. Request is executed immediately.

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of CallInstance


363
364
365
366
367
368
369
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 363

def get_page(target_url)
  response = @version.domain.request(
      'GET',
      target_url
  )
  CallPage.new(@version, response, @solution)
end

#list(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil) ⇒ Array

Lists CallInstance records from the API as a list. Unlike stream(), this operation is eager and will load `limit` records into memory before returning.

Parameters:

  • to (String) (defaults to: :unset)

    Only show calls made to this phone number, SIP address, Client identifier or SIM SID.

  • from (String) (defaults to: :unset)

    Only include calls from this phone number, SIP address, Client identifier or SIM SID.

  • parent_call_sid (String) (defaults to: :unset)

    Only include calls spawned by calls with this SID.

  • status (call.Status) (defaults to: :unset)

    The status of the calls to include. Can be: `queued`, `ringing`, `in-progress`, `canceled`, `completed`, `failed`, `busy`, or `no-answer`.

  • start_time_before (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time_after (Time) (defaults to: :unset)

    Only include calls that started on this date

  • end_time_before (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time_after (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • limit (Integer) (defaults to: nil)

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil)

    Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000)

Returns:

  • (Array)

    Array of up to limit results


237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 237

def list(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil)
  self.stream(
      to: to,
      from: from,
      parent_call_sid: parent_call_sid,
      status: status,
      start_time_before: start_time_before,
      start_time: start_time,
      start_time_after: start_time_after,
      end_time_before: end_time_before,
      end_time: end_time,
      end_time_after: end_time_after,
      limit: limit,
      page_size: page_size
  ).entries
end

#page(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

Retrieve a single page of CallInstance records from the API. Request is executed immediately.

Parameters:

  • to (String) (defaults to: :unset)

    Only show calls made to this phone number, SIP address, Client identifier or SIM SID.

  • from (String) (defaults to: :unset)

    Only include calls from this phone number, SIP address, Client identifier or SIM SID.

  • parent_call_sid (String) (defaults to: :unset)

    Only include calls spawned by calls with this SID.

  • status (call.Status) (defaults to: :unset)

    The status of the calls to include. Can be: `queued`, `ringing`, `in-progress`, `canceled`, `completed`, `failed`, `busy`, or `no-answer`.

  • start_time_before (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time_after (Time) (defaults to: :unset)

    Only include calls that started on this date

  • end_time_before (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time_after (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • page_token (String) (defaults to: :unset)

    PageToken provided by the API

  • page_number (Integer) (defaults to: :unset)

    Page Number, this value is simply for client state

  • page_size (Integer) (defaults to: :unset)

    Number of records to return, defaults to 50

Returns:

  • (Page)

    Page of CallInstance


336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 336

def page(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
  params = Twilio::Values.of({
      'To' => to,
      'From' => from,
      'ParentCallSid' => parent_call_sid,
      'Status' => status,
      'StartTime<' => Twilio.serialize_iso8601_datetime(start_time_before),
      'StartTime' => Twilio.serialize_iso8601_datetime(start_time),
      'StartTime>' => Twilio.serialize_iso8601_datetime(start_time_after),
      'EndTime<' => Twilio.serialize_iso8601_datetime(end_time_before),
      'EndTime' => Twilio.serialize_iso8601_datetime(end_time),
      'EndTime>' => Twilio.serialize_iso8601_datetime(end_time_after),
      'PageToken' => page_token,
      'Page' => page_number,
      'PageSize' => page_size,
  })

  response = @version.page('GET', @uri, params: params)

  CallPage.new(@version, response, @solution)
end

#stream(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil) ⇒ Enumerable

Streams CallInstance records from the API as an Enumerable. This operation lazily loads records as efficiently as possible until the limit is reached.

Parameters:

  • to (String) (defaults to: :unset)

    Only show calls made to this phone number, SIP address, Client identifier or SIM SID.

  • from (String) (defaults to: :unset)

    Only include calls from this phone number, SIP address, Client identifier or SIM SID.

  • parent_call_sid (String) (defaults to: :unset)

    Only include calls spawned by calls with this SID.

  • status (call.Status) (defaults to: :unset)

    The status of the calls to include. Can be: `queued`, `ringing`, `in-progress`, `canceled`, `completed`, `failed`, `busy`, or `no-answer`.

  • start_time_before (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time (Time) (defaults to: :unset)

    Only include calls that started on this date

  • start_time_after (Time) (defaults to: :unset)

    Only include calls that started on this date

  • end_time_before (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • end_time_after (Time) (defaults to: :unset)

    Only include calls that ended on this date

  • limit (Integer) (defaults to: nil)

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit.

  • page_size (Integer) (defaults to: nil)

    Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000)

Returns:

  • (Enumerable)

    Enumerable that will yield up to limit results


280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 280

def stream(to: :unset, from: :unset, parent_call_sid: :unset, status: :unset, start_time_before: :unset, start_time: :unset, start_time_after: :unset, end_time_before: :unset, end_time: :unset, end_time_after: :unset, limit: nil, page_size: nil)
  limits = @version.read_limits(limit, page_size)

  page = self.page(
      to: to,
      from: from,
      parent_call_sid: parent_call_sid,
      status: status,
      start_time_before: start_time_before,
      start_time: start_time,
      start_time_after: start_time_after,
      end_time_before: end_time_before,
      end_time: end_time,
      end_time_after: end_time_after,
      page_size: limits[:page_size],
  )

  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
end

#to_sObject

Provide a user friendly representation


389
390
391
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 389

def to_s
  '#<Twilio.Api.V2010.CallList>'
end