1. Outbound call API
The provider must expose an API to start an outbound call. Ringg calls it with:
How a call runs:
- Ringg calls the provider’s outbound API with your credentials, passing the WebSocket URL in the request.
- 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.
- When the call ends, the provider hits the callback URL with the call’s status and metadata.
- 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.3. Inbound calls
For inbound calls the flow is reversed: the provider calls Ringg when a call arrives.- A caller dials a DID. The provider receives the call.
- The provider sends a webhook to Ringg’s inbound endpoint with
call_sid,from_numberandto_number(the DID), and keeps the caller in a ringing state. The caller must not hear silence or be disconnected while Ringg sets up. - 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. - The provider connects to that URL at once and streams audio both ways.
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).
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 thecall_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.