sw-call-widget
sw-call-widget
sw-call-widget
All-in-one call widget — handles client initialisation, dialling, media, controls and optional AI transcript in either inline or modal mode.
The widget owns the entire call lifecycle:
token (+ optional
host) and connects on demand via client-factory.CallStateContextController, DevicesContextController,
TranscriptController, and UserEventController so every nested
SDK-aware component picks up live state for free.<sw-ui-call-layout>,
<sw-call-media>, <sw-local-camera>, <sw-call-controls>, and
optionally <sw-ui-transcript-view> and <sw-ui-content-drawer>.<sw-ui-modal> overlay when modal is set, or renders
inline (within the host’s bounding box) when it isn’t.IncomingCallController when
allow-incoming-calls is enabled and prompts the user to accept.Use the imperative dial() and hangup() methods to trigger the
widget programmatically, or click any element placed in the default
slot (the trigger) when in idle state.
Class: SwCallWidget · Module: packages/web-components/src/components/sw-call-widget/sw-call-widget.ts
SwCallWidget, sw-call-widgettoken field.
host field.
destination field.
modal field.
transcription field.
allowIncomingCalls field.
audioOnly field.
Custom variables sent with the Verto invite as a JSON object. The widget always advertises capabilities.display\_content and metadata.widget.opened\_at so the agent can detect that the caller supports the content drawer; user-supplied keys are merged in and win on shallow conflict. Invalid JSON is logged and ignored — the call still dials.
Skip auto-injecting the SignalWire theme.css design-token stylesheet. Set this when the host page already loads @signalwire/web-components/theme.css or a custom theme written against the same DTCG token names.
Skip auto-loading the SignalWire brand fonts (Lexend, Instrument Sans, JetBrains Mono) from Google Fonts. Set this when fonts are self-hosted or loaded elsewhere.