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

# Connecting bVOIP to Neo

> Make a Partner API key in the bVOIP Control Portal, allow Neo's IP addresses on it, and save it in Neo

You connect bVOIP once at the MSP level. One Partner API key covers every phone system your partner account owns.

## 1. Make the API key

**1. Open the API keys page**

Sign in to the bVOIP Control Portal as an admin of your account and go to **System** > **Partner API / MCP (AI)**.

**2. Create the key**

Click **Create API key** and set:

| Setting | Value |
| - | - |
| **Name** | Neo |
| **Allowed IP ranges** | Each of Neo's addresses from [IP whitelisting](https://docs.neoagent.io/integrations/ip-whitelisting.md), as a `/32` range, such as `74.235.25.90/32`. bVOIP refuses a request from any address not on the list |
| **Access level** | Read, when Neo only reads: status, call history, and voicemail notifications sent by Teams, email or a ticket. Ops or Full, when agents make changes or alert through a 1Stream on-call rule, which is a write |
| **Allow hosted AI assistants** | Leave it off. Neo calls from its own addresses |

bVOIP shows the key once, as `apiKeyId:secret`. Copy the whole value.

A new key reaches your phone systems a few minutes after you create it. If Neo refuses it at once, wait a moment and save again.

## 2. Add the key in Neo

**1. Open Integrations**

In the Neo Dashboard, open **Integrations** and find the bVOIP card, under Phone & VoIP.

**2. Save the key**

Paste the `apiKeyId:secret` value and click **Save settings**. Neo lists your phone systems with it before saving, so a wrong key, or a key whose IP ranges leave out Neo, is rejected straight away.

## 3. Turn bVOIP on per agent

Open the agent, go to the Integrations section, and pick an access profile for the bVOIP block, or set each area yourself:

| Area | Access levels you can pick | Notes |
| - | - | - |
| **Phone Systems, Services and Reboots** | Disabled, Read Only, Read / Write | Status, services, logs, reboots. Read Only for voicemail notifications and phone tickets. |
| **Call History and Reports** | Disabled, Read Only | 1Stream call history and counts, the phone system's own reports. |
| **Voicemail and Recordings** | Disabled, Read Only | Voicemail messages and the recording list. Turn on for voicemail notifications. |
| **Live Calls and On-Call Alerts** | Disabled, Read Only, Read / Write | Active calls, placing and ending calls, 1Stream on-call rules. |
| **Call Queues, Ring Groups and Agents** | Disabled, Read Only, Read / Write | Queues, ring groups, logging agents in and out. |
| **Extensions, Devices and Microsoft 365 Sync** | Disabled, Read Only, Read / Write | Extensions, forwarding profiles, devices, Microsoft 365 sync. |
| **Phone Numbers and Call Routing** | Disabled, Read Only, Read / Write | Numbers, rules, IVRs, departments, blocked numbers, trunks. |
| **Prompts, Hold Music and Playlists** | Disabled, Read Only, Read / Write | Hold music, prompts and playlists. |
| **Phone System Settings and IP Allow List** | Disabled, Read Only, Read / Write | Parameters, system notifications, the IP allow and block list. |
| **Control Portal Users and Roles** | Disabled, Read Only, Read / Write | Portal users and roles; every change asks a technician. |

A key with the Read access level refuses every change, whatever the profile says. The 1Stream call history needs the phone system connected to 1Stream with an Intelligence or Power seat. See [bVOIP API](https://docs.neoagent.io/agents/tools/communication/bvoip-api.md) for the profiles and what the agent can read and change.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.