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 unique id of the Account responsible for creating this Call



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

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, if_machine: :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, url: :unset, application_sid: :unset) ⇒ CallInstance

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

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.

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

    The HTTP method Twilio should use when requesting the URL. Defaults to ‘POST`. If an `ApplicationSid` was provided, this parameter is ignored.

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

    A URL that Twilio will request if an error occurs requesting or executing the TwiML at ‘Url`. If an `ApplicationSid` was provided, this parameter is ignored.

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

    The HTTP method that Twilio should use to request the ‘FallbackUrl`. Must be either `GET` or `POST`. Defaults to `POST`. If an `ApplicationSid` was provided, this parameter is ignored.

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

    A URL that Twilio will request when the call ends to notify your app. If an ‘ApplicationSid` was provided, this parameter is ignored.

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

    The status_callback_event

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

    The HTTP method that Twilio should use to request the ‘StatusCallback`. Defaults to `POST`. If an `ApplicationSid` was provided, this parameter is ignored.

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

    A string of keys to dial after connecting to the number. 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, dial extension 1234 and then the pound key, use ‘ww1234#`.

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

    Tell Twilio to try and determine if a machine (like voicemail) or a human has answered the call. Possible value are ‘Continue` and `Hangup`.

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

    The integer number of seconds that Twilio should allow the phone to ring before assuming there is no answer. Default is ‘60` seconds, the maximum is `999` seconds. Note, you could set this to a low value, such as `15`, to hangup before reaching an answering machine or voicemail.

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

    Set this parameter to true to record the entirety of a phone call. The RecordingUrl will be sent to the StatusCallback URL. Defaults to false.

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

    The recording_channels

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

    The recording_status_callback

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

    The recording_status_callback_method

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

    The sip_auth_username

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

    The sip_auth_password

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

    Twilio will try to detect if a human, fax machine or answering machine has answered the call. Possible value are ‘Enable` and `DetectMessageEnd`.

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

    The integer number of miliseconds that Twilio should wait while machine_detection is performned before timing out.

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

    The recording_status_callback_event

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

    The fully qualified URL that should be consulted when the call connects. Just like when you set a URL on a phone number for handling inbound calls.

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

    The 34 character sid of the application Twilio should use to handle this phone call. If this parameter is present, Twilio will ignore all of the voice URLs passed and use the URLs set on the application.

Returns:



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 88

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, if_machine: :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, url: :unset, application_sid: :unset)
  data = Twilio::Values.of({
      'To' => to,
      'From' => from,
      'Url' => url,
      '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,
      'IfMachine' => if_machine,
      '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 },
  })

  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.



208
209
210
211
212
213
214
215
216
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 208

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)

    The sid

Returns:

Raises:

  • (ArgumentError)


278
279
280
281
282
283
284
285
286
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 278

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



265
266
267
268
269
270
271
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 265

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 to this phone number or Client identifier

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

    Only show calls from this phone number or Client identifier

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

    Only show calls spawned by the call with this Sid

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

    Only show calls currently in this status

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

    StartTime to filter on

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

    StartTime to filter on

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

    StartTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

  • 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



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 145

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 to this phone number or Client identifier

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

    Only show calls from this phone number or Client identifier

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

    Only show calls spawned by the call with this Sid

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

    Only show calls currently in this status

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

    StartTime to filter on

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

    StartTime to filter on

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

    StartTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

  • 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



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

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
  )
  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 to this phone number or Client identifier

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

    Only show calls from this phone number or Client identifier

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

    Only show calls spawned by the call with this Sid

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

    Only show calls currently in this status

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

    StartTime to filter on

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

    StartTime to filter on

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

    StartTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

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

    EndTime to filter on

  • 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



184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 184

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



290
291
292
# File 'lib/twilio-ruby/rest/api/v2010/account/call.rb', line 290

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