A Modern Programmable PBX
Dragon PBX is an open source telephone exchange that delegates call routing to your application via HTTP webhooks. You control the logic, it handles the SIP.
What is Dragon PBX?
Dragon PBX is a SIP-based PBX that operates as a Back-to-Back User Agent (B2BUA). Rather than embedding call routing rules in configuration files or dialplan scripts, it calls out to HTTP endpoints you define — giving you complete control over how calls are handled using any language or framework you choose.
It sits between your callers and destinations, handling SIP signalling and media while your application makes the routing decisions.
Key ideas
- Webhook-driven — Call routing logic lives in your application, not in the PBX. When a call arrives, Dragon PBX makes an HTTP request to your CallHook and executes the instructions you return.
- Simple verb model — Call scripts use four verbs:
announce,connect,pause, andresponse. Compose them to build any call flow. - Bring your own stack — Your CallHook is just an HTTP endpoint. Write it in Python, Node, Go, Ruby — whatever you're comfortable with.
- Multi-tenant — A single instance handles multiple SIP domains, each with independent clients, trunks, and dialplans.
- Pluggable config — Store configuration in a JSON file for development, fetch it from an HTTP API, or use PostgreSQL for production.
Built on solid foundations
Dragon PBX is built on Drachtio for SIP signalling and RTPEngine for media handling, with Redis for registration state. It runs as a Node.js application and can be deployed anywhere, either in your office or in the cloud.