Skip to main content
If your carrier isn’t among the supported providers, Ringg can add it when it meets the capabilities below. Missing any one of them means the provider can’t be fully integrated; if it supports standard instead, a SIP trunk is the faster route.

1. Outbound call API

The provider must expose an API to start an outbound call. Ringg calls it with: How a call runs:
  1. Ringg calls the provider’s outbound API with your credentials, passing the WebSocket URL in the request.
  2. The provider places the call. When the callee answers, it connects to that WebSocket URL at once and streams audio both ways. No answer-URL round trip is needed: unlike inbound calls, the WebSocket URL is in the request itself.
  3. When the call ends, the provider hits the callback URL with the call’s status and metadata.
  4. Ringg runs post-call processing: transcript, recording, webhooks and analytics.

2. Get call by ID API

The provider must expose an API to fetch a call by its ID. Ringg uses it to verify call status during and after the call, fetch duration and billing metadata, and retrieve the recording URL when the provider records.
How existing providers do it:

3. Inbound calls

For inbound calls the flow is reversed: the provider calls Ringg when a call arrives.
  1. A caller dials a DID. The provider receives the call.
  2. The provider sends a webhook to Ringg’s inbound endpoint with call_sid, from_number and to_number (the DID), and keeps the caller in a ringing state. The caller must not hear silence or be disconnected while Ringg sets up.
  3. Ringg looks up to_number, finds the workspace and agent attached to that DID, builds the call config and returns the WebSocket URL in the webhook response.
  4. The provider connects to that URL at once and streams audio both ways.
The response format depends on the provider:

4. WebSocket streaming

The provider must stream audio over WebSocket in both directions. This is how the agent hears and speaks to the caller. Over that socket the provider must send three kinds of message:
  • Audio: binary frames of caller audio.
  • DTMF events: one per keypad digit the caller presses, for example { "event": "dtmf", "digit": "5", "call_id": "provider-call-id" }.
  • Call control: start, stop and hangup signals for the call lifecycle. Tata Tele’s format is the reference: a connection-established message, binary audio frames, digit events, call state changes (connected, disconnected) and metadata messages (call ID, caller info).
DTMF is mandatory. Ringg agents use the wait_for_dtmf tool to collect keypad input (“Press 1 to confirm, press 2 to cancel”). Without DTMF events, those agent flows cannot work.

5. Call transfer

The provider must support a blind transfer: handing an active call to another number without waiting for the target to answer. During a call the agent decides to transfer from the conversation and its transfer rules, calls the call_transfer tool with a target number, and Ringg sends the transfer command to the provider by REST API or WebSocket control message. The provider connects the caller to the target, and Ringg logs the transfer for analytics.

Checklist

Before requesting an integration, confirm the provider supports all six:

Next steps

Request an integration

Email Ringg once your provider meets the requirements.

Use a SIP trunk instead

Connect any SIP-capable platform directly.