Skip to content

Commit d7487c4

Browse files
committed
docs: add Bitcall SIP trunking integration guide
1 parent b702666 commit d7487c4

2 files changed

Lines changed: 109 additions & 0 deletions

File tree

‎fern/advanced/sip/sip-bitcall.mdx‎

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
---
2+
title: Bitcall SIP integration
3+
subtitle: Connect a Bitcall SIP trunk to Vapi for outbound calls
4+
description: Configure a Bitcall SIP trunk with username and password authentication so your Vapi assistants can place outbound calls.
5+
slug: advanced/sip/bitcall
6+
---
7+
8+
Connect your Bitcall SIP trunk to Vapi so your assistants can place outbound calls to phone numbers worldwide. Bitcall authenticates with a SIP username, password and domain, so the setup is one SIP trunk credential and one caller ID.
9+
10+
For SIP trunking concepts and network requirements, see the [SIP trunking guide](/advanced/sip/sip-trunk).
11+
12+
<Note>
13+
Bitcall is outbound-only. It does not provide phone numbers (DIDs), so it cannot route inbound calls to Vapi. Use it for assistants that place calls, such as reminders, surveys and outbound campaigns.
14+
</Note>
15+
16+
## Prerequisites
17+
18+
Before you begin, make sure you have:
19+
20+
- A [Bitcall account](https://bitcall.io) with a positive balance
21+
- A Bitcall SIP account (SIP username and password)
22+
- An outbound caller ID you are allowed to present on calls
23+
- A Vapi account and assistant
24+
25+
## Bitcall connection details
26+
27+
| Setting | Value |
28+
| --- | --- |
29+
| SIP domain | `gateway.bitcall.io` |
30+
| Port | `5060` |
31+
| Authentication | SIP username and password |
32+
33+
<Warning>
34+
Use username and password authentication. Don't set up IP-based (Trusted IP) authentication on your Bitcall SIP account: Vapi places calls from SIP servers shared by many customers, so an IP allowlist can't identify your organization. Also don't set a Trusted IP and SIP credentials on the same Bitcall SIP account, because authentication then fails.
35+
</Warning>
36+
37+
## Configure outbound calling
38+
39+
<Steps>
40+
<Step title="Create a Bitcall SIP trunk credential">
41+
In the [Vapi dashboard](https://dashboard.vapi.ai), select your organization name, then go to **Settings → Integrations → SIP Trunk** and click **Configure New SIP Trunk**.
42+
43+
Configure the credential with your Bitcall SIP account details:
44+
45+
- **Name:** A descriptive name, such as `Bitcall`
46+
- **IP Address / Domain:** `gateway.bitcall.io`
47+
- **Username:** Your Bitcall SIP username
48+
- **Password:** Your Bitcall SIP password
49+
50+
Save the credential and note its credential ID.
51+
</Step>
52+
53+
<Step title="Add your outbound caller ID">
54+
Vapi needs a phone number resource to use as the caller ID on outbound calls. Because Bitcall doesn't issue phone numbers, this is the caller ID you want to present, not a Bitcall number.
55+
56+
Go to [Phone Numbers](https://dashboard.vapi.ai/phone-numbers), click **Create Phone Number** and select **BYO SIP Trunk Number**. Enter your caller ID in E.164 format and select the Bitcall credential in the **SIP Trunk Credential** dropdown. Save the phone number.
57+
</Step>
58+
</Steps>
59+
60+
### Configure with the API
61+
62+
You can create the same resources with the API. Get a [Vapi private API key](/security-and-privacy/api-keys), then create the SIP trunk credential:
63+
64+
```bash
65+
curl -X POST "https://api.vapi.ai/credential" \
66+
-H "Content-Type: application/json" \
67+
-H "Authorization: Bearer YOUR_VAPI_PRIVATE_KEY" \
68+
-d '{
69+
"provider": "byo-sip-trunk",
70+
"name": "Bitcall",
71+
"gateways": [
72+
{ "ip": "gateway.bitcall.io", "inboundEnabled": false }
73+
],
74+
"outboundLeadingPlusEnabled": true,
75+
"outboundAuthenticationPlan": {
76+
"authUsername": "YOUR_BITCALL_SIP_USERNAME",
77+
"authPassword": "YOUR_BITCALL_SIP_PASSWORD"
78+
}
79+
}'
80+
```
81+
82+
Then add your caller ID as a phone number, using the `id` returned above:
83+
84+
```bash
85+
curl -X POST "https://api.vapi.ai/phone-number" \
86+
-H "Content-Type: application/json" \
87+
-H "Authorization: Bearer YOUR_VAPI_PRIVATE_KEY" \
88+
-d '{
89+
"provider": "byo-phone-number",
90+
"name": "Bitcall caller ID",
91+
"number": "YOUR_CALLER_ID",
92+
"numberE164CheckEnabled": false,
93+
"credentialId": "YOUR_CREDENTIAL_ID"
94+
}'
95+
```
96+
97+
## Test the integration
98+
99+
1. In Vapi, select an assistant and the caller ID phone number you created.
100+
2. Place a test call to a phone you can answer.
101+
3. Verify that the call connects and displays the expected caller ID.
102+
103+
## Troubleshooting
104+
105+
- **The call fails with 401 or 403:** Check the SIP username and password, and make sure the Bitcall SIP account doesn't also have a Trusted IP set.
106+
- **The caller ID is not shown or is replaced:** Caller ID handling depends on the destination country and operator. Present a number you are allowed to use.
107+
- **A destination can't be reached:** Dial numbers in E.164 format and check that your Bitcall balance covers the call.

‎fern/docs.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,8 @@ navigation:
453453
path: advanced/sip/sip-didww.mdx
454454
- page: didlogic
455455
path: advanced/sip/sip-didlogic.mdx
456+
- page: Bitcall
457+
path: advanced/sip/sip-bitcall.mdx
456458
- page: Zadarma
457459
path: advanced/sip/sip-zadarma.mdx
458460
- page: Plivo

0 commit comments

Comments
 (0)