Tiered after-hours routing: play a custom greeting using STAT() file checks, ring desk phones, escalate to cell phones via Local channels, then fall t...
Route inbound calls to a live queue during business hours and to an after-hours message outside of them, using GotoIfTime() with no external scripting...
Configure voicemail boxes with email notification that attaches the recorded message as a WAV file. Covers voicemail.conf format, SMTP settings, and d...
A centralized Gosub subroutine that handles DND, call forward, follow-me, and DIALSTATUS routing for any extension. Eliminates duplicating call-handli...
Ring external cell phones through Local channels while preserving the original inbound DID as caller ID. Covers the Local channel pattern for follow-m...
Set up a call queue with timeout-based failover to voicemail or another destination. Covers agent membership, queue options in queues.conf, and DIALST...
Complete PJSIP SIP trunk setup with all five required objects: auth, registration, endpoint, AOR, and identify. Covers outbound caller ID, codec selec...
Configure Busy Lamp Field hints so desk phones show real-time extension status. Covers hint syntax, PJSIP device state subscriptions, and mapping BLF ...
Pick up ringing calls by group using *8 or by targeting a specific extension with **XXXX. Configures named_call_group and named_pickup_group on PJSIP ...
Ring all group members simultaneously and route to a shared voicemail mailbox if nobody answers. Covers DIALSTATUS handling, CANCEL guard, shared mail...
Node.js application using ari-client to connect to Asterisk ARI, subscribe to channel events, and control the call lifecycle (ring, answer, play, hang...
PJSIP configuration with template inheritance for endpoints, multi-transport setup, and SIP trunk registration.
Look up caller names (CNAM) from an external HTTP service using a PHP AGI script -- normalize inbound numbers, query a CNAM provider, and set the call...
Replace Asterisk's self-signed PJSIP TLS certificate with a trusted Let's Encrypt cert, using a certbot deploy hook to keep it renewed automatically.
Restrict SIP registration and call traffic to trusted IP ranges using PJSIP ACLs, blocking scanners and brute-force attacks before authentication is a...
Generate a private CA and self-signed TLS certificates for PJSIP and WebRTC using Asterisk's built-in ast_tls_cert script, including client certificat...
Simple auto-attendant using Background() and WaitExten() to play a greeting and route callers to different contexts by keypress.
Auto-attendant that replays the menu on invalid input or silence, and hangs up gracefully after three failed attempts.
Collect caller-entered digits with Read() for PIN verification, extension lookup, account numbers, and any numeric IVR input.
Play a custom audio greeting if the file exists on disk, falling back to built-in Asterisk prompts without any dialplan changes.
Route incoming calls to different contexts based on time of day, day of week, and fixed holidays using GotoIfTime.
Dialplan extension that plays random Asterisk sound files in an infinite loop. Useful for load testing, demo systems, and verifying audio paths.
Dialplan extension that lets you record IVR prompts by calling in, listen to the recording, and re-record if needed. No file uploads or command line r...
Enable the Asterisk REST Interface (ARI), configure HTTP and WebSocket access, and hand channels to a Stasis application for external control.
Use Progress() to send early media (183 Session Progress) to the caller -- play audio before formally answering the call, useful for custom ringback t...
Send incoming call notifications to a Slack channel via webhook, with FILTER() to prevent shell injection from caller ID data.
Generate Asterisk audio prompts from text using Google's gTTS Python library -- convert text to WAV files suitable for Playback() and Background().
Configure the Asterisk Manager Interface (AMI) for remote control and monitoring -- TCP-based client/server access to originate calls, check status, a...
Enable video calling in Asterisk -- configure video codecs (H.264, VP8, VP9) on PJSIP endpoints, set up video for WebRTC clients, and control codec ne...
Configure voicemail.conf -- mailbox definitions, email notifications, timezone formatting, recording options, password policies, and IMAP storage sett...