***

title: transfer
slug: /reference/typescript/relay/call/transfer
description: Transfer call control to another RELAY application or SWML script.
max-toc-depth: 3
---------------------

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

Transfer control of the call to another RELAY application or SWML script.
The current application loses control of the call after a successful transfer.

## **Parameters**

<ParamField path="dest" type="string" required={true} toc={true}>
  The transfer destination. This can be a RELAY context name or a URL pointing
  to a SWML script.
</ParamField>

## **Returns**

`Promise<Record<string, unknown>>` -- Server response confirming the transfer.

## **Example**

```typescript {14}
import { RelayClient } from '@signalwire/sdk';

const client = new RelayClient({
  project: process.env.SIGNALWIRE_PROJECT_ID!,
  token: process.env.SIGNALWIRE_TOKEN!,
  contexts: ['default']
});

client.onCall(async (call) => {
  await call.answer();
  const action = await call.play([{ type: 'tts', text: 'Transferring you now...' }]);
  await action.wait();

  const result = await call.transfer('support-queue');
  console.log(`Transfer result: ${JSON.stringify(result)}`);
});

await client.run();
```