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

# register

> Registers the user as online to receive inbound calls and events.

```ts
register(): Promise<void>
```

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<void>`

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