Bridgeside AI
← All integrations
VICIdial integrationMost popular

AI agents on VICIdial, with dispositions written back

Paste one Custom Dialplan Entry, add an AMI user, and every VICIdial campaign can route to an AI agent. Dispositions, summaries and DNC requests land on the lead through the non-agent API.

Requirements
  • VICIdial on Asterisk 13 or newer
  • A manager.conf user with read = call, write = call, permitted for Bridgeside AI's IP
  • UDP 5001-5999 and TCP 443 open from the dialer to app.bridgeside.ai
  • A non-agent API user of level 8+ with Modify Leads
How it connects

VICIdial in 4 steps

01

Register the dialer

On the Dialers page add the server's host, AMI user and secret, and the non-agent API URL and user. Bridgeside AI keeps a persistent AMI connection for hangup and transfer.

02

Paste the dialplan entry

Admin → Servers → Custom Dialplan Entry. One `_85XXX` pattern serves every campaign: the CURL asks Bridgeside AI for a media port, then Dial(UnicastRTP/…) streams the audio both ways.

03

Route campaigns

Point a VICIdial campaign, call menu or DID at extension 85 + dial code. Outbound lists keep dialing exactly as before; the AI answers instead of an agent.

04

Get the results back

When a call ends the agent picks one of your VICIdial status codes, writes a two-line summary, updates the lead, and adds DNC requests to the list. Transfers go to the in-group or DID you set per campaign.

The dialplan

What you paste into VICIdial

Generated with your token on the Dialers page; this is the shape of it.

  • Per-call RTP media over UDP, no SIP trunk changes
  • Hangup and transfer over AMI
  • Status codes, comments and DNC through the non-agent API
  • Lead id and phone number carried into the conversation
  • Works with VICIdial clusters: one dialer record per server
exten => _85XXX,1,Answer()
 same => n,Set(GW=https://app.bridgeside.ai)
 same => n,Set(PORT=${CURL(${GW}/api/asterisk/rtp?token=…&agent=${EXTEN:2}&channel=${URIENCODE(${CHANNEL})}&lead=${URIENCODE(${CALLERID(name)})}&phone=${URIENCODE(${CALLERID(num)})})})
 same => n,GotoIf($["${PORT}" = ""]?fail)
 same => n,Dial(UnicastRTP/app.bridgeside.ai:${PORT}/c(ulaw),,b(voicebot-jb^s^1))
 same => n,Hangup()
 same => n(fail),Playback(all-circuits-busy-now)
 same => n,Hangup()
FAQ

VICIdial questions

Do agents still see the call?+

Only when the AI transfers. The call is answered on the extension by Bridgeside AI; a qualified caller is transferred to the in-group or DID you configure, where your agents pick up as usual.

What about recordings?+

VICIdial's own recording keeps working because the call stays on your server. Bridgeside AI additionally keeps the transcript and summary in the portal for as long as your retention policy says.

Can different campaigns use different agents?+

Yes. Every Bridgeside AI campaign has its own dial code, so route each VICIdial campaign to its own 85xxx extension.

Put an agent on VICIdial this afternoon

60 free minutes, no card, one dialplan entry.