Legacy / Enterprise
Open for Asterisk
Add Open as a PJSIP trunk and a few dialplan extensions and the AI picks up — Asterisk gives you full control over how calls hand off to AI.
- Setup time
- Under 30 minutes
- Auth
- PJSIP / chan_sip with digest or IP allowlist
- Directions
- Inbound · Outbound · Call transfer
- Pricing
- Included with Open
01 — Overview
Can I add an AI phone agent to my Asterisk PBX?
Yes — and you have full control over how it integrates. Open registers as a standard PJSIP (or chan_sip) trunk; your dialplan decides exactly which calls go to AI and how transfers flow back.
Asterisk remains your PBX. Extensions, queues, IVR menus, and your dialplan all stay as they are. Open joins as a SIP trunk — typically as a PJSIP endpoint in pjsip.conf (or a peer in sip.conf if you're still on chan_sip). Your extensions.conf (or AEL / Lua dialplan) decides which inbound calls reach Open and what happens when the AI hands the call back.
For inbound, the typical pattern is a context that, after your existing IVR matches, dials the Open trunk via Dial(PJSIP/<context>@<endpoint>). The AI picks up over standard SIP/RTP. Because you're scripting the dialplan, you can do anything before or after — set channel variables, gate by business hours, set CALLERID for caller-context lookups, capture the original DID for routing.
For outbound, Asterisk dials out through Open via the same trunk: Dial(PJSIP/${EXTEN}@open-outbound). Open then bridges the leg to the PSTN via your own SIP carrier (or via Open's outbound trunks if you don't have one). Asterisk-side CDRs see every leg.
What the AI does on the call: it listens, reasons over your knowledge base and connected tools, and acts. When the AI needs a human, it sends a SIP REFER back to your dialplan, which can route to a queue, ring group, or specific extension while preserving channel variables and the live transcript as a SIP header.
Billing stays predictable. Asterisk itself is free; your hosting and existing PSTN minutes stay where they are. Open charges per resolved conversation, with no markup on minutes from your existing carrier.
What stays the same on Asterisk
Asterisk dialplan and modules
Existing `extensions.conf`, AEL, or Lua dialplans keep working. Open is one trunk among many.
Existing PSTN trunks
Whatever carrier you use (Twilio, Telnyx, a local provider) keeps handling PSTN minutes.
CDRs and CEL
Asterisk CDR and CEL keep recording every leg.
Recording and monitoring
MixMonitor / Monitor still record calls if you have that configured.
What's new with Open
A PJSIP endpoint
Open is added as a PJSIP endpoint (or chan_sip peer) in your config.
Dialplan branches to Open
Specific contexts / extensions `Dial()` the Open trunk instead of going to a queue or extension.
AI handles those legs
On opted-in branches, the AI greets, listens, calls your tools, and replies in natural speech.
Pricing model
Open per resolved conversation. Asterisk and your existing carrier stay where they are.
02 — Why this works
The native Asterisk experience
Maximum flexibility
Asterisk gives you the most control of any PBX. You decide the exact moment AI takes over and exactly how it hands back.
PJSIP-first, chan_sip too
Recommended path is PJSIP (the modern stack), but chan_sip works for older installs.
No commercial PBX licensing
Asterisk is free; Open is the only line item — and it's per resolved conversation.
Warm transfer with custom variables
On SIP REFER back, you can preserve channel variables and route to whichever queue, agent, or context fits.
03 — Setup guide
Wire up Asterisk in under 30 minutes
Two trunks — one inbound, one outbound. Both configurable from Settings → SIP in the Open dashboard.
- 1
Open Settings → SIP
Open the inbound trunk configuration.
- 2
Pick a SIP region
Choose Global, US, EU, or APAC.
- 3
Copy the SIP credentials
Grab the SIP endpoint, username, and password.
- 4
Add a PJSIP endpoint
In `pjsip.conf` (or your equivalent), add an endpoint, AOR, and auth pointing at Open's SIP host with the credentials from step 3.
- 5
Add a dialplan context
In `extensions.conf`, create a context that calls `Dial(PJSIP/<context>@open-trunk)` for the inbound number / IVR option you want AI to handle.
- 6
Pass the original DID and caller ID
Set `SIPADDHEADER` (or similar) to forward `${CALLERID(num)}` and the original DID — Open uses these for routing and caller lookups.
- 7
Add the matching numbers to Open
Under Phone Number (DID), add the DIDs the dialplan branches on.
- 8
Assign numbers to an AI agent
Channels → Phone → Agents → assign DIDs.
- 9
Place a test call
Dial the inbound number, take the AI branch, and confirm Open answers.
04 — Configuration
Settings → SIP, at a glance
A real inbound trunk for Asterisk looks something like this. Yours are generated when you open Settings → SIP.
PJSIP endpoint · Asterisk
Sample
- Endpoint type
- endpoint
- context
- open-incoming
- aors / contact
- sip.us.opencx.com
- auth
- username + password
- transport
- transport-tls
05 — Security
Encrypted, audited, refundable
SIP over TLS for signaling, SRTP for media. Every call is logged with full reasoning traces. SOC 2 Type II, GDPR-aligned, HIPAA- and PCI-ready. Backed by the Open $2M Refund Guarantee.
06 — FAQ