Skip to main content
🤖 LLM Friendly: This page is available in raw Markdown format for LLM consumption:overview.md|Get full documentation:llms.txt/llms-full.txt

SDKs Overview

Firetell provides official client libraries and SDKs to simplify integration, handle WebRTC calling, and manage WebSocket communication within your applications.

Using our SDKs ensures that best practices—such as automatic reconnects, authentication timeouts, and media track management—are handled for you out of the box.


Available SDKs

JavaScript / TypeScript SDK

The @firetell/firetell-client-sdk library is compatible with browser environments (using ES Modules or loaded via a CDN script tag) for building WebRTC-based calling applications, and Node.js environments (using CommonJS) for receiving real-time events via WebSocket connection. It enables you to integrate real-time voice, video, and event features directly into your applications.


Handling Concurrent Incoming Calls

When multiple incoming calls arrive simultaneously or an incoming call arrives while an agent is currently on an active call, Firetell supports two standard frontend integration patterns:

Pattern A: Call Waiting & Hold (Multi-Call Management)

Allow the agent to receive call waiting notifications, put the current call on hold, and answer the new incoming call:

let activeCall: Call | null = null;

client.events.on("call.offer", async (incomingCall: Call) => {
if (activeCall && activeCall.active) {
// 1. Show Call Waiting notification on UI
console.log(`Call Waiting from ${incomingCall.from} (${incomingCall.from_name})`);

// 2. When Agent clicks "Hold & Answer":
await activeCall.hold();
await incomingCall.accept();
activeCall = incomingCall;
} else {
// Single call flow
activeCall = incomingCall;
}
});

Pattern B: Auto-Reject / Busy (Single-Call Policy)

If your call center policy restricts agents to one call at a time:

client.events.on("call.offer", async (incomingCall: Call) => {
if (client.activeCalls.size > 1) {
// Auto-reject 2nd call with Busy status (SIP 486 Busy)
// The backend Call Flow will immediately execute the fallback branch (Voicemail/Reroute)
await incomingCall.reject();
}
});

Planned SDKs

We are actively developing SDKs for additional languages and mobile frameworks to help you build native apps:

Platform / LanguageStatusPackage NameTarget Environment
Flutter🔜 Plannedfiretell_flutteriOS & Android
React Native🔜 Plannedreact-native-firetelliOS & Android

If you need an SDK for another language, please reach out to us at developers@firetell.com.