masterfermin02 / vicidial-api-wrapper
Beautiful and simple Implementation to integrate Vicidial API
Installs: 392
Dependents: 0
Suggesters: 0
Security: 0
Stars: 22
Watchers: 5
Forks: 11
Open Issues: 0
Requires
- php: ^8.1
- ext-json: *
- graham-campbell/guzzle-factory: ^5.0
- php-http/discovery: ^1.19
- php-http/multipart-stream-builder: ^1.3
- psr/http-client: ^1.0
- psr/http-client-implementation: *
- psr/http-factory-implementation: *
- psr/http-message: ^1.1
Requires (Dev)
- guzzlehttp/guzzle: ^7.5
- guzzlehttp/psr7: ^2.6
- laravel/pint: ^1.13
- nunomaduro/collision: ^7.10
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ~9
- rector/rector: ^0.18.8
- squizlabs/php_codesniffer: ~3.0
- symfony/var-dumper: ^6.3
- vlucas/phpdotenv: ^5.5
README
Beautiful and simple Implementation to integrate Vicidial API
DISCLAIMER: VICIdial is a registered trademark of the Vicidial Group which i am not related in anyway.
VICIDIAL is a software suite that is designed to interact with the Asterisk Open-Source PBX Phone system to act as a complete inbound/outbound contact center suite with inbound email support as well.
http://www.vicidial.org/vicidial.php
Vicidial has an AGENT API and NON AGENT API, this classes are intended to make it easier to use in PHP
Install
Requires PHP 8.1
composer require masterfermin02/vicidial-api-wrapper
For PHP 7.4+ must install this version
composer require masterfermin02/vicidial-api-wrapper:1.0.3
How to use it
Example 1: Update fields on agent screen
<?php $fields['first_name'] = "John"; $fields['last_name'] = "Doe"; $fields['address1'] = "123 Fake St"; try { $agentApi = VicidialApi::create( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_USER'), getenv('YOUR_VICIDIAL_PASSWORD') )->agent(); echo $agentApi->updateFields("gabriel", $fields); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }
Example 2: Hangup Call, Dispo it and Pause Agent
<?php try { $agentApi = VicidialApi::create( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_USER'), getenv('YOUR_VICIDIAL_PASSWORD') )->agent(); $agentApi->pause("gabriel", "PAUSE"); $agentApi->hangup("gabriel"); $agentApi->dispo("gabriel", ['value' => 'SALE']); $agentApi->pauseCode("gabriel", "BREAK"); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }
Example 3: Update fields on agent screen
<?php $fields['first_name'] = "John"; $fields['last_name'] = "Doe"; $fields['address1'] = "123 Fake St"; try { $agentApi = VicidialApi::create( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_USER'), getenv('YOUR_VICIDIAL_PASSWORD') )->agent(); echo $agentApi->updateFields("gabriel", $fields); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }
Vicidial admin or No agent api
<?php require_once 'vendor/autoload.php'; try { $agentApi = VicidialApi::create( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_USER'), getenv('YOUR_VICIDIAL_PASSWORD') )->admin(); echo $agentApi->mohList([ 'format' => 'selectframe', 'comments' => 'fieldname', 'stage' => 'date' ]); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }
Url encode
<?php require_once 'vendor/autoload.php'; $fields['first_name'] = "John"; $fields['last_name'] = "Doe"; $fields['address1'] = "123 Fake St"; $fields['phone_number'] = "18002474747"; try { $agentApi = VicidialApi::create( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_USER'), getenv('YOUR_VICIDIAL_PASSWORD'), "test", false )->admin(); echo $agentApi ->withUrlEncode(true) ->addLead($fields); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }
Login remote agent
<?php require_once 'vendor/autoload.php'; try { $remoteAgent = VicidialApi::createWithBasicAuth( getenv('YOUR_VICIDIAL_IP'), getenv('YOUR_VICIDIAL_API_USER'), getenv('YOUR_VICIDIAL_API_PASSWORD'), getenv('YOUR_VICIDIAL_REMOTE_AGENT'), getenv('YOUR_VICIDIAL_REMOTE_PASSWORD'), )->remoteAgent(); $remoteAgent->active( getenv('agentId'), getenv('confExten'), ); $remoteAgent->hangUp( "gabriel", [ 'status' => 'SALE', ] ] ); $remoteAgent->inActive( getenv('agentId'), getenv('confExten'), ); } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; }