PHP code example of masterfermin02 / vicidial-api-wrapper
1. Go to this page and download the library: Download masterfermin02/vicidial-api-wrapper library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
masterfermin02 / vicidial-api-wrapper example snippets
// New way (v4.0+)
$config = VicidialConfig::create(
host: 'vicidial.example.com',
user: 'api_user',
pass: 'api_password',
protocol: 'https',
timeout: 60
);
$client = VicidialClient::make($config);
use VicidialApi\VicidialConfig;
use VicidialApi\VicidialClient;
$config = VicidialConfig::create(
host: getenv('YOUR_VICIDIAL_IP'),
user: getenv('YOUR_VICIDIAL_USER'),
pass: getenv('YOUR_VICIDIAL_PASSWORD'),
protocol: 'https', // Optional: 'http' or 'https' (default: 'http')
verifyTls: true, // Optional: Verify TLS certificates (default: true)
timeout: 30, // Optional: Request timeout in seconds (default: 30)
urlEncodeDefault: false, // Optional: URL encode by default (default: false)
userAgent: 'MyApp/1.0', // Optional: Custom user agent
source: 'myapp' // Optional: Source identifier (default: 'test')
);
$client = VicidialClient::make($config);
// or
$client = VicidialApi::client($config);
use VicidialApi\VicidialConfig;
use VicidialApi\VicidialClient;
$config = VicidialConfig::createWithBasicAuth(
host: getenv('YOUR_VICIDIAL_IP'),
user: getenv('YOUR_VICIDIAL_USER'),
pass: getenv('YOUR_VICIDIAL_PASSWORD'),
basicAuthUser: getenv('YOUR_VICIDIAL_API_USER'), // HTTP Basic Auth user
basicAuthPass: getenv('YOUR_VICIDIAL_API_PASSWORD'), // HTTP Basic Auth password
protocol: 'https',
timeout: 60
);
$client = VicidialClient::make($config);
// New Response DTO methods (add "Response" suffix to any method)
$response = $client->agent()->updateFieldsResponse("gabriel", [
'first_name' => 'John',
'last_name' => 'Doe'
]);
// Built-in success checking - no regex needed!
if ($response->ok()) {
echo "Success!";
// Direct data access
$leadId = $response->get('lead_id');
// Multiple output formats
$array = $response->asArray();
$json = $response->toJson();
$text = $response->asText();
}
// Original methods still work for backward compatibility
$rawString = $client->agent()->updateFields("gabriel", $fields);
$api = VicidialApi::create(
getenv('YOUR_VICIDIAL_IP'),
getenv('YOUR_VICIDIAL_USER'),
getenv('YOUR_VICIDIAL_PASSWORD')
);
$api = VicidialApi::createWithBasicAuth(
getenv('YOUR_VICIDIAL_IP'),
getenv('YOUR_VICIDIAL_API_USER'), // HTTP Basic Auth user
getenv('YOUR_VICIDIAL_API_PASSWORD'), // HTTP Basic Auth password
getenv('YOUR_VICIDIAL_REMOTE_AGENT'), // Agent username
getenv('YOUR_VICIDIAL_REMOTE_PASSWORD') // Agent password
);
icidialApi\VicidialConfig;
use VicidialApi\VicidialClient;
// Create configuration
$config = VicidialConfig::create(
host: getenv('YOUR_VICIDIAL_IP'),
user: getenv('YOUR_VICIDIAL_USER'),
pass: getenv('YOUR_VICIDIAL_PASSWORD'),
protocol: 'https',
timeout: 30
);
// Create client
$client = VicidialClient::make($config);
try {
// Update fields on agent screen
$fields = [
'first_name' => 'John',
'last_name' => 'Doe',
'address1' => '123 Fake St'
];
echo $client->agent()->updateFields("gabriel", $fields);
// Make an external dial
echo $client->agent()->dial("gabriel", [
'phone_number' => '1234567890',
'phone_code' => '1'
]);
// Use admin API
echo $client->admin()->mohList([
'format' => 'selectframe'
]);
} catch (Exception $e) {
echo 'Exception: ', $e->getMessage(), "\n";
}
onolog\Logger;
use Monolog\Handler\StreamHandler;
use VicidialApi\VicidialConfig;
use VicidialApi\VicidialClient;
use VicidialApi\ValueObjects\RetryConfig;
// Setup logging
$logger = new Logger('vicidial-api');
$logger->pushHandler(new StreamHandler('logs/vicidial.log', Logger::DEBUG));
// Production configuration with all reliability features
$config = VicidialConfig::create(
host: getenv('YOUR_VICIDIAL_IP'),
user: getenv('YOUR_VICIDIAL_USER'),
pass: getenv('YOUR_VICIDIAL_PASSWORD'),
protocol: 'https',
timeout: 60, // Request timeout
connectTimeout: 10, // Connection timeout
retryConfig: RetryConfig::default(), // Enable automatic retries
logger: $logger, // Enable request logging
);
$client = VicidialClient::make($config);
try {
// All requests are automatically:
// - Logged with sanitized parameters
// - Retried on transient failures (5xx, network errors)
// - Timed out if they take too long
$response = $client->agent()->updateFieldsResponse("gabriel", [
'first_name' => 'John',
'phone_number' => '5551234567'
]);
if ($response->ok()) {
echo "✓ Success! Lead ID: " . $response->get('lead_id');
}
} catch (Exception $e) {
// Error is already logged, handle appropriately
echo 'Failed after retries: ', $e->getMessage(), "\n";
}
icidialApi\VicidialConfig;
use VicidialApi\VicidialClient;
$config = VicidialConfig::createWithBasicAuth(
host: getenv('YOUR_VICIDIAL_IP'),
user: getenv('YOUR_VICIDIAL_USER'),
pass: getenv('YOUR_VICIDIAL_PASSWORD'),
basicAuthUser: getenv('YOUR_VICIDIAL_API_USER'),
basicAuthPass: getenv('YOUR_VICIDIAL_API_PASSWORD')
);
$client = VicidialClient::make($config);
try {
$remoteAgent = $client->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";
}
$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";
}
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";
}
try {
$agentApi = VicidialApi::create(
getenv('YOUR_VICIDIAL_IP'),
getenv('YOUR_VICIDIAL_USER'),
getenv('YOUR_VICIDIAL_PASSWORD')
)->agent();
echo $agentApi->dial("gabriel", [
'phone_number' => '1234567890',
'phone_code' => '1',
'search' => 'YES',
'preview' => 'NO',
'focus' => 'YES'
]);
} catch (Exception $e) {
echo 'Exception: ', $e->getMessage(), "\n";
}
$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";
}
t_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";
}
$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";
}