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.
- Package:
@firetell/firetell-client-sdk - Status: Active / Stable
- Interactive Live Demo: https://developers.firetell.com/firetell-client-sdk/example/
- Guides: Installation & Setup • Client Authentication • Quickstart Guide • API Reference
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 / Language | Status | Package Name | Target Environment |
|---|---|---|---|
| Flutter | 🔜 Planned | firetell_flutter | iOS & Android |
| React Native | 🔜 Planned | react-native-firetell | iOS & Android |
If you need an SDK for another language, please reach out to us at developers@firetell.com.