
Explore a database and API driven call center solution built on Asterisk PBX, with API calls, IVR, endpoints, trunks, and scalable VoIP deployments for an online medical consulting service.
Download, install, and set up a two-VM environment (asterisk and database server), deploying via VMware Workstation, VirtualBox, or Azure, and clone API pages from Ghizo after testing with Audacity.
Tasks: Deploy two VMs (Together we will deploy 1st VM(Asterisk). Kindly Go ahead to deploy the second VM (MySQL Database Server)
Download the latest Asterisk LTS from the official site, install its dependencies, clone the API library, and compile Asterisk for a database/API driven call center setup.
Install the dial plan api/json manipulation library from GitHub, review its documentation, and learn to implement and test API calls with the library.
Compile Asterisk from source using the latest LTS release, configure dependencies and libraries, connect to the database, enable features, build with make, and verify service status.
Clarify the section objectives and learn the Asterisk busy fire structure in our state, emphasizing its importance for navigation and correct configuration to prevent lab issues.
Explore best practices for working with config files in an Asterisk pbx setup, including renaming samples, organizing directories, and documenting changes with in-code comments for collaboration.
Explore PJSIP in Asterisk, configuring endpoints and transports, setting address of record and authentication, and understanding domain, registrations, and transport options for udp-based sip.
•Enable Firewall
•22 (SSH)
•5060 -5061 (SIP)
•10,000 – 20,000 media
•80 Http, 443 Https
◦sudo ufw allow 5060:5061/udp
◦sudo ufw allow 10000:20000/udp
◦sudo ufw allow 3306/udp,
◦Sudo ufw allow 1433/tcp
sudo ufw allow 80,443/tcp
Learn to create asterisk tables using an alembic approach by applying alembic scripts to initialize and modify database tables, configure connections, and validate installation.
Create asterisk tables using SQL script to establish a database-driven call center, including setting up the connection and importing resources for practical integration.
Update the server and install Postgres, then log in as default user, connect to the database, and verify Postgres 14.8. Explore how to create the database and grant permissions.
Create the database named Asterix and add a login user with a password. Grant all privileges to that user so they can connect remotely.
Enable remote access for the database by editing the configuration to listen on any IP, open port 6432 in the firewall, and verify connections to Asterisk via pgadmin.
Integrate Asterisk with any database using the Asterix architecture via a common interface, using ODBC or native configuration for MySQL, Postgres, and SQLite, with data source name and mapping details.
Install and configure the MySQL ODBC connection driver on Ubuntu, including adding the repo, downloading the driver, and setting up the database connection for the call center solution.
Integrate Asterisk with MySQL database by configuring drivers, ETSI config files, and mapping database tables to Asterisk objects. Configure endpoints and address of record for a database-driven call center.
migrate a first lab from a conf file driven approach to a database driven model using MySQL, configuring authentication, address of record, and endpoints in database tables.
Learn to integrate a Postgres database with Asterisk using a native configuration file, mapping endpoints, authentication, and address of record, without installing odbc drivers.
Migrate your lab from configuration file to Postgres database, mirroring the MySQL workflow, by creating and verifying authentication, endpoints, and address records with SQL scripts and Azure CLI.
Introduce quality record as the learning objective, configure RSA to CDO for stability and cost settings, and link it to the data plan, with a video overview of the CDO.
Explore call detail records in telecoms, including origin, destination, duration, and time, and map cdr data to a database with customer id fields for an api-driven asterisk pbx call center.
Configure Asterisk to log CDR in a database table by adapting a sample configuration, linking to your database, and validating the connection and table fields.
Outline section objectives on building costs and storage introduction for the platform. Address questions about recording with audacity and note upcoming topics discussed in the lecture.
Explore building a database and API driven call center platform using Asterisk PBX, with distribution rules and hybrid options, laying the foundation for setting up the telecommunication solution.
Set and tune busy queue parameters, such as the max queue length and the number of available agents, and define timeouts, call routing, and recording for quality assurance.
Explore queues.conf Part 2 with a sample configuration, adjust timeouts, and reload services to validate the support queue; then enable database integration for data-driven call routing.
Configure a queue in asterisk using database tables (queues, queue_members, queue_log) with acd, set up the connection, name the queue, and add members to manage inbound calls effectively.
Learn how to record prompts with Audacity for an Asterisk PBX, convert to mono 8000 Hz WAV, and export ready IVR files for call center use.
Configure music on hold with a config file in a database driven asterisk pbx setup, managing default locations, playlists, and per-call hold music for a call center.
Set up a trunk line to connect the mobile phone line with the PBX, establishing the foundation for protocol sessions.
Set up a central trunk line by configuring a database table and mapping bridge registrations, enabling the front-end app to write trunk settings directly to the database.
Link PJSIP configuration with the dial plan in extension.conf, configure trunk lines, and use database tables for call routing in a database-driven Asterisk PBX for a call center solution.
This lab demonstrates integrating asterisk pbx with a database API-driven call center, building an IVR for appointment booking and online consultations, linked to trunk lines and a backend database.
Explore the Asterisk PBX driven call center workflow, including menu navigation, timeouts, and retries, with API calls to validate customer IDs and booking flows.
Demonstrates a C# API call workflow for an asterisk pbx call center, showing how to configure database connection parameters and use appointment endpoints to book and notify customers.
Learn how to host a cross-platform .NET API on Windows or Linux by enabling IIS, configuring a website, compiling and publishing the app, and connecting to a database server.
The tutorial is about learning how to Build a Database/API-driven Call Center Solution/PBX using asterisk PBX. You will learn the following
In-depth Knowledge of Asterisk PBX.
How to setup Trunk to any provider of your choice using chan PJSIP (Config File & Database Table
How to work with Asterisk dial plan to implement different business scenarios
How to setup Interactive Voice Response (IVR) System with Time-based call routing
How to setup PBX for Organization using Asterisk
How to setup Automatic Call Distribution amount the Agents (Database and Configuration file driven approach)
Integrate Asterisk with Any Database of your Choice (MySQL, SQLite, PostgreSQL, MSSQL)
Setup MySQL Database in Linux environment and integrate it with Asterisk PBX
Working with Musiconhold (Config File & Database table)
Make API call in your dial plan to an external system in real-time
Secure Your PBX
After learning the basics of Asterisk, We are going to implement Call Center Solution for a fictitious Hospital(The Great Hospital) that has an Online Medical Consulting Service with the following requirements
Prompt
1 => Consulting
2=> Customer Service
3 => Self-Service ( 1 .Book Appointment 2.Cancel Appointment 3.Confirm Appointment 4.Check Outstanding Bill)
User Story (Implementation Requirement)
Consulting Unit: Working Hours: 8 AM – 9 PM, Call Outside the working hours should be routed to the customer service unit
Access to the Consultant is based on appointment and registered client (Validation via API call)
Booking of Appointment should be logged in the database and email notification sent to Customer Service
All calls (Inbound and outbound) must be recorded for Quality Assurance. Any missed call should trigger a mail to the supervisor/monitoring email group for quality assurance.