Skip to content

Introduction

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.