> 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. # echo > Echo call audio back to the caller for testing. [calling-call-echo]: /docs/server-sdks/reference/typescript/relay/call#events [call-events]: /docs/server-sdks/reference/typescript/relay/call#events Echo audio back to the caller. This is primarily useful for testing audio quality, latency, and connectivity. The caller hears their own voice repeated back to them. > **Info** > > This method emits [`calling.call.echo`][calling-call-echo] events. See [Call Events][call-events] for payload details. ## **Parameters** **`timeout`** `number | undefined` Maximum duration of the echo in seconds. The echo stops automatically after this timeout. --- **`statusUrl`** `string | undefined` URL to receive echo status webhooks. --- ## **Returns** `Promise>` -- Server response confirming the echo operation. ## **Example** ```typescript {13} import { RelayClient } from '@signalwire/sdk'; const client = new RelayClient({ project: process.env.SIGNALWIRE_PROJECT_ID!, token: process.env.SIGNALWIRE_API_TOKEN!, contexts: ['default'] }); client.onCall(async (call) => { await call.answer(); await call.play([{ type: 'tts', text: 'Starting echo test. You should hear yourself.' }]); const result = await call.echo({ timeout: 30 }); console.log(`Echo completed: ${JSON.stringify(result)}`); await call.play([{ type: 'tts', text: 'Echo test complete.' }]); await call.hangup(); }); await client.run(); ``` > Echo call audio back to the caller for testing.