@babelforce/babelconnect-sdk
v0.45.1
Published
TypeScript SDK for babelconnect — server-authoritative agent state over gRPC-web, native WebRTC audio, and an embeddable agent widget with a bundled legacy bridge.
Readme
@babelforce/babelconnect-sdk
Build a custom softphone with live agent state, typed commands and browser WebRTC audio. Or embed the ready-made agent app in your CRM.
Installation
npm install @babelforce/babelconnect-sdkESM-only, ES2022; modern browsers and Node 20+ for control-only use. Browser audio needs HTTPS
or localhost and microphone permission. CommonJS callers use dynamic import().
Quickstart — programmatic client (with audio)
Follow the complete TypeScript tutorial. It includes project setup, state rendering, dialing, explicit inbound answering, errors and cleanup. The default browser media auto-answers your own outbound leg; inbound calls and callbacks wait for an Answer click. A bearer token authenticates the client.
Quickstart — control only (no audio)
Use mediaFactory: null, autoAnswer: false for state and commands without audio. Registration still
requests WebRTC reachability; restore external-phone routing when the agent takes calls elsewhere.
See control-only setup.
Quickstart — embed the agent app
Import BabelconnectEmbed from @babelforce/babelconnect-sdk/embed. Mount with a container,
app origin and bearer token. Wait for agent.loaded before commands; call dispose() on unmount.
No bundler? The package includes dist/web/babelconnect-embed.iife.js, exposing
window.BabelconnectEmbed; current app deployments also serve it under /embed/.
The embedding guide
covers token handoff/refresh, themes, sizing, event versions and media ownership across mounts.
Legacy mode uses legacyBridge: true plus your legacyAuth hook; set the legacy app's origin/path.
The hook must authenticate that app. Theme operations require the current app.
API overview
Client and options · Authentication · Intents · Errors & reconnects.
How it works
The server owns AgentView; the SDK applies snapshots/patches and calls your subscriber.
Your UI sends commands and renders their outcomes. Control uses gRPC-web Subscribe + Send;
audio uses separate WebRTC media. Closing releases media and the stream, but doesn't revoke the token.
License
Apache-2.0 © babelforce GmbH
