VoiceLink Setup
This guide walks you through connecting your VoiceLink account to Vocobase for inbound and outbound calling.Configure VoiceLink with the V2 API (
PUT /api/v2/config/telephony/voicelink) for the default connection. To create multiple named VoiceLink connections, use POST /api/v2/telephony/connections. Once VoiceLink is configured, start calls programmatically using POST /calls/start with "provider": "voicelink".Prerequisites
- A VoiceLink account with a panel username and password
- At least one VoiceLink DID (phone number) provisioned for voice
- An approved Vocobase account with
"voicelink"present inallowed_telephony_providers(checkGET /config)
Get your VoiceLink credentials
1
Find your VoiceLink panel sign-in
Use the same username and password you use to sign in to the VoiceLink panel. Vocobase logs in with these to obtain a short-lived access token when it calls the VoiceLink API on your behalf — your password is stored encrypted and never sent back to you.
2
Identify the DID you will call from
Copy the VoiceLink number you plan to use as the caller ID.The number must be in E.164 format (e.g.,
+918011223344) and must be enabled for outbound voice.Configure VoiceLink in Vocobase
Send the credentials through the V2 API.username, password, and from_number are required. base_url is accepted for backwards compatibility but ignored — the VoiceLink host is configured by Vocobase.
This endpoint updates your default VoiceLink connection. To create multiple named VoiceLink connections, use
POST /api/v2/telephony/connections and store the returned connection_id.About base_url
base_url is still accepted so existing integrations keep working, but the
value is ignored. Vocobase sets the VoiceLink host itself.
VoiceLink only accepts API connections originating from Indian IP addresses, so
Vocobase routes all outbound VoiceLink calls through its own India-based egress.
An account-supplied host would bypass that and the connection would be unable to
place calls at all.
base_url is returned in responses as an origin only (scheme and host, no
path), which is why it may not match anything you sent.
To rotate credentials later, send the same request again with the new values. Every field is required on each call — the endpoint replaces the stored credential set rather than patching it.
Confirm it is configured
GET /api/v2/config reports VoiceLink under allowed_telephony_providers and shows telephony.voicelink.configured: true once your credentials are saved. See Check provider access.
Make a test call
Start an outbound call with"provider": "voicelink".
Inbound calling is configured per DID through the guided dashboard workflow or
POST /api/v2/voicelink/inbound-ready. Call transfer support depends on the active VoiceLink media integration and remains outside this setup guide.connection_id — omitting it returns CONNECTION_AMBIGUOUS. See Bring Your Own Phone for the full request and response shape.
Managing DIDs
Thefrom_number you send is stored as the default outbound DID. To manage multiple VoiceLink DIDs, create named V2 telephony connections and select the desired one with connection_id when starting outbound calls.
For inbound setup, client and DID mapping, sync, and readiness checks, use the VoiceLink Management guide. It documents the safe inbound/outbound composers under /api/v2/voicelink/*, including connection_id support for multiple active VoiceLink connections.
Troubleshooting
”VoiceLink not configured” or 403 on /calls/start
- Confirm
"voicelink"is inallowed_telephony_providersfromGET /config. If it is not, contact your Vocobase account manager. - Confirm
username,password, and afrom_numberwere saved (telephony.voicelink.configured: true).
”Invalid VoiceLink username or password”
- Re-check the credentials against the VoiceLink panel sign-in. Re-send
PUT /config/telephony/voicelinkwith the correct values.
Inbound calls are never answered, but setup reported success
Inbound resolution is scoped to the connection the call arrives on. A DID imported onto several VoiceLink connections only answers on the one whose bot VoiceLink is actually dialling, and only if the agent is assigned on that same connection.- List your connections:
GET /api/v2/telephony/connections?provider=voicelink. If more than one is active, standardise on a single connection and remove the rest. - Re-run
POST /api/v2/voicelink/inbound-readyagainst that connection, passing bothconnection_idandagent_id. - Confirm the result has
data.ready: trueanddata.readiness.inbound.ready: true. A response whosestepscontainassign_agentwith statusskippedis not a working setup.
inbound-ready, the bot URL is missing the signed connection token and every call is rejected. Re-run inbound-ready to regenerate it.
Calls ring but drop immediately
- Confirm the destination number is reachable from your VoiceLink account.
- Check the VoiceLink panel call logs for the exact drop reason.
Caller ID shows the wrong number
- The
from_numbersaved on your Vocobase VoiceLink connection must match a number VoiceLink has provisioned for your account, in E.164 format. Update it viaPUT /config/telephony/voicelinkif it does not.
Next steps
Telephony Connections
Create and manage multiple named connections.
VoiceLink Management
Manage clients, DIDs, mapping, and readiness.
Bring Your Own Phone
Overview of all supported BYOP providers.
Quick Start
Create an agent and make your first call.