> 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. # SignalWireOptions > Options for constructing a SignalWire. Options for constructing a [SignalWire](/docs/browser-sdk/v4/reference/signalwire). ## **Properties** **`callControl`** `'routed' | 'in-dialog'` — default: routed **Experimental.** Control transport for `call.*` verbs across every call in this session. `'routed'` sends them on the client's session channel. `'in-dialog'` carries them on each call's own signaling channel via `verto.info`, so control works without the client needing to know how the conference is hosted. `'in-dialog'` is opt-in because it does not reach everywhere `'routed'` does — use it only for calls that join a conference over SWML (e.g. an SWML `join_conference`). It is client-wide rather than per-`dial()` because the SDK issues some control RPCs itself (fetching the layout list on join, for example), and those must travel the same way as your own or reads and writes land on different transports. This is a rollout switch, not a long-term part of the API: it carries no semver promise and is expected to disappear once `'in-dialog'` becomes the only transport. Application code should not depend on it. --- **`debug`** `DebugOptions` Debug options for verbose SDK diagnostics (e.g., `{ logWsTraffic: true }`). See [`DebugOptions`](/docs/browser-sdk/v4/reference/interfaces/debug-options). --- **`logger`** `SDKLogger | null` Custom logger implementation. Must implement the [SDKLogger](/docs/browser-sdk/v4/reference/interfaces/sdk-logger) interface. Pass `null` to restore the built-in logger. **Note:** Logger configuration is global — setting it on one instance affects all instances. --- **`logLevel`** `LogLevel` Log level for the built-in logger. Default: `'warn'`. Set to `'debug'` for verbose SDK output. Has no effect when a custom `logger` is provided. **Note:** Logger configuration is global — setting it on one instance affects all instances. See [`LogLevel`](/docs/browser-sdk/v4/reference/type-aliases/log-level). --- **`persistSession`** `boolean` Persist the session across page reloads. When `true`, credential, authorization state, and protocol are stored in `localStorage` (survives reload). The DPoP key pair is persisted in IndexedDB. On reload, the SDK restores the session from cache without calling `credentialProvider.authenticate()`. When `false` (default), session data lives in `sessionStorage` and is lost on reload. Both [`disconnect()`](/docs/browser-sdk/v4/reference/signalwire/disconnect) and [`destroy()`](/docs/browser-sdk/v4/reference/signalwire/destroy) end the session and clear the persisted resume state and attach records; credentials and device preferences survive. Use [`resetToDefaults()`](/docs/browser-sdk/v4/reference/signalwire/reset-to-defaults) for a full wipe, or [`unregister()`](/docs/browser-sdk/v4/reference/signalwire/unregister) to temporarily stop receiving inbound calls while keeping the session alive. --- **`reconnectAttachedCalls`** `boolean` Whether to reconnect to previously attached calls. --- **`savePreferences`** `boolean` Whether to save preferences. --- **`skipConnection`** `boolean` Skip automatic WebSocket connection on construction. --- **`skipDeviceMonitoring`** `boolean` Skip monitoring media device changes. --- **`skipRegister`** `boolean` Skip automatic user registration on construction. --- **`storageImplementation`** `Storage` Custom storage implementation for persistence. See [`Storage`](/docs/browser-sdk/v4/reference/interfaces/storage). --- **`webRTCApiProvider`** `WebRTCApiProvider` Custom WebRTC API provider. See [`WebRTCApiProvider`](/docs/browser-sdk/v4/reference/interfaces/webrtc-api-provider). --- **`webSocketConstructor`** `NodeSocketAdapter | WebSocketAdapter` Custom WebSocket constructor. See [`NodeSocketAdapter`](/docs/browser-sdk/v4/reference/interfaces/node-socket-adapter) and [`WebSocketAdapter`](/docs/browser-sdk/v4/reference/type-aliases/web-socket-adapter). --- > Options for constructing a SignalWire.