# Asterisk VoIP Platform

**Phone infrastructure the client owns.**

- Category: Voice · Infrastructure
- Model: Self-hosted Asterisk
- Scope: SIP · IVR · recording
- Status: In production

Canonical: https://technologiesninja.com/project-asterisk-voip.html

## The problem

Costs scaled with headcount rather than usage, and every feature was a separate line item. Recordings were retained in a platform the client could not query.

Operationally, routing had drifted. The IVR tree reflected a team structure from several years earlier, so callers routinely reached the wrong queue and were transferred twice.

Any change required a ticket with the provider and a wait, which meant changes stopped being made.

## The hard parts

- Numbers had to port without a window where inbound calls failed
- Existing extensions and voicemail had to keep working through the transition
- Routing logic had to be rebuilt from how the team works now, not how it worked then
- Call quality is unforgiving — jitter and packet loss are immediately audible
- Recording retention had to satisfy the client’s own compliance policy

## Architecture

1. **terminate** — SIP trunks terminate on Asterisk running on client infrastructure
2. **register** — Softphones and desk phones provisioned against the new platform
3. **route** — IVR and queue logic rebuilt in one place, editable by the client
4. **record** — Calls recorded to client-controlled storage with a retention policy
5. **integrate** — AMI exposes call events to Laravel for CRM and dashboard use
6. **monitor** — Trunk health, call quality and queue depth monitored continuously

**Stack:** Asterisk · SIP · AMI · IVR · Ubuntu · Laravel · Nginx

## What shipped

- Self-hosted Asterisk with SIP trunk termination
- Softphone and desk phone provisioning
- IVR trees and queue logic the client can change without a support ticket
- Call recording to storage the client controls, with retention rules
- AMI integration exposing call events to business systems
- Monitoring on trunk health and call quality

## Result

**Owned** — Cost stopped tracking headcount.

The platform runs on the client’s own infrastructure, so cost no longer scales with seats and features are not line items.

Routing became editable, which meant it started being maintained again. Callers reach the right queue.

Because call events are exposed over AMI, this deployment became the foundation for the call-intelligence work that followed.

## Read next

- **AI Voice & Call Intelligence** (Case study) → /project-voice-call-intelligence
- **VoIP & Voice Systems** (Service) → /service-voip-voice
- **DevOps & Performance** (Service) → /service-devops-performance
- **Voice AI with Whisper, WhisperX and Ollama** (Article) → /blog-whisper-voice-stack

---
© 2026 TechnologiesNinja · Built and maintained in-house
