jpriddle

/work / ViaTalk PBX

ViaTalk PBX

ViaTalk, LLC

Solo Developer

Aug 2008 ·
PHP CodeIgniter Asterisk MySQL Linux JavaScript VoIP

ViaTalk PBX was a multi-tenant VoIP call center management system serving ViaTalk, HostRocket, and DotBlock. The system handled 500-1000 daily support calls with near-perfect uptime. I was solely responsible for the entire stack: server provisioning, Asterisk configuration, dialplan development, and the CodeIgniter web application.

Architecture

The system consisted of two main components: an Asterisk PBX server handling call routing and a CodeIgniter web application providing real-time queue monitoring and administration.

Asterisk Configuration

The dialplan supported multiple companies with isolated contexts and queues:

Direct MySQL queries from the dialplan enabled real-time routing decisions based on customer status, temporary priority flags, and queue conditions.

Web Application

The CodeIgniter application provided:

The daemon architecture solved the problem of bridging real-time Asterisk state with web-based management - it maintained cached representations of queue members, agent status, and SIP peer availability, invalidating web caches when state changed.

Technical Challenges

Full-stack ownership - I handled everything from Linux server hardening and Asterisk compilation to PHP development and production deployment, years before infrastructure automation was common.

Real-time state synchronization - bridging Asterisk’s event-driven model with a web interface required careful daemon design, caching strategies, and cache invalidation logic.

Multi-tenant isolation - the same Asterisk instance served three companies with separate queues, agents, SIP endpoints, and branded web interfaces while sharing common infrastructure.

View archive of the site →