Skip to main content

How It Works

Five9 Campaign dials customer

  Customer answers

  Five9 IVR Script runs (3rd Party Transfer module)

  Five9 transfers the call to the SigmaMind SIP server
  (+1XXXXXXXXXX@28y698lhv2f.sip.livekit.cloud)

  SigmaMind receives inbound SIP call

  SigmaMind Voice AI Agent speaks with the customer

  AI qualifies the lead

  Call handed back to a Five9 agent (Skill / ACD queue)

  Agent resumes the conversation with full context
Unlike VICIdial, Five9 is a closed cloud contact center — you do not configure an Asterisk dialplan or a Remote Agent. Instead, the handoff to SigmaMind is performed by a 3rd Party Transfer module inside a Five9 IVR Script, and the handoff back to a human agent is performed either by Five9 reclaiming the call (Return After 3rd Party Call) or by SigmaMind transferring into a Five9 inbound number. Both patterns are covered below. On the SigmaMind side, only one inbound SIP call is ever visible — exactly as with VICIdial.
The number used in the Five9 transfer is the number you register in SigmaMind under Phone Numbers → Connect via SIP Trunking, entering your carrier or trunk’s SIP termination URI in the Terminal URI field and mapping an AI agent against it. SigmaMind identifies the correct tenant and AI agent by matching the incoming call’s number against the number you registered.

SigmaMind SIP Server Details

All calls from Five9 to SigmaMind are directed to the following SIP server:
FieldValue
SIP Server URI28y698lhv2f.sip.livekit.cloud
Full Dial Destination+1XXXXXXXXXX@28y698lhv2f.sip.livekit.cloud
TransportUDP, TCP, or TLS
Media EncryptionSRTP supported
Replace +1XXXXXXXXXX with the number Five9 will transfer the call to — the same number you register in SigmaMind under Phone Numbers → Connect via SIP Trunking, where:
  • Phone Number = the number Five9 dials when it hands the call to SigmaMind
  • Terminal URI = your carrier or trunk’s SIP termination URI (e.g. f111.dialmake.com) — this points back to your telephony provider / trunk, not to SigmaMind
The SigmaMind SIP server (28y698lhv2f.sip.livekit.cloud) is what Five9 transfers into — it belongs in your Five9 routing only, not in this SigmaMind dashboard field.
SigmaMind does not support static IP whitelisting on its global SIP endpoint. Five9 requires IP-anchored connectivity for direct SIP trunks, so production Five9 deployments use one of the connection methods described next. See the SIP Trunking page for full SIP server requirements.

Choose Your Connection Method

Because Five9 is a managed cloud platform, the call has to physically reach the SigmaMind SIP server through one of two paths. Pick the one that matches your deployment. SigmaMind connects to your Five9 environment over a dedicated SIP trunk peered with the Five9 Point of Presence (PoP) serving your account. This keeps call media on a single, direct SIP path — no third-party carrier hop in the middle — which gives the lowest latency, the cleanest audio for the AI, and a static, allowlistable connection that passes enterprise security review.
Dedicated PoP trunking is provisioned with assistance from SigmaMind. To set it up, contact SigmaMind support and your Five9 specialist. Provisioning involves cross-allowlisting between the Five9 PoP and SigmaMind’s regional SIP endpoints and is coordinated by both teams. Availability depends on the Five9 PoP region serving your account.
Use this method when:
  • You are running production traffic at volume.
  • Your security team requires static IP allowlisting for SIP.
  • You want to avoid per-minute carrier charges on the AI leg.

Method B — SIP trunk via your own carrier (Twilio / Telnyx Elastic SIP)

You front SigmaMind with an Elastic SIP Trunk on a carrier that SigmaMind already supports (Twilio or Telnyx). Five9 transfers the call to a number on that trunk, and the trunk’s Origination URI forwards the call into the SigmaMind SIP server. This is the fastest way to get a working proof of concept and requires nothing special on the Five9 side beyond a standard transfer. Use this method when:
  • You are building a pilot or proof of concept.
  • You do not yet need a dedicated PoP trunk.
  • You already operate a Twilio or Telnyx SIP trunk.
With Method B, the carrier (Twilio/Telnyx) sits in the path as the SIP gateway. Configure its Origination URI to sip:28y698lhv2f.sip.livekit.cloud so inbound calls reach SigmaMind, and enable SRTP. See the Twilio SIP Trunking guide or Telnyx SIP Trunking guide.

Prerequisites

Before starting, confirm you have the following ready:
  • Admin access to your Five9 VCC Administrator (Campaigns, IVR Scripts, Skills, Connectors).
  • A SigmaMind account with at least one AI agent configured and published.
  • A connection method selected (Method A or Method B above), and the corresponding trunk provisioned:
    • Method A — a dedicated PoP trunk arranged with SigmaMind support and your Five9 specialist.
    • Method B — a Twilio or Telnyx Elastic SIP Trunk with its Origination URI pointed at sip:28y698lhv2f.sip.livekit.cloud and SRTP enabled.
  • The number Five9 will transfer to, registered in SigmaMind under Phone Numbers → Connect via SIP Trunking, with an AI agent mapped against it.
  • The SigmaMind SIP server: 28y698lhv2f.sip.livekit.cloud.
  • Your Five9 Campaign type confirmed (Outbound: Predictive / Power / Progressive / Preview).
  • A Five9 Skill / ACD queue for the human agents who will take qualified transfers.
Testing from outside the US: If you are testing from a region with strict telecom geofencing, your local carrier may block calls to or from US numbers. Use a softphone (such as Zoiper) registered to your trunk to place a test call into the SigmaMind SIP server directly, bypassing carrier-level restrictions. See Testing with a Softphone below.

Before You Begin: Register Your Number in SigmaMind

Before configuring Five9, register the number Five9 will transfer to in SigmaMind so that SigmaMind can receive the inbound SIP call and know which AI agent to connect.
1

Go to Phone Numbers in SigmaMind

In your SigmaMind dashboard, navigate to Phone Numbers and click Add Phone Number.
2

Select Connect via SIP Trunking

In the Add Phone Number dialog, select the Connect via SIP Trunking tab.
3

Fill in the SIP trunk details

Enter the following:
FieldValue
Phone NumberThe number Five9 will transfer to (e.g. +13453453453)
Terminal URIYour carrier or trunk’s SIP termination URI (e.g. f111.dialmake.com) — provided by your telephony carrier, not by SigmaMind
SIP Trunk User NameOptional — enter only if your carrier requires SIP authentication
SIP Trunk PasswordOptional — enter only if your carrier requires SIP authentication
The Terminal URI points back to your telephony carrier or trunk — it is the address used to terminate SIP calls when the AI agent transfers a call back out. It is not the SigmaMind SIP server. The SigmaMind SIP server (28y698lhv2f.sip.livekit.cloud) is what Five9 transfers into — it belongs in your Five9 configuration only.
4

Save and map an AI agent

Click Save. Once the number is registered, assign an AI agent to it. SigmaMind will use this mapping to identify which agent to connect whenever a call arrives on this number from Five9.

Step 1: Create the Inbound IVR Script in Five9

In Five9, the decision to send an answered customer to SigmaMind is made by an IVR Script bound to your campaign. The module that performs the handoff is the 3rd Party Transfer module.
1

Open the IVR Script Designer

In the Five9 VCC Administrator, go to IVR Scripts and create a new script (e.g. SigmaMind-FirstTouch).
2

(Optional) Register the call with SigmaMind using a Query module

Add a Query module that calls the SigmaMind API to register a correlation reference for this call. Configure an Authorization Profile for your SigmaMind API key, set the request body to include a correlation ID and the caller’s ANI, and parse the response into IVR variables using a RegEx function.This step lets you fetch the AI’s outcome later (see Step 5) to drive the handoff-back decision and the agent screen pop.
3

Add the 3rd Party Transfer module

Drag a 3rd Party Transfer module onto the canvas. This is the module that hands the customer to SigmaMind.Configure the destination:
  • Method A (dedicated PoP trunk): set the 3rd party number to the SigmaMind number you registered. The number must be registered with Five9 so the call egresses over the dedicated SIP trunk (rather than the public PSTN).
  • Method B (carrier trunk): set the 3rd party number to the DID on your Twilio/Telnyx trunk whose Origination URI forwards to sip:28y698lhv2f.sip.livekit.cloud.
4

Enable Send Data to 3rd Party (to pass lead data)

Select the Send Data to 3rd Party checkbox and choose the KVList variable that holds the lead fields you want to pass to SigmaMind. Five9 serializes this list into custom SIP headers on the transfer.Name your keys with an X- prefix (e.g. X-first_name, X-city) so SigmaMind exposes them as dynamic variables — see Step 3.
5

Enable Return After 3rd Party Call (for Five9-reclaim handoff)

If you want Five9 to take the customer back after the AI finishes and route to a human agent itself (the recommended handoff pattern — see Step 5, Option A), select the Return After 3rd Party Call checkbox. When the AI ends its leg, control returns to this IVR script at the node after the transfer.Leave this unchecked if you instead want SigmaMind to perform the transfer to a Five9 agent (Step 5, Option B).
6

Save the IVR Script

Save the script.

Step 2: Bind the Campaign

Connect the IVR Script to the campaign that dials your customers.
1

Open your outbound campaign

Go to Campaigns and open the outbound campaign that will dial your list (Predictive, Power, Progressive, or Preview).
2

Route connected calls to the IVR Script

Configure the campaign so that connected (answered) calls are routed to the SigmaMind-FirstTouch IVR Script you created in Step 1.
3

Confirm caller ID and pacing

Set the Caller ID customers will see. For initial testing, use conservative dial pacing and increase it only after confirming the end-to-end flow.
4

Save the campaign

Save the campaign.

You can pass Five9 lead fields — customer name, city, state, phone number, account ID — to SigmaMind via custom SIP headers. SigmaMind reads these on the inbound SIP call and makes them available as dynamic variables your AI agent can use in its prompt. This is the same mechanism used in the VICIdial integration.

How SigmaMind reads SIP headers

SigmaMind automatically processes any inbound SIP header that starts with X- or x-. It strips the prefix and exposes the remainder as a dynamic variable. For example:
SIP HeaderVariable in SigmaMind
X-customer_name: John Doe{{customer_name}}
X-city: Denver{{city}}
X-account_id: 12345{{account_id}}

Configuring SIP headers in Five9

Five9 sends custom SIP headers when Send Data to 3rd Party is enabled on the 3rd Party Transfer module (Step 1). The headers come from the KVList variable you select. Part A — Test with a static value first In your IVR Script, populate the KVList with a single static key whose name starts with X-:
X-city: Denver
After a test call, go to Conversations → [the call] → Dynamic Variables in SigmaMind. You should see city: Denver. If it appears, the pipeline is confirmed. Part B — Pass dynamic lead field values Once static headers work, replace the static values with Five9 lead/contact field variables in the KVList. Common fields you may want to pass:
X-first_name: [Five9 contact field]
X-last_name: [Five9 contact field]
X-city: [Five9 contact field]
X-state: [Five9 contact field]
X-phone_number: [Five9 contact field]
Header names must start with X-. SigmaMind strips the X- prefix to create the variable name — so X-city becomes {{city}} in your agent prompt. Keep the KVList lean; pass a correlation ID and the few fields the agent needs, and fetch anything larger over the API. For full details see the SIP Custom Header guide.
Part C — Reference variables in your SigmaMind agent prompt In your SigmaMind agent’s system prompt, reference the variables using double-curly-brace syntax:
You are calling {{first_name}} {{last_name}} located in {{city}}, {{state}}.
Their callback number is {{phone_number}}.
SigmaMind substitutes these at call time with the values received via SIP headers.

Step 4: Configure the AI Agent’s Conversation and Qualification

In SigmaMind, your AI agent handles the first-touch conversation: qualifying the lead, collecting information, answering questions, and deciding whether a human is needed.
1

Define the qualification goal in the prompt

Write the agent’s system prompt to qualify the lead against your criteria and to commit the qualification outcome (for example, by calling a tool or webhook) before the conversation ends.
2

Decide how the agent ends its turn

  • For Option A (Five9 reclaims the leg): the agent should end its own leg cleanly when finished (using the End Call voice action). This is what triggers Five9’s Return After 3rd Party Call to resume.
  • For Option B (AI transfers to a Five9 agent): the agent should invoke the Transfer Call voice action toward your Five9 inbound number (see Step 5, Option B).
3

Commit the outcome before ending

Ensure the qualification result is written back (via the SigmaMind API or a webhook) immediately before the agent ends or transfers, so the data is available to Five9 for routing and the agent screen pop.

Step 5: Configure the Handoff Back to a Five9 Agent

When the AI qualifies the call, it needs to reach a live Five9 agent. There are two patterns. Choose one based on whether you want Five9 or SigmaMind to own the handoff. Five9 keeps ownership of the customer the entire time and takes the call back after the AI finishes. This is the cleanest pattern: no second call leg is created, and it works natively within Five9’s routing.
1

Confirm Return After 3rd Party Call is enabled

In the 3rd Party Transfer module (Step 1), confirm Return After 3rd Party Call is checked.
2

Fetch the AI outcome

After the transfer node, add a Query module that calls the SigmaMind API to retrieve the qualification outcome for this call (using the correlation reference you set in Step 1). Parse the result into IVR variables.
3

Branch on the outcome

Add a Case module that branches on the qualification result — for example, qualified vs not_qualified.
4

Route qualified calls to a Skill

For qualified calls, add a Skill Transfer module that routes the customer into the appropriate Skill / ACD queue. Five9 assigns the call to an available agent, and the call variables you populated (summary, intent, lead fields) appear in the agent’s screen pop.
5

Handle non-qualified outcomes

For non-qualified outcomes, disposition the call appropriately (e.g. end the call, schedule a callback, or add to a Do Not Call list).

Option B — SigmaMind transfers to a Five9 inbound number

SigmaMind performs the transfer itself by dialing a Five9 inbound number (DNIS) that lands in a Five9 inbound campaign. Use this when you want a spoken, consultative (warm) handoff where the AI briefs the agent before connecting, or when Return After 3rd Party Call is not used.
1

Create a Five9 inbound campaign for the handoff

Create an Inbound Campaign, bind it to an inbound IVR Script, and set its DNIS to the number SigmaMind will dial. The inbound IVR Script routes the call into your Skill / ACD queue.
2

Configure the Transfer Call voice action in SigmaMind

In your AI agent, configure the Transfer Call voice action with the Five9 inbound number in E.164 format as the destination. Choose:
  • Cold transfer — the AI connects the customer to the queue and exits.
  • Warm transfer — the AI connects the agent first, plays a whisper message summarizing the call, then bridges the customer.
3

Fetch context in the inbound IVR Script

In the inbound IVR Script, add a Query module to fetch the AI’s summary from SigmaMind (by correlation reference or ANI) and populate call variables for the agent screen pop, then route via Skill Transfer.
Both options deliver the AI’s qualification and summary to the agent through Five9 call variables rendered in the Agent Desktop screen pop. The voice path carries a correlation reference; the rich summary is fetched from the SigmaMind API. Do not attempt to pass a full transcript through SIP headers.

Step 6: Test the Integration End-to-End

1

Place a test call

Run the outbound campaign against a single test lead, or place a test call through your trunk. Answer on your test phone.
2

Confirm the AI agent speaks

Your SigmaMind AI agent should begin speaking shortly after you answer. Speak a response and confirm the conversation flows naturally in both directions.
3

Confirm dynamic variables

After the call, go to Conversations → [the call] → Dynamic Variables in SigmaMind and confirm the lead fields you passed via SIP headers appear.
4

Confirm the handoff

Trigger a qualifying outcome and confirm the call reaches a Five9 agent:
  • Option A: confirm the IVR resumes after the AI ends, the Case branch routes to the Skill, and an agent rings with the screen pop populated.
  • Option B: confirm the AI transfers to the Five9 inbound number, the whisper plays to the agent (warm), and the customer is bridged.
5

Verify in both dashboards

Confirm the call appears in SigmaMind Conversations (with transcript and recording) and in your Five9 reporting (with the agent disposition).

Testing with a Softphone

If you are testing from a region where carrier-level geofencing prevents calls to or from US numbers, use a softphone registered to your trunk to dial the SigmaMind SIP server directly. This confirms SigmaMind picks up and the AI responds without needing a full Five9 campaign dial. Recommended softphone: Zoiper (free tier is sufficient for testing)
1

Install Zoiper

Download and install Zoiper on your test device.
2

Configure the SIP account

In Zoiper, add a SIP account pointing to your trunk (Twilio/Telnyx for Method B, or the dedicated trunk for Method A), using the credentials your trunk provides.
3

Dial the SigmaMind number

Dial the registered SigmaMind number through the trunk so the call routes to 28y698lhv2f.sip.livekit.cloud. Confirm SigmaMind picks up and the AI agent responds.

Troubleshooting

1. The transferred call does not reach SigmaMind

  • Confirm the 3rd party number in the 3rd Party Transfer module matches the number registered in SigmaMind under Phone Numbers → Connect via SIP Trunking, and that an active, published AI agent is mapped against it.
  • Method A: confirm the number is registered with Five9 so the call egresses over the dedicated SIP trunk, not the public PSTN.
  • Method B: confirm the carrier trunk’s Origination URI is sip:28y698lhv2f.sip.livekit.cloud and that SRTP is enabled.
  • Go to Conversations in SigmaMind — if the call appears there, the SIP connection is working and the issue is on the SigmaMind agent configuration side.

2. The customer hears ringing or silence before the AI speaks

  • A brief delay can occur while Five9 establishes the transfer leg. Because Five9 confirms a live answer before running the IVR Script, the customer should not experience a long wait, but verify your campaign’s answer-detection settings.
  • If silence persists, check codec and media settings on the trunk — prefer G.711 µ-law end to end to avoid transcoding.

3. Dynamic variables are not appearing in SigmaMind

  • Test with a static header value first — if the static value does not appear in SigmaMind Dynamic Variables, the SIP header is not being sent from Five9. Confirm Send Data to 3rd Party is enabled and the correct KVList is selected.
  • Confirm the header name starts with X- — SigmaMind only processes headers with this prefix.
  • The variable name in SigmaMind is the header name with X- stripped (e.g. X-city becomes {{city}}).
  • Variables only appear in Conversations → Dynamic Variables if they are referenced in the agent prompt. Add {{city}} to the agent prompt and re-test.

4. The AI finishes but Five9 does not route to an agent (Option A)

  • Confirm Return After 3rd Party Call is checked on the 3rd Party Transfer module.
  • Confirm the AI agent ends its own leg cleanly (using the End Call voice action) — this is what triggers the return.
  • Confirm the Query module after the transfer successfully retrieves the outcome, and that the Case module branches to the Skill Transfer.
  • Confirm the qualification outcome was committed by the agent before it ended (Step 4).

5. The agent receives no context on screen pop

  • Confirm the outcome/summary was written back to SigmaMind before the AI ended or transferred.
  • Confirm the Query module populates the Five9 call variables that your Agent Desktop screen pop is configured to display.
  • Confirm the correlation reference matches on both sides.

6. Call completes but no record appears in SigmaMind Conversations

  • Confirm the transferred-to number matches the number registered in SigmaMind under Phone Numbers → Connect via SIP Trunking.
  • Confirm that number has an active, published AI agent mapped against it.

How Call Transfers Work

SigmaMind handles transfers natively. The behavior depends on which handoff option you configured:
  • Option A (Return After 3rd Party Call): the AI ends its leg, and Five9 — which kept ownership of the customer the whole time — resumes its IVR Script and routes the customer to a Skill/agent. No second call leg is created, and the customer experiences a seamless continuation.
  • Option B (AI-initiated transfer): the AI dials your Five9 inbound number and connects the customer (cold), or briefs the agent and then bridges the customer (warm). Your existing caller ID and trunk remain in the path.
In both cases the human agent resumes the conversation with the AI’s qualification and summary available on screen.

How Multiple Agents Work

To route different Five9 campaigns to different SigmaMind AI agents:
  1. In SigmaMind, go to Phone Numbers → Connect via SIP Trunking and register a separate number for each campaign, entering the Terminal URI for each, and mapping each to the correct AI agent.
  2. In Five9, create a separate IVR Script (or a separate 3rd Party Transfer destination) per campaign, transferring to the corresponding registered number.
  3. Bind each IVR Script to the relevant campaign.
Each campaign routes through its own transfer destination, which reaches SigmaMind on its own registered number, which connects the corresponding AI agent.

Architecture Reference

Component Map

ComponentRole
Five9 CampaignDials the customer list, manages pacing and answer detection
Five9 IVR ScriptDecides routing; runs the 3rd Party Transfer to SigmaMind and the handoff-back logic
3rd Party TransferHands the answered customer to the SigmaMind SIP server; sends lead data via SIP headers
SigmaMind SIP NumberInbound entry point — mapped to a specific AI agent
SigmaMind AgentThe AI voice agent that speaks with the customer and qualifies the lead
SIP Headers (X-)Carry lead data from Five9 to SigmaMind as dynamic variables
Query / Case modulesFetch the AI outcome and branch on it for the handoff-back
Skill TransferRoutes a qualified customer into a Five9 Skill / ACD queue
Call VariablesDeliver the AI’s summary to the agent’s Agent Desktop screen pop

Reference Values

ValuePurpose
28y698lhv2f.sip.livekit.cloudSigmaMind SIP server hostname
X- prefixMarks a SIP header for exposure as a SigmaMind dynamic variable

Connection Method Summary

MethodPathBest for
A — Dedicated PoP SIP trunkFive9 PoP ⇄ SigmaMind (direct)Production, security review, lowest latency
B — Carrier Elastic SIPFive9 → Twilio/Telnyx → SigmaMindPilots, proofs of concept, existing trunks

Call Recording

SideWhat is recordedWhen recording starts
Five9Full call per your Five9 settingsWhen the campaign places the outbound call
SigmaMindAgent conversation onlyWhen the SigmaMind AI agent connects via SIP
Both recordings are independent. Five9’s recording is useful for diagnosing routing or bridging issues. SigmaMind’s recording shows exactly what the AI agent heard and said.