Overview
Ozonetel connects to Ringg over HTTP + WebSocket. Ozonetel dials the customer and calls Ringg’s URLs; Ringg replies with the instructions for the call. You configure three URLs in Ozonetel:Prerequisites
- An active Ozonetel account with API access
- The Ozonetel API key, campaign name, user name, and the SIP extension your campaign streams from
- At least one DID on the Ozonetel side
- A Ringg workspace with admin access, and an assistant ready to take calls
Step 1: Add Ozonetel as a telephony provider in Ringg
1
Open Telephony Integration
In the Ringg dashboard, go to Integrations → Telephony Integration.
2
Select Ozonetel
Click Add Telephony Provider and select Ozonetel.
3
Enter credentials
All four fields are required.
Optional: set
call_transfer_strategy to group if warm transfers should be bridged to an Ozonetel skill group rather than dialed as a plain number.4
Test and save
Click Test Connection, then save the provider.
5
Import your numbers
Ozonetel numbers are added manually. Go to Numbers, choose the Ozonetel account, and add each DID.
Step 2: Outbound URL
Set the campaign’s agent-flow URL to:The Name parameter
When Ringg places an outbound call, it passes a Name parameter carrying the Ringg call ID. Ozonetel must send that same Name back to this URL on every callback — that is how Ringg identifies which call is connecting.
400, and the call never connects.
Callback parameters
Ringg serves the stream instruction once per call (10-minute guard). A duplicate
NewCall for the same Name gets an empty response instead of a second stream.Step 3: Inbound URL
Point the URL node of your inbound flow at:
Ringg answers with a hangup instruction when
sid is missing, the assistant cannot be resolved, or the SIP extension is not configured.
Step 4: Status callback URL
Set the campaign’s Call-Summary (CDR) push URL to:x-www-form-urlencoded) when there is one, otherwise from the query string. A data=<json-string> envelope is unwrapped automatically.
This callback is what drives Ringg’s retry and failure handling. Without it, unanswered and busy calls are not retried.
Identifying the call
- Outbound — template the Ringg call ID into the URL as
call_id, or make sureNameis present in the push. If neither is there, the push is ignored. - Inbound — Ringg uses Ozonetel’s own call ID:
monitorUCID,ucid, orsid. - Direction comes from
Type(orcall_type/direction). OnlyInboundcounts as inbound;Manual,Preview,Progressive,Predictive,IVRand an absent value are treated as outbound.
Call disposition
Send the call disposition inCustomerStatus, DialStatus, Status or AgentStatus — Ringg reads whichever is present, most granular first.
The endpoint always returns 200 {"status": "ok"} so Ozonetel does not retry the push.
