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

# transfer

> Transfers the call to another destination.

```ts
transfer(options): Promise<void>
```

Blind-transfers the remote party to another destination. The local side drops out of the call once the transfer is accepted by the server; the remote party continues at the new destination.

Use a directory URI for fabric-internal targets (e.g. `/public/support`), a SIP URI for SIP-routed transfers, or any other dialable string the server understands. The request is rejected if the local participant lacks the `transfer` capability — inspect [`call.capabilities$`](/docs/browser-sdk/v4/reference/webrtc-call/capabilities\$) first.

## **Parameters**

Transfer configuration. The required `destination` field is the dialable target — a fabric URI, SIP URI, or any string the server's dial plan understands. See [`TransferOptions`](/docs/browser-sdk/v4/reference/interfaces/transfer-options).

## **Returns**

`Promise<void>` — resolves when the server has accepted the transfer request. The local call will subsequently transition to `disconnected`.

## **Examples**

### Transfer to a queue

```ts
await call.transfer({ destination: '/public/support-queue' });
```

### Transfer to a SIP URI

```ts
await call.transfer({ destination: 'sip:agent@example.com' });
```

### Transfer with error handling

```ts
try {
  await call.transfer({ destination: '/public/support-queue' });
} catch (err) {
  console.error('transfer rejected:', err);
}
```

## **See**

* [`status$`](/docs/browser-sdk/v4/reference/webrtc-call/status\$) to observe the local call's progression after transfer.
* [`capabilities$`](/docs/browser-sdk/v4/reference/webrtc-call/capabilities\$) to check whether `transfer` is currently permitted.