> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# 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**

Current authentication state. Returns `true` if the session is currently authenticated.

Observable that emits `true` once the session has been authenticated, and `false` after disconnect.

Current snapshot of all active calls. See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call).

Observable stream of all currently active calls (both inbound and outbound). See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call).

Current snapshot of active inbound calls. See [`Call`](/docs/browser-sdk/v4/reference/interfaces/call).

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).

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).

Observable stream of incoming signaling events Used by Call to listen for call-related events from the server

## **Methods**

### execute()

```ts
execute<T>(request, options?): Promise<T>
```

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

The JSON-RPC request to execute. See [`JSONRPCRequest`](/docs/browser-sdk/v4/reference/interfaces/jsonrpc-request).

Optional RPC execution options (timeout, etc.) See [`PendingRPCOptions`](/docs/browser-sdk/v4/reference/interfaces/pending-rpc-options).

#### Returns

`Promise<T>`

Promise resolving to the RPC response

#### Inherited from

`ClientSession.execute`