> 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. # register > Registers the user as online to receive inbound calls and events. ```ts register(): Promise ``` Registers the user as online to receive inbound calls and events. Waits for authentication to complete before sending the registration. If the initial attempt fails, reauthentication is attempted automatically. After `register()` resolves, inbound calls addressed to this user surface through [`session.incomingCalls$`](/docs/browser-sdk/v4/reference/interfaces/session-state#incomingcalls-1). Call [`unregister`](/docs/browser-sdk/v4/reference/signalwire/unregister) to stop receiving calls without disconnecting the client. ## **Returns** `Promise` ## **Throws** If registration and reauthentication both fail. ## **Examples** ### Register and watch for 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 }); } }); ``` ### Track registration state reactively ```ts client.isRegistered$.subscribe((registered) => { console.log('registered:', registered); }); ``` ## **See** * [`session`](/docs/browser-sdk/v4/reference/signalwire/session) — exposes `incomingCalls$`. * [`unregister`](/docs/browser-sdk/v4/reference/signalwire/unregister) — reverse this. * [`isRegistered$`](/docs/browser-sdk/v4/reference/signalwire/is-registered\$) — reactive state. * [Inbound Calls guide](/docs/browser-sdk/v4/guides/inbound-calls). > Registers the user as online to receive inbound calls and events.