> 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. # session > The active client session — call lists, authentication state, and the inbound-call stream. ```ts get session(): ClientSessionWrapper ``` The active client session. Exposes the [`SessionState`](/docs/browser-sdk/v4/reference/interfaces/session-state) surface — including the lists of active and inbound calls — once the client is connected and authenticated. This is the entry point for **inbound calls**: subscribe to [`session.incomingCalls$`](/docs/browser-sdk/v4/reference/interfaces/session-state#incomingcalls-1) after calling [`register()`](/docs/browser-sdk/v4/reference/signalwire/register) to receive notification of ringing calls. ## **Examples** ### Inbound calls ```ts await client.register(); client.session.incomingCalls$.subscribe((calls) => { const ringing = calls.find((c) => c.status === 'ringing'); if (ringing) { ringing.answer({ audio: true, video: true }); } }); ``` ### Reattached calls after page reload ```ts const existing = client.session.calls; if (existing.length > 0) { const call = existing[0]; // re-bind call.status$, call.remoteStream$, etc. to your UI } ``` ## **See** * [`SessionState`](/docs/browser-sdk/v4/reference/interfaces/session-state) — full interface, including `calls$`, `incomingCalls$`, `authenticated$`. * [`register`](/docs/browser-sdk/v4/reference/signalwire/register) — must be called before inbound calls route to this session. * [Inbound Calls guide](/docs/browser-sdk/v4/guides/inbound-calls) — end-to-end accept/reject flow. > The active client session — call lists, authentication state, and the inbound-call stream.