Skip to main content

babelconnect SDKs

Build a softphone that fits your application. The TypeScript SDK gives you live agent state, typed call controls, and browser WebRTC audio. You supply the interface.

Start with Your first softphone: create a project, render calls, dial, answer an incoming call with a button, and release the microphone when you leave.

Your goalStart here
Build a custom browser clientTypeScript tutorial · SDK setup
Put the ready-made agent UI in a CRMEmbedding
Observe state or send SMS without audioTypeScript control only
Build a terminal tool or Go serviceGo setup and availability
Find a field, method, or errorTypeScript API · Intents · Error codes

The model: server-authoritative state, typed intents

The server owns each agent's AgentView. It sends a snapshot, then patches; the SDK maintains a StateCache and calls your renderer. Send an intent such as placeCall or setPresence and render the resulting state. Don't change the cached view to predict success.

Control and audio travel on separate planes

Control carries commands and state; WebRTC carries audio. A client can observe calls, send SMS, or change presence without a media leg. It still needs an audio destination to take calls. See State & events for the model and TypeScript vs Go for SDK defaults and limits.

How it fits together

your interface → SDK → Send(Command) → server
SDK ← Subscribe(StateUpdate) ← server
browser microphone/speaker ← WebRTC → server

Both SDKs use Subscribe plus Send: TypeScript over gRPC-web, Go over Connect. The retired bidirectional Session RPC is not supported. The server also exposes unary operations through REST/OpenAPI; AsyncAPI describes the state stream. See API surfaces.

Pick your path

After the tutorial, use Recipes for UI tasks, Authentication for login, and Errors & reconnects for long-lived sessions. The concepts explain behavior; generated references enumerate the contract. Troubleshooting starts from symptoms, and the glossary defines the terms.