mock(new PlivoResponse($request,200, $body)); $actual = $this->client->multipartyCalls->list(); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCGet(){ $request = new PlivoRequest( 'GET', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_ca8e8a44-48e1-445d-afd5-1fcccdbccd9d/', [] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsGetResponse.json'); $this->mock(new PlivoResponse($request,200, $body)); $actual = $this->client->multipartyCalls->get(['uuid' => 'ca8e8a44-48e1-445d-afd5-1fcccdbccd9d']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCAddParticipant(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/Participant/', [ 'role'=> 'Agent', 'call_uuid'=> '1234-5678-4321-0987', 'call_status_callback_method'=> 'POST', '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_method'=> 'GET', 'agent_hold_music_method'=> 'GET', 'customer_hold_music_method'=> 'GET', 'recording_callback_method'=> 'GET', 'status_callback_method'=> 'GET', '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'=> true, '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_method'=> 'GET', 'stop_recording_audio_method'=> 'GET' ]); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsAddParticipantResponse.json'); $this->mock(new PlivoResponse($request,201, $body)); $actual = $this->client->multiPartyCalls->addParticipant('Agent', ['friendly_name' => 'Voice', 'call_uuid' => '1234-5678-4321-0987']); $this->assertRequest($request); self::assertNotNull($actual); self::assertNotNull($actual['calls']); self::assertEquals($actual['message'], "add participant action initiated"); } function testMPCStart(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/', ['status' => 'active'] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->start(['friendly_name' => 'Voice']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCEnd(){ $request = new PlivoRequest( 'DELETE', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->stop(['friendly_name' => 'Voice']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCStartRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/Record/', ['file_format'=> 'wav', 'recording_callback_url'=> 'https://plivo.com/status', 'recording_callback_method'=> 'POST'] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsStartRecordingResponse.json'); $this->mock(new PlivoResponse($request,202, $body)); $actual = $this->client->multiPartyCalls->startRecording(['friendly_name' => 'Voice', 'file_format' => 'wav', 'recording_callback_url'=> 'https://plivo.com/status', 'recording_callback_method'=> 'POST'] ); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCStopRecording(){ $request = new PlivoRequest( 'DELETE', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/Record/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->stopRecording(['friendly_name' => 'Voice']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCPauseRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/Record/Pause/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->pauseRecording(['friendly_name' => 'Voice']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCResumeRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/name_Voice/Record/Resume/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->resumeRecording(['friendly_name' => 'Voice']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCListParticipants(){ $request = new PlivoRequest( 'GET', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/', [] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsListParticipantsResponse.json'); $this->mock(new PlivoResponse($request,200, $body)); $actual = $this->client->multiPartyCalls->listParticipants(['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCUpdateParticipant(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/', ['hold'=>false, 'mute'=> false] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsUpdateParticipantResponse.json'); $this->mock(new PlivoResponse($request,202, $body)); $actual = $this->client->multiPartyCalls->updateParticipant(10, ['uuid' => '12345678-90123456', 'hold'=>false, 'mute'=> false]); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCKickParticipant(){ $request = new PlivoRequest( 'DELETE', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->kickParticipant(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNull($actual['error']); } function testMPCGetParticipant(){ $request = new PlivoRequest( 'GET', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/', [] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsGetParticipantResponse.json'); $this->mock(new PlivoResponse($request,200, $body)); $actual = $this->client->multiPartyCalls->getParticipant(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCStartParticipantRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/Record/', ['file_format'=> 'wav', 'recording_callback_url'=> 'https://plivo.com/status', 'recording_callback_method'=> 'POST'] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsStartParticipantRecordingResponse.json'); $this->mock(new PlivoResponse($request,200)); $actual = $this->client->multiPartyCalls->startParticipantRecording(10, ['uuid' => '12345678-90123456', 'file_format'=> 'wav', 'recording_callback_url'=> 'https://plivo.com/status', 'recording_callback_method'=> 'POST']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCStopParticipantRecording(){ $request = new PlivoRequest( 'DELETE', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/Record/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->stopParticipantRecording(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCPauseParticipantRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/Record/Pause/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->pauseParticipantRecording(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCResumeParticipantRecording(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Participant/10/Record/Resume/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->resumeParticipantRecording(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCStartPlayAudio(){ $request = new PlivoRequest( 'POST', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Member/10/Play/', ['url' => 'https://s3.amazonaws.com/XXX/XXX.mp3'] ); $body = file_get_contents(__DIR__ . '/../Mocks/multiPartyCallsStartPlayAudioResponse.json'); $this->mock(new PlivoResponse($request,202, $body)); $actual = $this->client->multiPartyCalls->startPlayAudio(10, "https://s3.amazonaws.com/XXX/XXX.mp3", ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } function testMPCStopPlayAudio(){ $request = new PlivoRequest( 'DELETE', 'Account/MAXXXXXXXXXXXXXXXXXX/MultiPartyCall/uuid_12345678-90123456/Member/10/Play/', [] ); $this->mock(new PlivoResponse($request,204)); $actual = $this->client->multiPartyCalls->stopPlayAudio(10, ['uuid' => '12345678-90123456']); $this->assertRequest($request); self::assertNotNull($actual); } }