SignalWireOptions
Options for constructing a SignalWire.
Properties
callControl
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
Debug options for verbose SDK diagnostics (e.g., { logWsTraffic: true }). See DebugOptions.
logger
Custom logger implementation. Must implement the SDKLogger interface. Pass null to restore the built-in logger. Note: Logger configuration is global — setting it on one instance affects all instances.
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.
persistSession
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() and destroy() end the session and clear the persisted resume state and attach records; credentials and device preferences survive. Use resetToDefaults() for a full wipe, or unregister() to temporarily stop receiving inbound calls while keeping the session alive.
reconnectAttachedCalls
Whether to reconnect to previously attached calls.
savePreferences
Whether to save preferences.
skipConnection
Skip automatic WebSocket connection on construction.
skipDeviceMonitoring
Skip monitoring media device changes.
skipRegister
Skip automatic user registration on construction.
storageImplementation
Custom storage implementation for persistence. See Storage.
webRTCApiProvider
Custom WebRTC API provider. See WebRTCApiProvider.
webSocketConstructor
Custom WebSocket constructor. See NodeSocketAdapter and WebSocketAdapter.