Requirements
Before adding a new provider, ensure the service supports:- WebRTC for browser-based calling
- REST API for call management (create, hangup, transfer, etc.)
- Phone number provisioning via API
- Webhook callbacks for call events (ringing, answered, ended)
- Call recording (optional but recommended)
Architecture
A telephony provider in Ringee consists of the following components:1. Provider Service (Backend)
Create a new service in the backend that implements the core telephony operations:- Make a call — Initiate an outbound call
- Receive a call — Handle an inbound call via webhooks
- End a call — Hang up an active call
- Record a call — Start/stop recording
- Buy a number — Purchase a phone number
- List available numbers — Search for available phone numbers by country
2. Webhook Controller
Create a controller to handle incoming webhook events from the provider:- Call initiated — A call has started
- Call answered — The recipient picked up
- Call ended — The call has been terminated
- Recording ready — A call recording is available for download
3. Frontend WebRTC Client
Integrate the provider’s WebRTC SDK in the frontend to handle browser-based calling:- Initialize the WebRTC connection
- Handle microphone access
- Display call state (ringing, connected, ended)
4. Configuration
Add the required environment variables for the new provider to the.env.example file and document them.
Steps
1
Create the provider service
Add a new service module in the backend with the core telephony operations listed above.
2
Add webhook handlers
Create webhook endpoint(s) to receive call events from the provider.
3
Integrate the WebRTC SDK
Add the provider’s WebRTC client library to the frontend and wire it into the call UI.
4
Add environment variables
Define all required API keys and configuration variables in
.env.example.5
Write documentation
Add a new page in
docs/providers/your-provider.mdx with setup instructions, and update docs.json to include it in the navigation.6
Submit a PR
Open a pull request with your changes. Make sure to include tests and documentation.
We welcome contributions! If you’re adding a new provider, feel free to open an issue first to discuss the integration approach.

