Asterisk logo

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. 1

    Open Settings → SIP

    Open the inbound trunk configuration.

  2. 2

    Pick a SIP region

    Choose Global, US, EU, or APAC.

  3. 3

    Copy the SIP credentials

    Grab the SIP endpoint, username, and password.

  4. 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. 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. 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. 7

    Add the matching numbers to Open

    Under Phone Number (DID), add the DIDs the dialplan branches on.

  8. 8

    Assign numbers to an AI agent

    Channels → Phone → Agents → assign DIDs.

  9. 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

Asterisk questions, answered