Browser calling
Visitors and agents call over raw WebRTC. No SIP in the browser, no plugins.
Tring is an open-source, API-first voice platform. Drop a <script> tag and a <button> into your app, and your agents make and take real phone calls in the browser. Bring your own trunk (Airtel, Jio, Tata, or any SIP carrier), and Tring handles the API, browser SDK, IVR, agent routing, recording and call webhooks.
It is multi-tenant, India-first, and self-hosted with the same binaries you’d run as a hosted service. Licensed under Apache 2.0.
Browser calling
Visitors and agents call over raw WebRTC. No SIP in the browser, no plugins.
Visual IVR builder
Node-graph flow editor with a live simulator. Prompt text is synthesized to audio when you save.
Agent routing
Ring-all, round-robin, sequential and longest-wait strategies, with live presence and queue depth.
Bring your own trunk
Indian carriers pre-configured, multi-trunk failover, and a config-only swap between providers.
WhatsApp calls
WhatsApp users call your business number and reach the same flows and agents as phone callers.
Recording & webhooks
Stereo call recording, one call log for every source, and signed webhooks you pick per IVR step and flow.
Tring is two Go binaries, one Postgres and one Redis, plus FreeSWITCH as a private edge to the phone network.
| Service | Role |
|---|---|
tring (:8085, :8087) |
One binary with two roles. The api role (:8085): REST API, admin console, browser SDK bundles. The gateway role (:8087): the media plane and the “brain”: IVR, agent routing, recording, call records |
tring-fs |
FreeSWITCH: the SIP edge to your carrier trunks (and WhatsApp) |
tring-db, tring-redis |
Postgres for data, Redis for agent presence and call tokens |
Every call, whether from a browser, a phone or WhatsApp, becomes a room on one media plane, so IVR, transfers, recording and call records work the same way regardless of where the call came from.