vicidial.php (located in the directory) is the core script for the Agent Control GUI
(AGC) in the VICIdial open-source contact center suite. It acts as the primary web-based interface where agents log in, manage calls, and handle customer data. VICIdial.org Core Functionality Agent Interface
: It provides the dashboard for agents to handle inbound, outbound, and blended calls. Session Management
: It manages agent logins by verifying credentials against the vicidial_users tables in the database. Real-time Communication : The page uses extensive XMLHttpRequest
(AJAX) functions to pass data back and forth to the server without refreshing the page, enabling features like live call status and channel management. Call Control
: Agents use this screen to park calls, initiate three-way conferences, and record interactions. VICIdial.org Key Components & Customization VICIdial for
The script operates as a dynamic, web-based application that coordinates several critical tasks:
Multi-Step Authentication: Agents must provide two sets of credentials to log in: a "Phone Login" and "Phone Password" (from the phones table) followed by an "Agent User" and "Agent Password" (from the vicidial_users table).
Real-Time Data Processing: It uses AJAX (XMLHttpRequest) to communicate with the server every second without reloading the entire page. This allows the interface to update call statuses, display incoming call data, and maintain the agent's "session alive" status in the vicidial_live_agents database table.
Call Handling Controls: Agents use the interface to manual dial, pause/resume their status, park calls, start/stop recordings, and initiate three-way conferences or transfers. agc vicidialphp work
Lead Information Display: It pulls customer data (name, address, custom fields) from the database and displays it on the screen when a call is connected. The Role of the /agc/ Directory
The agc (Agent Graphical Client) directory contains the PHP and JavaScript files necessary for the agent's daily operations. Key files include: vicidial.php: The main login and operation page.
api.php: The Agent API entry point, allowing external systems (like a CRM) to control the agent's session, such as triggering a manual dial or a hang-up.
options.php: Created by renaming options-example.php, this file allows administrators to customize agent screen features, such as webphone layouts, refresh rates, and specific display toggles.
vdc_db_query.php: Often used behind the scenes by vicidial.php to execute database queries via AJAX for real-time updates. Customization and Integration
While vicidial.php is complex and difficult to modify directly due to its heavy use of JavaScript and XMLHTTPRequest, VICIdial provides safer ways to customize the "work" environment:
Web Forms: Instead of modifying the core script, admins can configure a Web Form URL that pops up a custom PHP page in a separate tab or window when a call connects.
Agent API: Developers can use the VICIdial Agent API to integrate vicidial.php with a custom CRM, often by running the agent screen in a hidden iframe while the agent interacts with the CRM interface.
Scripting: Admins can create dynamic scripts within the VICIdial Admin Interface that display custom text and customer variables (--A--first_name--B--) directly in the agent's script tab. Leave 3way not working for agc/vicidial.php vicidial
In the context of Vicidial (an open-source contact center suite), AGC usually refers to the WebRTC Audio Auto Gain Control mechanisms used within the web-based agent phones (typically written in JavaScript/PHP layouts) to ensure consistent audio levels.
The AGC does not use PHP’s native $_SESSION for long-lived state. Instead, it uses:
vicidial_sessions table – stores session_id, user, campaign_id, login_time, last_update_time.vicidial_live_agents table – tracks current agent status (READY, PAUSED, INCALL), channel, uniqueid.vicidial_agent_log – detailed per-call actions.This database-centric design allows multiple web servers to serve the same agents without sticky sessions, but introduces latency under heavy load due to constant polling.
Implementing VICIDIAL with AGC and VICIDIALphp involves knowledge of telephony systems, PHP programming, and networking. The process might involve:
Telephony Infrastructure Setup: Ensure that your telephony infrastructure supports AGC and can integrate with VICIDIAL.
VICIDIAL Installation and Configuration: Install and configure VICIDIAL on a suitable server.
Development of VICIDIALphp Scripts: Develop custom php scripts to interact with VICIDIAL's database and APIs for automating tasks or enhancing functionality.
Integration of AGC with VICIDIAL: Configure the AGC system to communicate with VICIDIAL for efficient call distribution.
Testing and Optimization: Test the entire setup to ensure smooth operation and optimize as needed for performance and efficiency. vicidial_sessions table – stores session_id , user ,
This overview provides a basic understanding of how VICIDIAL, AGC, and VICIDIALphp can work together. Specific implementations can vary widely depending on requirements and the exact technologies used.
The vicidial.php file, located within the agc (Asterisk GUI Client) directory, is the core web interface used by call center agents in the VICIdial platform. It acts as the primary workstation for agents to handle inbound and outbound calls, manage lead data, and execute agent API commands. Primary Functionality
Agent Interface: Serves as the main "Agent Login" screen where users enter credentials, choose campaigns, and manage live call sessions.
Dynamic Data Handling: Uses PHP for server-side processing and AJAX to send real-time data requests (approximately every second) to the server, updating the agent's screen without a full page reload.
Call Control: Facilitates actions like "Dial Next Number," hanging up, dispositioning calls, and initiating 3-way conference calls.
Scripting & Lead Info: Displays customer information and campaign-specific scripts, filling in fields like name and address from the database. Integrated API Support
The agc folder also contains api.php, which enables remote control of the agent's screen for tasks such as:
Hanging Up/Dispositioning: Executing sequence commands to end a call and set its status.
External Control: Allowing third-party CRM systems to trigger actions on the agent's screen, such as click-to-dial or lead updates.
Agent Stats: Exporting real-time performance data for external reporting. agent API - Vicidial
agc_rebalancer.php – Main logic fileagc_config.php – Configuration settingsuse FFmpeg\FFmpeg;
require 'vendor/autoload.php';
$ffmpeg = FFmpeg::create();
$audioInput = $ffmpeg
->open('input.mp3')
->getFormat()
->getAudioStreams()
->first();
$audioOutput = $ffmpeg
->open('output.mp3')
->getFormat()
->getAudioStreams()
->first();
// Basic AGC: Adjusting gain (note: actual AGC would require more complex analysis and adjustments)
$volumeFilter = 'volume=1.5'; // For example, to boost volume by 50%
$ffmpeg
->save($audioInput, $volumeFilter, $audioOutput);