Configure voicemail.conf -- mailbox definitions, email notifications, timezone formatting, recording options, password policies, and IMAP storage sett...
Complete WebRTC configuration using res_pjsip -- WSS transport, DTLS/SRTP media encryption, HTTP server with TLS, and module loading for browser-based...
PJSIP configuration with template inheritance for endpoints, multi-transport setup, and SIP trunk registration.
Complete PJSIP trunk setup with registration, endpoint, AOR, and identify sections
Organize large Asterisk dialplans into modular files using #include -- separate phone definitions, services, routing, and Class of Service into mainta...
Configure Music on Hold classes in musiconhold.conf -- set up custom hold music directories, per-context MOH, and per-endpoint MOH assignment.
Configure Busy Lamp Field indicators so desk phones show extension status
Store Call Detail Records in a MySQL database -- create the CDR schema, configure cdr_mysql.conf, and query call history with SQL.
Configure ConfBridge user profiles, bridge profiles, and DTMF menus in confbridge.conf -- control participant behavior, room settings, recording, and ...
Set up a call queue with timeout-based failover to voicemail or another destination.
Ring multiple extensions simultaneously and route based on DIALSTATUS -- busy, no answer, or unavailable each get different handling.
Use Set() for variable assignment, string slicing, and pattern-based digit manipulation in Asterisk dialplans.
A centralized Gosub that handles DND, call forward, follow-me, and DIALSTATUS for any extension
A reusable subroutine that handles every DIALSTATUS value after outbound Dial(), using Q.850 HANGUPCAUSE codes to distinguish bad numbers from trunk f...
Enable one-touch call recording via DTMF during active calls -- configure automixmon in features.conf and enable it in Dial() options.
Let users record custom IVR prompts and greetings over the phone using the Record() application, with automatic playback for review.
Configure voicemail boxes with email notification, attaching the recorded message as a WAV file.
Pick up ringing calls by group or by targeting a specific extension
Ad-hoc conference rooms with ConfBridge -- users dial a feature code, enter a room number, and are bridged together. Includes bridge and user profiles...
Star code feature toggles stored in AstDB -- Do Not Disturb, Call Forwarding, and Follow Me, all controllable from the phone dial pad.
Define custom DTMF-triggered features during active calls using features.conf -- configure blind/attended transfers, call parking, and create your own...
Validate Asterisk configuration before reloading -- catches syntax errors in dialplan, PJSIP, and other configs before they take down your phone syste...
Quick reference for commonly used Asterisk CLI commands -- PJSIP, dialplan, channel, system, voicemail, queue, and debugging commands organized by cat...
Automated Asterisk config deployment with pre-deploy backup, SSH multiplexing, and post-deploy verification
Configure fail2ban jails and filters to block SIP brute-force and scanning attacks against Asterisk
Set up HTTP/HTTPS auto-provisioning for Polycom VVX phones with nginx, TLS, and optional basic auth
Monitor SIP trunk registration and alert only on state changes to avoid alert fatigue
Automated backup script for Asterisk configuration files, voicemail spools, AstDB, and custom sounds with rotation and optional remote sync.
Parse Asterisk full log to extract call statistics -- total calls, answered, unanswered, failed, busiest hour, and top callers.
Check PJSIP endpoint registration status and alert via Slack or email when phones or trunks go offline.