class Plivo::Resources::MultiPartyCall
Public Class Methods
Source
# File lib/plivo/resources/multipartycalls.rb, line 5 def initialize(client, options = nil) @_name = 'MultiPartyCall' @_identifier_string = 'mpc_uuid' super @_is_voice_request = true if options.key? :multi_party_prefix @id = options[:multi_party_prefix] + '_' + @id else @id = 'uuid_' + @id end configure_resource_uri end
Calls superclass method
Plivo::Base::Resource::new
Public Instance Methods
Source
# File lib/plivo/resources/multipartycalls.rb, line 22 def add_participant(role, from=nil, to=nil, call_uuid=nil, caller_name=nil, call_status_callback_url=nil, call_status_callback_method='POST', sip_headers=nil, confirm_key=nil, confirm_key_sound_url=nil, confirm_key_sound_method='GET', dial_music='Real', ring_timeout=45, delay_dial=0, max_duration=14400, max_participants=10, record_min_member_count=1, wait_music_url=nil, wait_music_method='GET', agent_hold_music_url=nil, agent_hold_music_method='GET', customer_hold_music_url=nil, customer_hold_music_method='GET', recording_callback_url=nil, recording_callback_method='GET', status_callback_url=nil, status_callback_method='GET', on_exit_action_url=nil, on_exit_action_method='POST', record=false, record_file_format='mp3', status_callback_events='mpc-state-changes,participant-state-changes', stay_alone=false, coach_mode=true, mute=false, hold=false, start_mpc_on_enter=false, end_mpc_on_exit=false, relay_dtmf_inputs=false, enter_sound='beep:1', enter_sound_method='GET', exit_sound='beep:2', exit_sound_method='GET', start_recording_audio=nil, start_recording_audio_method='GET', stop_recording_audio=nil, stop_recording_audio_method='GET') if (from and to) and call_uuid raise_invalid_request('cannot specify call_uuid when (from, to) is provided') end if not from and not to and not call_uuid raise_invalid_request('specify either call_uuid or (from, to)') end if call_uuid.nil? and (not from or not to) raise_invalid_request('specify (from, to) when not adding an existing call_uuid to multi party participant') end valid_param?(:role, role.downcase, String, true, %w[agent supervisor customer]) valid_param?(:from, from, String, false ) unless from.nil? valid_param?(:to, to, String, false ) unless to.nil? valid_multiple_destination_nos?(:to, to, role: role, delimiter: '<', agent_limit: 20) unless to.nil? valid_param?(:call_uuid, call_uuid, String, false ) unless call_uuid.nil? valid_param?(:caller_name, caller_name, String, false) unless caller_name.nil? valid_range?(:caller_name, caller_name.length, false, 0, 50) unless caller_name.nil? valid_url?(:call_status_callback_url, call_status_callback_url, false) unless call_status_callback_url.nil? valid_param?(:call_status_callback_method, call_status_callback_method.upcase, String, false, %w[GET POST]) valid_param?(:sip_headers, sip_headers, String, false) unless sip_headers.nil? valid_param?(:confirm_key, confirm_key, String, false , %w[0 1 2 3 4 5 6 7 8 9 # *]) unless confirm_key.nil? valid_url?(:confirm_key_sound_url, confirm_key_sound_url, false) unless confirm_key_sound_url.nil? valid_param?(:confirm_key_sound_method, confirm_key_sound_method.upcase, String, false, %w[GET POST]) is_one_among_string_url?(:dial_music, dial_music, false, %w[real none]) valid_param?(:ring_timeout, ring_timeout, [String,Integer], false) valid_multiple_destination_integers?(:ring_timeout, ring_timeout) valid_param?(:delay_dial, delay_dial, [String,Integer], false) valid_multiple_destination_integers?(:delay_dial, delay_dial) valid_range?(:max_duration, max_duration, false, 300, 28800) valid_range?(:max_participants, max_participants, false, 2, 10) valid_range?(:record_min_member_count, record_min_member_count, false, 1, 2) valid_url?(:wait_music_url, wait_music_url, false ) unless wait_music_url.nil? valid_param?(:wait_music_method, wait_music_method.upcase, String, false , %w[GET POST]) valid_url?(:agent_hold_music_url, agent_hold_music_url, false) unless agent_hold_music_url.nil? valid_param?(:agent_hold_music_method, agent_hold_music_method.upcase, String, false , %w[GET POST]) valid_url?(:customer_hold_music_url, customer_hold_music_url, false) unless customer_hold_music_url.nil? valid_param?(:customer_hold_music_method, customer_hold_music_method.upcase, String, false, %w[GET POST]) valid_url?(:recording_callback_url, recording_callback_url, false) unless recording_callback_url.nil? valid_param?(:recording_callback_method, recording_callback_method.upcase, String, false, %w[GET POST]) valid_url?(:status_callback_url, status_callback_url, false) unless status_callback_url.nil? valid_param?(:status_callback_method, status_callback_method.upcase, String, false, %w[GET POST]) valid_url?(:on_exit_action_url, on_exit_action_url, false ) unless on_exit_action_url.nil? valid_param?(:on_exit_action_method, on_exit_action_method.upcase, String, false, %w[GET POST]) valid_param?(:record, record, [TrueClass, FalseClass], false ) valid_param?(:record_file_format, record_file_format.downcase, String, false, %w[mp3 wav]) multi_valid_param?(:status_callback_events, status_callback_events.downcase, String, false, %w[mpc-state-changes participant-state-changes participant-speak-events participant-digit-input-events add-participant-api-events], true, ',') valid_param?(:stay_alone, stay_alone, [TrueClass, FalseClass], false) valid_param?(:coach_mode, coach_mode, [TrueClass, FalseClass], false) valid_param?(:mute, mute, [TrueClass, FalseClass],false) valid_param?(:hold, hold, [TrueClass, FalseClass], false) valid_param?(:start_mpc_on_enter, start_mpc_on_enter, [TrueClass, FalseClass], false) valid_param?(:end_mpc_on_exit, end_mpc_on_exit, [TrueClass, FalseClass], false) valid_param?(:relay_dtmf_inputs, relay_dtmf_inputs, [TrueClass, FalseClass], false) is_one_among_string_url?(:enter_sound, enter_sound, false, %w[beep:1 beep:2 none]) valid_param?(:enter_sound_method, enter_sound_method.upcase, String, false, %w[GET POST]) is_one_among_string_url?(:exit_sound, exit_sound, false , %w[beep:1 beep:2 none]) valid_param?(:exit_sound_method, exit_sound_method.upcase, String, false, %w[GET POST]) valid_param?(:start_recording_audio_method, start_recording_audio_method.upcase, String, false, %w[GET POST]) valid_url?(:start_recording_audio, start_recording_audio, false ) unless start_recording_audio.nil? valid_param?(:stop_recording_audio_method, stop_recording_audio_method.upcase, String, false, %w[GET POST]) valid_url?(:stop_recording_audio, stop_recording_audio, false ) unless stop_recording_audio.nil? if (to!=nil) && (ring_timeout.is_a?(String)) && (to.split('<').size < ring_timeout.split('<').size) raise_invalid_request("RingTimeout:number of ring_timout(s) should be same as number of destination(s)") end if (to!=nil) && (delay_dial.is_a?(String)) && (to.split('<').size < delay_dial.split('<').size) raise_invalid_request("Delaydial : number of delay_dial(s) should be same as number of destination(s)") end params = {} params[:role] = role unless role.nil? params[:from] = from unless from.nil? params[:to] = to unless to.nil? params[:call_uuid] = call_uuid unless call_uuid.nil? params[:caller_name] = caller_name || from params[:call_status_callback_url] = call_status_callback_url unless call_status_callback_url.nil? params[:call_status_callback_method] = call_status_callback_method.upcase unless call_status_callback_method.nil? params[:sip_headers] = sip_headers unless sip_headers.nil? params[:confirm_key] = confirm_key unless confirm_key.nil? params[:confirm_key_sound_url] = confirm_key_sound_url unless confirm_key_sound_url.nil? params[:confirm_key_sound_method] = confirm_key_sound_method.upcase unless confirm_key_sound_method.nil? params[:dial_music] = dial_music unless dial_music.nil? params[:ring_timeout] = ring_timeout unless ring_timeout.nil? params[:delay_dial] = delay_dial unless delay_dial.nil? params[:max_duration] = max_duration unless max_duration.nil? params[:max_participants] = max_participants unless max_participants.nil? params[:record_min_member_count] = record_min_member_count unless record_min_member_count.nil? params[:wait_music_url] = wait_music_url unless wait_music_url.nil? params[:wait_music_method] = wait_music_method.upcase unless wait_music_method.nil? params[:agent_hold_music_url] = agent_hold_music_url unless agent_hold_music_url.nil? params[:agent_hold_music_method] = agent_hold_music_method.upcase unless agent_hold_music_method.nil? params[:customer_hold_music_url] = customer_hold_music_url unless customer_hold_music_url.nil? params[:customer_hold_music_method] = customer_hold_music_method.upcase unless customer_hold_music_method.nil? params[:recording_callback_url] = recording_callback_url unless recording_callback_url.nil? params[:recording_callback_method] = recording_callback_method.upcase unless recording_callback_method.nil? params[:status_callback_url] = status_callback_url unless status_callback_url.nil? params[:status_callback_method] = status_callback_method.upcase unless status_callback_method.nil? params[:on_exit_action_url] = on_exit_action_url unless on_exit_action_url.nil? params[:on_exit_action_method] = on_exit_action_method.upcase unless on_exit_action_method.nil? params[:record] = record unless record.nil? params[:record_file_format] = record_file_format.downcase unless record_file_format.nil? params[:status_callback_events] = status_callback_events.downcase unless status_callback_events.nil? params[:stay_alone] = stay_alone unless stay_alone.nil? params[:coach_mode] = coach_mode unless coach_mode.nil? params[:mute] = mute unless mute.nil? params[:hold] = hold unless hold.nil? params[:start_mpc_on_enter] = start_mpc_on_enter unless start_mpc_on_enter.nil? params[:end_mpc_on_exit] = end_mpc_on_exit unless end_mpc_on_exit.nil? params[:relay_dtmf_inputs] = relay_dtmf_inputs unless relay_dtmf_inputs.nil? params[:enter_sound] = enter_sound unless enter_sound.nil? params[:enter_sound_method] = enter_sound_method.upcase unless exit_sound_method.nil? params[:exit_sound] = exit_sound unless exit_sound.nil? params[:exit_sound_method] = exit_sound_method.upcase unless exit_sound_method.nil? params[:start_recording_audio] = start_recording_audio unless start_recording_audio.nil? params[:start_recording_audio_method] = start_recording_audio_method.upcase unless start_recording_audio_method.nil? params[:stop_recording_audio] = stop_recording_audio unless stop_recording_audio.nil? params[:stop_recording_audio_method] = stop_recording_audio_method.upcase unless stop_recording_audio_method.nil? perform_action_apiresponse('Participant', 'POST', params, true ) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 18 def get perform_action(nil,'GET',nil,true) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 259 def get_participant(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client,resource_id: @id, member_id: member_id).get_participant end
Source
# File lib/plivo/resources/multipartycalls.rb, line 254 def kick_participant(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: @id, member_id: member_id).kick_participant end
Source
# File lib/plivo/resources/multipartycalls.rb, line 242 def list_participants(call_uuid = nil ) valid_param?(:call_uuid, call_uuid, String, false) unless call_uuid.nil? params = {} params[:call_uuid] = call_uuid unless call_uuid.nil? perform_action('Participant', 'GET', params, true) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 232 def pause_participant_recording(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: mpc_id[1], member_id: member_id).pause_participant_recording end
Source
# File lib/plivo/resources/multipartycalls.rb, line 214 def pause_recording perform_action_apiresponse('Record/Pause', 'POST') end
Source
# File lib/plivo/resources/multipartycalls.rb, line 237 def resume_participant_recording(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: mpc_id[1], member_id: member_id).resume_participant_recording end
Source
# File lib/plivo/resources/multipartycalls.rb, line 218 def resume_recording perform_action_apiresponse('Record/Resume', 'POST') end
Source
# File lib/plivo/resources/multipartycalls.rb, line 189 def start perform_action_apiresponse(nil, 'POST', Hash['status' => 'active'], true) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 222 def start_participant_recording(member_id, file_format='mp3', recording_callback_url=nil, recording_callback_method='POST') valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: mpc_id[1], member_id: member_id).start_participant_recording(file_format, recording_callback_url, recording_callback_method) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 264 def start_play_audio(member_id, url) valid_param?(:member_id, member_id, [String, Integer], true) valid_url?(:url, url, true) MultiPartyCallMember.new(@_client, resource_id: @id, member_id: member_id).start_play_audio(url) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 197 def start_recording(file_format = 'mp3', recording_callback_url = nil, recording_callback_method='POST') valid_param?(:file_format, file_format, String, false , %w[mp3 wav]) valid_url?(:recording_callback_url, recording_callback_url, false) unless recording_callback_url.nil? valid_param?(:recording_callback_method, recording_callback_method.upcase,String, false, %w[GET POST]) params = {} params[:file_format] = file_format.downcase unless file_format.nil? params[:recording_callback_url] = recording_callback_url unless recording_callback_url.nil? params[:recording_callback_method] = recording_callback_method.upcase unless recording_callback_method.nil? perform_action_apiresponse('Record', 'POST', params, true) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 193 def stop perform_action_apiresponse(nil, 'DELETE', nil, true) end
Source
# File lib/plivo/resources/multipartycalls.rb, line 227 def stop_participant_recording(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: mpc_id[1], member_id: member_id).stop_participant_recording end
Source
# File lib/plivo/resources/multipartycalls.rb, line 270 def stop_play_audio(member_id) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallMember.new(@_client, resource_id: @id, member_id: member_id).stop_play_audio end
Source
# File lib/plivo/resources/multipartycalls.rb, line 210 def stop_recording perform_action_apiresponse('Record', 'DELETE') end
Source
# File lib/plivo/resources/multipartycalls.rb, line 249 def update_participant(member_id, coach_mode = nil, mute = nil , hold = nil) valid_param?(:member_id, member_id, [String, Integer], true) MultiPartyCallParticipant.new(@_client, resource_id: @id, member_id: member_id).update_participant(coach_mode, mute, hold) end