Asterisk is an open-source private branch exchange (PBX) and telephony toolkit. It sits as middleware between Internet and telephony channels below and communications applications above: it terminates SIP, IAX2, and H.323 calls, interfaces with traditional public switched telephone network (PSTN) lines, and lets you build voice applications such as call routing, voicemail, and interactive voice response (IVR) on top.
For agent builders, Asterisk is the telephony layer a voice agent connects to. Its WebSocket channel carries call audio as frames, and a serializer on the pipeline side converts those frames so a speech or LLM pipeline can listen and speak on a live call.
Asterisk is developed and tested primarily on GNU/Linux and also runs on macOS and the BSD variants. It is built from C source with a menu-driven step for choosing modules, and a sample PBX configuration with demonstration extensions can be generated for first-time setups. At runtime it exposes a command-line console (*CLI>) with built-in help for every command.
Configuration files share one format: semicolon comments, [section] headers, and variable = value statements. Because the system tracks SIP registrations against wall-clock time, it expects a time-synchronization daemon (ntpd, chronyd, or systemd-timesyncd), and because every call and hardware channel consumes file descriptors, the per-process descriptor limit bounds concurrent calls (a 1024 limit handles roughly 150 simultaneous SIP calls).
Features
- SIP and VoIP: terminates SIP, IAX2, and H.323 calls as the primary transport for most deployments
- PSTN and TDM interfaces: supports Sangoma analog and digital interface cards, PortAudio-compatible sound cards, and the Xorcom Astribank channel bank
- WebSocket media channel: streams call audio as frames that an external agent pipeline can consume and produce
- Modular build: a menu-driven selection step chooses which channel, application, and codec modules to compile and reports their dependencies
- Sample PBX: a demonstration configuration with example extensions
- CLI console: a verbose foreground console with built-in command reference
- Uniform configuration: sectioned variable = value files with semicolon comments across every subsystem
- Cross-platform: primary support on every major GNU/Linux distribution, with ports to macOS and the BSDs
