> 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. # SessionState > Extended session interface that adds call management and authentication state on top of the narrow ClientSession contract. Extended session interface that adds call management and authentication state on top of the narrow ClientSession contract. Accessible via `client.session`. Call and CallFactory continue to depend only on the narrow ClientSession interface. ## **Extends** * `ClientSession` ## **Properties** **`authenticated`** `boolean` — required Current authentication state. Returns `true` if the session is currently authenticated. --- **`authenticated$`** `Observable` — required Observable that emits `true` once the session has been authenticated, and `false` after disconnect. --- **`calls`** `Call[]` — required Current snapshot of all active calls. See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call). --- **`calls$`** `Observable` — required Observable stream of all currently active calls (both inbound and outbound). See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call). --- **`incomingCalls`** `Call[]` — required Current snapshot of active inbound calls. See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call). --- **`incomingCalls$`** `Observable` — required Observable stream of currently active inbound calls. Filters `calls$` to only include calls with `direction === 'inbound'`. See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call). --- #### Inherited from ClientSession **`callControl`** `'routed' | 'in-dialog'` — required Control transport for every call in this session, set once via [`SignalWireOptions.callControl`](/docs/browser-sdk/v4/reference/interfaces/signalwire-options). It is session-wide, so a reattached call reads it here rather than restoring it from persisted state. --- **`iceServers`** `RTCIceServer[] | undefined` — required ICE servers configuration for WebRTC peer connections Used by VertoManager to configure RTCPeerConnection. See [`RTCIceServer`](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer). --- **`signalingEvent$`** `Observable>` — required Observable stream of incoming signaling events Used by Call to listen for call-related events from the server --- ## **Methods** ### execute() ```ts execute(request, options?): Promise ``` Execute an RPC request through the session transport #### Type Parameters | Type Parameter | Default type | | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | | `T` *extends* [`JSONRPCResponse`](/docs/browser-sdk/v4/reference/type-aliases/jsonrpc-response) | [`JSONRPCResponse`](/docs/browser-sdk/v4/reference/type-aliases/jsonrpc-response) | #### Parameters **`request`** `JSONRPCRequest` — required The JSON-RPC request to execute. See [`JSONRPCRequest`](/docs/browser-sdk/v4/reference/interfaces/jsonrpc-request). --- **`options`** `PendingRPCOptions` Optional RPC execution options (timeout, etc.) See [`PendingRPCOptions`](/docs/browser-sdk/v4/reference/interfaces/pending-rpc-options). --- #### Returns `Promise` Promise resolving to the RPC response #### Inherited from `ClientSession.execute` > Extended session interface that adds call management and authentication state on top of the narrow ClientSession contract.