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

# WhatsApp Business Calling

> Let customers call a voice agent from WhatsApp, using your own WhatsApp Business number

WhatsApp Business Calling lets a customer place a **voice call** to one of your agents directly from WhatsApp — this is calling, not text messaging. It works alongside regular phone numbers: some of your agents can keep taking SIP calls while others answer on WhatsApp.

<Note>
  WhatsApp Business Calling isn't publicly released yet. Until it is, contact [support@osvi.ai](mailto:support@osvi.ai) to have it enabled for your workspace.
</Note>

## What you need

A WhatsApp Business number on Meta's Cloud API, with calling enabled for it in your Meta developer account, plus these values from the Meta console:

| Field | Where it comes from |
| - | - |
| **Phone number** | The WhatsApp Business number, in E.164 format (country code, no spaces). |
| **Phone number ID** | Meta console → WhatsApp → API Setup. |
| **Access token** | Your app's Meta access token. Stored encrypted and never shown again after saving. |
| **App secret** | Your Meta app secret, used to verify that call webhooks really came from Meta. |
| **Business account ID** *(optional)* | Your WhatsApp Business Account (WABA) ID. |
| **Cloud API version** | Must match the version your webhook subscription uses. |

## Setting it up

<Steps>
  <Step title="Switch the agent to WhatsApp">
    On the voice agent's **Telephony** tab, choose **WhatsApp Calling** as the transport (alongside **SIP (default)** and **WebSocket streaming**). This is one of three mutually exclusive transports per agent, so this agent stops taking SIP calls while it's on WhatsApp — other agents on your account are unaffected.
  </Step>

  <Step title="Connect the number">
    Click **Connect number** and fill in the fields above, plus an optional **Label** and an **Active** toggle.
  </Step>

  <Step title="Finish setup in Meta">
    Osvi shows a **Callback URL** and a **Verify token** — both copyable. In the Meta developer console:

    1. Open your app → **WhatsApp** → **Configuration**.
    2. Paste the Callback URL and Verify token, then click **Verify and save**.
    3. Subscribe to the **calls** webhook field.
    4. Under **Phone numbers** → your number → **Calling**, enable calling and set business hours (inbound calls need them).
    5. Place a test call to the number from WhatsApp — your agent should answer.
  </Step>
</Steps>

If you ever need to reissue the callback URL and verify token — for example after a credential leak — use **Rotate webhook** on the connected number. The old callback URL stops working immediately, so update the Meta console with the new values right away.

## Limits

* Outbound WhatsApp calls need the recipient to have granted your business permission to call them, and are only available in the countries Meta supports for WhatsApp calling.
* A number can only be attached to an agent while that agent's telephony transport is set to WhatsApp.
