> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # sw-call-widget All-in-one call widget — handles client initialisation, dialling, media, controls and optional AI transcript in either inline or modal mode. ```html ``` The widget owns the entire call lifecycle: 1. Builds a SignalWire credential provider from `token` (+ optional `host`) and connects on demand via `client-factory`. 2. Wires `CallStateContextController`, `DevicesContextController`, `TranscriptController`, and `UserEventController` so every nested SDK-aware component picks up live state for free. 3. Composes the visual layout from ``, ``, ``, ``, and optionally `` and ``. 4. Shows an `` overlay when `modal` is set, or renders inline (within the host's bounding box) when it isn't. 5. Listens for incoming-call signals via `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`* ## class: `SwCallWidget`, `sw-call-widget` ### Fields **`token`** `string` — default: '' `token` field. --- **`host`** `string` — default: '' `host` field. --- **`destination`** `string` — default: '' `destination` field. --- **`modal`** `boolean` — default: false `modal` field. --- **`transcription`** `boolean` — default: false `transcription` field. --- **`screenShareAudio`** `boolean` — default: false Also request the shared surface's audio when the user starts a screen share. Forwarded to ``. --- **`allowIncomingCalls`** `boolean` — default: false `allowIncomingCalls` field. --- **`audioOnly`** `boolean` — default: false `audioOnly` field. --- **`userVariables`** `string` — default: '' 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. --- **`disableAutoTheme`** `boolean` — default: false 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. --- **`disableAutoFonts`** `boolean` — default: false 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. --- ### Methods | Name | Privacy | Description | Parameters | Return | Inherited From | | -------- | ------- | ----------- | ---------- | --------------- | -------------- | | `dial` | | | | `Promise` | | | `hangup` | | | | `Promise` | | ### Attributes | Name | Field | Inherited From | | ---------------------- | ------------------ | -------------- | | `token` | token | | | `host` | host | | | `destination` | destination | | | `modal` | modal | | | `transcription` | transcription | | | `screen-share-audio` | screenShareAudio | | | `allow-incoming-calls` | allowIncomingCalls | | | `audio-only` | audioOnly | | | `user-variables` | userVariables | | | `disable-auto-theme` | disableAutoTheme | | | `disable-auto-fonts` | disableAutoFonts | | ### Slots | Name | Description | | ------------ | ------------------------------------------------------------------------------ | | `background` | Background element behind the call view, e.g. \`\\`. | | | Default slot. Trigger element shown when idle; clicking it dials. | ### Events | Name | Detail | Description | | -------------------------- | ------ | ------------------------------------------------------- | | `signalwire-address:event` | — | Forwarded SignalWire custom user events. | | `sw-call-ended` | — | The call reached a terminal state — user hangup, | | `sw-dial` | — | The widget began dialing (programmatic or via trigger). | | `sw-display-content` | — | Forwarded from a `display_content` user event. | ---