> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sigmamind.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Five9 Integration Guide

> Connect Five9 to the SigmaMind Voice AI platform. Five9 dials your customers, bridges each answered call to a SigmaMind AI agent in real time, and hands qualified calls back to a live Five9 agent with full context.

## How It Works

```text theme={null}
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.

<Note>
  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.
</Note>

***

## SigmaMind SIP Server Details

All calls from Five9 to SigmaMind are directed to the following SIP server:

| Field                     | Value                                        |
| ------------------------- | -------------------------------------------- |
| **SIP Server URI**        | `28y698lhv2f.sip.livekit.cloud`              |
| **Full Dial Destination** | `+1XXXXXXXXXX@28y698lhv2f.sip.livekit.cloud` |
| **Transport**             | UDP, TCP, or TLS                             |
| **Media Encryption**      | SRTP 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.

<Note>
  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](/documentation/phone-number/sip-integration/sip-trunking) for full SIP server requirements.
</Note>

***

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

### Method A — Dedicated SIP trunk via Five9 Point of Presence (recommended for production)

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.

<Info>
  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.
</Info>

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.

<Note>
  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](/documentation/phone-number/sip-integration/providers/twilio) or [Telnyx SIP Trunking guide](/documentation/phone-number/sip-integration/providers/telnyx).
</Note>

***

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

<Warning>
  **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](#testing-with-a-softphone) below.
</Warning>

***

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

<Steps>
  <Step title="Go to Phone Numbers in SigmaMind">
    In your SigmaMind dashboard, navigate to **Phone Numbers** and click **Add Phone Number**.
  </Step>

  <Step title="Select Connect via SIP Trunking">
    In the **Add Phone Number** dialog, select the **Connect via SIP Trunking** tab.
  </Step>

  <Step title="Fill in the SIP trunk details">
    Enter the following:

    | Field                   | Value                                                                                                                         |
    | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
    | **Phone Number**        | The number Five9 will transfer to (e.g. `+13453453453`)                                                                       |
    | **Terminal URI**        | Your carrier or trunk's SIP termination URI (e.g. `f111.dialmake.com`) — provided by your telephony carrier, not by SigmaMind |
    | **SIP Trunk User Name** | Optional — enter only if your carrier requires SIP authentication                                                             |
    | **SIP Trunk Password**  | Optional — enter only if your carrier requires SIP authentication                                                             |

    <Note>
      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.
    </Note>
  </Step>

  <Step title="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>
</Steps>

***

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

<Steps>
  <Step title="Open the IVR Script Designer">
    In the Five9 VCC Administrator, go to **IVR Scripts** and create a new script (e.g. `SigmaMind-FirstTouch`).
  </Step>

  <Step title="(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.
  </Step>

  <Step title="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`.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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).
  </Step>

  <Step title="Save the IVR Script">
    Save the script.
  </Step>
</Steps>

***

## Step 2: Bind the Campaign

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

<Steps>
  <Step title="Open your outbound campaign">
    Go to **Campaigns** and open the outbound campaign that will dial your list (Predictive, Power, Progressive, or Preview).
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Save the campaign">
    Save the campaign.
  </Step>
</Steps>

***

## Step 3: Pass Lead Data via SIP Headers (Optional but Recommended)

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 Header                  | Variable 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-`:

```text theme={null}
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:

```text theme={null}
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]
```

<Note>
  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](/documentation/agents/add-advance-nodes/howto-use-sip-custom-header).
</Note>

**Part C — Reference variables in your SigmaMind agent prompt**

In your SigmaMind agent's system prompt, reference the variables using double-curly-brace syntax:

```text theme={null}
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.

<Steps>
  <Step title="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.
  </Step>

  <Step title="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).
  </Step>

  <Step title="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>
</Steps>

***

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

### Option A — Return After 3rd Party Call (recommended)

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.

<Steps>
  <Step title="Confirm Return After 3rd Party Call is enabled">
    In the 3rd Party Transfer module (Step 1), confirm **Return After 3rd Party Call** is checked.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Branch on the outcome">
    Add a **Case** module that branches on the qualification result — for example, `qualified` vs `not_qualified`.
  </Step>

  <Step title="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**.
  </Step>

  <Step title="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).
  </Step>
</Steps>

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

<Steps>
  <Step title="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**.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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**.
  </Step>
</Steps>

<Note>
  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.
</Note>

***

## Step 6: Test the Integration End-to-End

<Steps>
  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Verify in both dashboards">
    Confirm the call appears in SigmaMind **Conversations** (with transcript and recording) and in your Five9 reporting (with the agent disposition).
  </Step>
</Steps>

***

## 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](https://www.zoiper.com) (free tier is sufficient for testing)

<Steps>
  <Step title="Install Zoiper">
    Download and install Zoiper on your test device.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

***

## 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

| Component                | Role                                                                                     |
| ------------------------ | ---------------------------------------------------------------------------------------- |
| **Five9 Campaign**       | Dials the customer list, manages pacing and answer detection                             |
| **Five9 IVR Script**     | Decides routing; runs the 3rd Party Transfer to SigmaMind and the handoff-back logic     |
| **3rd Party Transfer**   | Hands the answered customer to the SigmaMind SIP server; sends lead data via SIP headers |
| **SigmaMind SIP Number** | Inbound entry point — mapped to a specific AI agent                                      |
| **SigmaMind Agent**      | The 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 modules** | Fetch the AI outcome and branch on it for the handoff-back                               |
| **Skill Transfer**       | Routes a qualified customer into a Five9 Skill / ACD queue                               |
| **Call Variables**       | Deliver the AI's summary to the agent's Agent Desktop screen pop                         |

### Reference Values

| Value                           | Purpose                                                         |
| ------------------------------- | --------------------------------------------------------------- |
| `28y698lhv2f.sip.livekit.cloud` | SigmaMind SIP server hostname                                   |
| `X-` prefix                     | Marks a SIP header for exposure as a SigmaMind dynamic variable |

### Connection Method Summary

| Method                          | Path                              | Best for                                    |
| ------------------------------- | --------------------------------- | ------------------------------------------- |
| **A — Dedicated PoP SIP trunk** | Five9 PoP ⇄ SigmaMind (direct)    | Production, security review, lowest latency |
| **B — Carrier Elastic SIP**     | Five9 → Twilio/Telnyx → SigmaMind | Pilots, proofs of concept, existing trunks  |

### Call Recording

| Side          | What is recorded                  | When recording starts                        |
| ------------- | --------------------------------- | -------------------------------------------- |
| **Five9**     | Full call per your Five9 settings | When the campaign places the outbound call   |
| **SigmaMind** | Agent conversation only           | When 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.
