Class: Twilio::REST::Api::V2010::AccountContext::ConferenceContext::ParticipantList

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

Instance Method Summary collapse

Constructor Details

#initialize(version, account_sid: nil, conference_sid: nil) ⇒ ParticipantList

Initialize the ParticipantList

Parameters:

  • version (Version)

    Version that contains the resource

  • account_sid (String) (defaults to: nil)

    The SID of the Account that created the Participant resource.

  • conference_sid (String) (defaults to: nil)

    The SID of the conference the participant is in.



24
25
26
27
28
29
30
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 24

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

  # Path Solution
  @solution = {account_sid: , conference_sid: conference_sid}
  @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants.json"
end

Instance Method Details

#create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, label: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset, recording_status_callback_event: :unset, conference_recording_status_callback_event: :unset, coaching: :unset, call_sid_to_coach: :unset, jitter_buffer_size: :unset, byoc: :unset, caller_id: :unset, call_reason: :unset, recording_track: :unset, time_limit: :unset, machine_detection: :unset, machine_detection_timeout: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, amd_status_callback: :unset, amd_status_callback_method: :unset) ⇒ ParticipantInstance

Create the ParticipantInstance

Parameters:

  • from (String) (defaults to: nil)

    The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in E.164 format (e.g., +16175551212). Client identifiers are formatted ‘client:name`. 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. If `to` is sip address, this value of `from` should be a username portion to be used to populate the P-Asserted-Identity header that is passed to the SIP endpoint.

  • to (String) (defaults to: nil)

    The phone number, SIP address, or Client identifier that received this call. Phone numbers are in E.164 format (e.g., +16175551212). SIP addresses are formatted as ‘sip:[email protected]`. Client identifiers are formatted `client:name`. Custom parameters may also be specified.

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

    The URL we should call using the ‘status_callback_method` to send status information to your application.

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

    The HTTP method we should use to call ‘status_callback`. Can be: `GET` and `POST` and defaults to `POST`.

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

    The conference state changes that should generate a call to ‘status_callback`. Can be: `initiated`, `ringing`, `answered`, and `completed`. Separate multiple values with a space. The default value is `completed`.

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

    A label for this participant. If one is supplied, it may subsequently be used to fetch, update or delete the participant.

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

    The number of seconds that we should allow the phone to ring before assuming there is no answer. Can be an integer between ‘5` and `600`, inclusive. The default value is `60`. We always add a 5-second timeout buffer to outgoing calls, so value of 10 would result in an actual timeout that was closer to 15 seconds.

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

    Whether to record the participant and their conferences, including the time between conferences. Can be ‘true` or `false` and the default is `false`.

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

    Whether the agent is muted in the conference. Can be ‘true` or `false` and the default is `false`.

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

    Whether to play a notification beep to the conference when the participant joins. Can be: ‘true`, `false`, `onEnter`, or `onExit`. The default value is `true`.

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

    Whether to start the conference when the participant joins, if it has not already started. Can be: ‘true` or `false` and the default is `true`. If `false` and the conference has not started, the participant is muted and hears background music until another participant starts the conference.

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

    Whether to end the conference when the participant leaves. Can be: ‘true` or `false` and defaults to `false`.

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

    The URL we should call using the ‘wait_method` for the music to play while participants are waiting for the conference to start. The default value is the URL of our standard hold music. Learn more about hold music.

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

    The HTTP method we should use to call ‘wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.

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

    Whether to allow an agent to hear the state of the outbound call, including ringing or disconnect messages. Can be: ‘true` or `false` and defaults to `true`.

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

    The maximum number of participants in the conference. Can be a positive integer from ‘2` to `250`. The default value is `250`.

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

    Whether to record the conference the participant is joining. Can be: ‘true`, `false`, `record-from-start`, and `do-not-record`. The default value is `false`.

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

    Whether to trim leading and trailing silence from your recorded conference audio files. Can be: ‘trim-silence` or `do-not-trim` and defaults to `trim-silence`.

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

    The URL we should call using the ‘conference_status_callback_method` when the conference events in `conference_status_callback_event` occur. Only the value set by the first participant to join the conference is used. Subsequent `conference_status_callback` values are ignored.

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

    The HTTP method we should use to call ‘conference_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.

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

    The conference state changes that should generate a call to ‘conference_status_callback`. Can be: `start`, `end`, `join`, `leave`, `mute`, `hold`, `modify`, `speaker`, and `announcement`. Separate multiple values with a space. Defaults to `start end`.

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

    The recording channels for the final recording. Can be: ‘mono` or `dual` and the default is `mono`.

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

    The URL that we should call using the ‘recording_status_callback_method` when the recording status changes.

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

    The HTTP method we should use when we call ‘recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.

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

    The SIP username used for authentication.

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

    The SIP password for authentication.

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

    The region where we should mix the recorded audio. Can be:‘us1`, `ie1`, `de1`, `sg1`, `br1`, `au1`, or `jp1`.

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

    The URL we should call using the ‘conference_recording_status_callback_method` when the conference recording is available.

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

    The HTTP method we should use to call ‘conference_recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.

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

    The recording state changes that should generate a call to ‘recording_status_callback`. Can be: `started`, `in-progress`, `paused`, `resumed`, `stopped`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `’in-progress completed failed’‘.

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

    The conference recording state changes that generate a call to ‘conference_recording_status_callback`. Can be: `in-progress`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `’in-progress completed failed’‘

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

    Whether the participant is coaching another call. Can be: ‘true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.

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

    The SID of the participant who is being ‘coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.

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

    Jitter buffer size for the connecting participant. Twilio will use this setting to apply Jitter Buffer before participant’s audio is mixed into the conference. Can be: ‘off`, `small`, `medium`, and `large`. Default to `large`.

  • 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)

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

    The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in E.164 format (e.g., +16175551212). Client identifiers are formatted ‘client:name`. 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, `callerId` must also be a phone number. If `to` is sip address, this value of `callerId` should be a username portion to be used to populate the From header that is passed to the SIP endpoint.

  • 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)

  • 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 sent from Twilio. `both` records the audio that is received and sent by Twilio.

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

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

  • 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.

  • 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.

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

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

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

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

Returns:



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 199

def create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, label: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset, recording_status_callback_event: :unset, conference_recording_status_callback_event: :unset, coaching: :unset, call_sid_to_coach: :unset, jitter_buffer_size: :unset, byoc: :unset, caller_id: :unset, call_reason: :unset, recording_track: :unset, time_limit: :unset, machine_detection: :unset, machine_detection_timeout: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, amd_status_callback: :unset, amd_status_callback_method: :unset)
  data = Twilio::Values.of({
      'From' => from,
      'To' => to,
      'StatusCallback' => status_callback,
      'StatusCallbackMethod' => status_callback_method,
      'StatusCallbackEvent' => Twilio.serialize_list(status_callback_event) { |e| e },
      'Label' => label,
      'Timeout' => timeout,
      'Record' => record,
      'Muted' => muted,
      'Beep' => beep,
      'StartConferenceOnEnter' => start_conference_on_enter,
      'EndConferenceOnExit' => end_conference_on_exit,
      'WaitUrl' => wait_url,
      'WaitMethod' => wait_method,
      'EarlyMedia' => early_media,
      'MaxParticipants' => max_participants,
      'ConferenceRecord' => conference_record,
      'ConferenceTrim' => conference_trim,
      'ConferenceStatusCallback' => conference_status_callback,
      'ConferenceStatusCallbackMethod' => conference_status_callback_method,
      'ConferenceStatusCallbackEvent' => Twilio.serialize_list(conference_status_callback_event) { |e| e },
      'RecordingChannels' => recording_channels,
      'RecordingStatusCallback' => recording_status_callback,
      'RecordingStatusCallbackMethod' => recording_status_callback_method,
      'SipAuthUsername' => sip_auth_username,
      'SipAuthPassword' => sip_auth_password,
      'Region' => region,
      'ConferenceRecordingStatusCallback' => conference_recording_status_callback,
      'ConferenceRecordingStatusCallbackMethod' => conference_recording_status_callback_method,
      'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
      'ConferenceRecordingStatusCallbackEvent' => Twilio.serialize_list(conference_recording_status_callback_event) { |e| e },
      'Coaching' => coaching,
      'CallSidToCoach' => call_sid_to_coach,
      'JitterBufferSize' => jitter_buffer_size,
      'Byoc' => byoc,
      'CallerId' => caller_id,
      'CallReason' => call_reason,
      'RecordingTrack' => recording_track,
      'TimeLimit' => time_limit,
      'MachineDetection' => machine_detection,
      'MachineDetectionTimeout' => machine_detection_timeout,
      'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
      'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
      'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
      'AmdStatusCallback' => amd_status_callback,
      'AmdStatusCallbackMethod' => amd_status_callback_method,
  })

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

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

#eachObject

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



315
316
317
318
319
320
321
322
323
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 315

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

#get_page(target_url) ⇒ Page

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

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of ParticipantInstance



358
359
360
361
362
363
364
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 358

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

#list(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil) ⇒ Array

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

Parameters:

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

    Whether to return only participants that are muted. Can be: ‘true` or `false`.

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

    Whether to return only participants that are on hold. Can be: ‘true` or `false`.

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

    Whether to return only participants who are coaching another call. Can be: ‘true` or `false`.

  • 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



276
277
278
279
280
281
282
283
284
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 276

def list(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
  self.stream(
      muted: muted,
      hold: hold,
      coaching: coaching,
      limit: limit,
      page_size: page_size
  ).entries
end

#page(muted: :unset, hold: :unset, coaching: :unset, page_token: :unset, page_number: :unset, page_size: :unset) ⇒ Page

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

Parameters:

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

    Whether to return only participants that are muted. Can be: ‘true` or `false`.

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

    Whether to return only participants that are on hold. Can be: ‘true` or `false`.

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

    Whether to return only participants who are coaching another call. Can be: ‘true` or `false`.

  • 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 ParticipantInstance



338
339
340
341
342
343
344
345
346
347
348
349
350
351
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 338

def page(muted: :unset, hold: :unset, coaching: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
  params = Twilio::Values.of({
      'Muted' => muted,
      'Hold' => hold,
      'Coaching' => coaching,
      'PageToken' => page_token,
      'Page' => page_number,
      'PageSize' => page_size,
  })

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

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

#stream(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil) ⇒ Enumerable

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

Parameters:

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

    Whether to return only participants that are muted. Can be: ‘true` or `false`.

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

    Whether to return only participants that are on hold. Can be: ‘true` or `false`.

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

    Whether to return only participants who are coaching another call. Can be: ‘true` or `false`.

  • 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



303
304
305
306
307
308
309
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 303

def stream(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
  limits = @version.read_limits(limit, page_size)

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

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

#to_sObject

Provide a user friendly representation



368
369
370
# File 'lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb', line 368

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