class Plivo::Resources::Conference

Public Class Methods

new(client, options = nil) click to toggle source
Calls superclass method Plivo::Base::Resource::new
# File lib/plivo/resources/conferences.rb, line 5
def initialize(client, options = nil)
  @_name = 'Conference'
  @_identifier_string = 'conference_name'
  super
  @_is_voice_request = true
end

Public Instance Methods

deaf_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 115
def deaf_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Deaf',
                 'POST', nil, true)
end
delete() click to toggle source
# File lib/plivo/resources/conferences.rb, line 12
def delete
  perform_delete
end
delete_member(member_id) click to toggle source

@param [String] member_id

# File lib/plivo/resources/conferences.rb, line 17
def delete_member(member_id)
  valid_param?(:member_id, member_id, [String, Symbol, Integer, Integer], true)
  perform_action('Member/' + member_id.to_s, 'DELETE', nil, true)
end
kick_member(member_id) click to toggle source

@param [String] member_id

# File lib/plivo/resources/conferences.rb, line 23
def kick_member(member_id)
  valid_param?(:member_id, member_id, [String, Symbol, Integer, Integer], true)
  perform_action('Member/' + member_id.to_s + '/Kick', 'POST', nil, true)
end
mute_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 29
def mute_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Mute',
                 'POST', nil, true)
end
play_member(member_id, url) click to toggle source

@param [Array] member_id @param [String] url

# File lib/plivo/resources/conferences.rb, line 49
def play_member(member_id, url)
  valid_param?(:member_id, member_id, Array, true)
  valid_param?(:url, url, String, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Play',
                 'POST', { url: url }, true)
end
record(options = nil) click to toggle source

@param [Hash] options @option options [String] :file_format The file format of the record can be of mp3 or wav format. Defaults to mp3 format. @option options [String] :transcription_type The type of transcription required. The following values are allowed:

- auto - This is the default value. Transcription is completely automated; turnaround time is about 5 minutes.
- hybrid - Transcription is a combination of automated and human verification processes; turnaround time is about 10-15 minutes.

@option options [String] :transcription_url The URL where the transcription is available. @option options [String] :transcription_method The method used to invoke the transcription_url. Defaults to POST. @option options [String] :callback_url The URL invoked by the API when the recording ends. The following parameters are sent to the callback_url:

- api_id - the same API ID returned by the conference record API.
- record_url - the URL to access the recorded file.
- recording_id - recording ID of the recorded file.
- conference_name - the conference name recorded.
- recording_duration - duration in seconds of the recording.
- recording_duration_ms - duration in milliseconds of the recording.
- recording_start_ms - when the recording started (epoch time UTC) in milliseconds.
- recording_end_ms - when the recording ended (epoch time UTC) in milliseconds.

@option options [String] :callback_method The method which is used to invoke the callback_url URL. Defaults to POST.

# File lib/plivo/resources/conferences.rb, line 151
def record(options = nil)
  return perform_action('Record', 'POST', nil, true) if options.nil?
  valid_param?(:options, options, Hash, true)

  params = {}
  %i[transcription_url callback_url].each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true)
      params[param] = options[param]
    end
  end

  %i[transcription_method callback_method].each do |param|
    if options.key?(param) &&
       valid_param?(param, options[param], [String, Symbol], true, %w[GET POST])
      params[param] = options[param]
    end
  end

  if options.key?(:file_format) &&
     valid_param?(:file_format, options[:file_format],
                  [String, Symbol], true, %w[wav mp3])
    params[:file_format] = options[:file_format]
  end

  if options.key?(:transcription_type) &&
     valid_param?(:transcription_type, options[:transcription_type],
                  [String, Symbol], true, %w[auto hybrid])
    params[:transcription_type] = options[:transcription_type]
  end

  perform_action('Record', 'POST', params, true)
end
speak_member(member_id, text, options = nil) click to toggle source

@param [Array] member_id @param [String] text - The text that the member must hear. @param [Hash] options @option options [String] :voice - The voice to be used. Can be MAN or WOMAN. Defaults to WOMAN. @option options [String] :language - The language to be used, see Supported voices and languages {www.plivo.com/docs/api/conference/member/#supported-voice-and-languages}. Defaults to en-US .

# File lib/plivo/resources/conferences.rb, line 74
def speak_member(member_id, text, options = nil)
  valid_param?(:member_id, member_id, Array, true)
  valid_param?(:text, text, String, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end

  params = { text: text }

  if options.nil?
    return perform_action('Member/' + member_id.join(',') + '/Speak',
                          'POST', params, true)
  end

  if options.key?(:voice) &&
     valid_param?(:voice, options[:voice],
                  [String, Symbol], true, %w[MAN WOMAN])
    params[:voice] = options[:voice]
  end

  if options.key?(:language) &&
     valid_param?(:language, options[:language],
                  String, true)
    params[:language] = options[:language]
  end

  perform_action('Member/' + member_id.join(',') + '/Speak',
                 'POST', params, true)
end
stop_play_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 60
def stop_play_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Play',
                 'DELETE', nil, true)
end
stop_record() click to toggle source
# File lib/plivo/resources/conferences.rb, line 185
def stop_record
  perform_action('Record', 'DELETE')
end
stop_speak_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 105
def stop_speak_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Speak',
                 'DELETE', nil, true)
end
to_json_member(member) click to toggle source
# File lib/plivo/resources/conferences.rb, line 198
def to_json_member(member)
  {
    muted: member['muted'],
    member_id: member['member_id'],
    deaf: member['deaf'],
    from: member['from'],
    to: member['to'],
    caller_name: member['caller_name'],
    direction: member['direction'],
    call_uuid: member['call_uuid'],
    join_time: member['join_time']
  }.to_json
end
to_s() click to toggle source
# File lib/plivo/resources/conferences.rb, line 189
def to_s
  response_json = {}
  response_variables = self.instance_variables.drop(5)
  response_variables.each do |variable|
    response_json[variable.to_s[1..-1]] = self.instance_variable_get(variable)
  end
  return response_json.to_s
end
undeaf_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 125
def undeaf_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Deaf',
                 'DELETE', nil, true)
end
unmute_member(member_id) click to toggle source

@param [Array] member_id

# File lib/plivo/resources/conferences.rb, line 39
def unmute_member(member_id)
  valid_param?(:member_id, member_id, Array, true)
  member_id.each do |member|
    valid_param?(:member, member, [String, Symbol, Integer, Integer], true)
  end
  perform_action('Member/' + member_id.join(',') + '/Mute', 'DELETE')
end