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

# echo

> Echo call audio back to the caller for testing.

[calling-call-echo]: /docs/server-sdks/reference/python/relay/call#events

[call-events]: /docs/server-sdks/reference/python/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.

This method emits [`calling.call.echo`][calling-call-echo] events. See [Call Events][call-events] for payload details.

## **Parameters**

Maximum duration of the echo in seconds. The echo stops automatically after
this timeout.

URL to receive echo status webhooks.

## **Returns**

`dict` -- Server response confirming the echo operation.

## **Example**

```python {15}
from signalwire.relay import RelayClient

client = RelayClient(
    project="your-project-id",
    token="your-api-token",
    host="your-space.signalwire.com",
    contexts=["default"],
)

@client.on_call
async def handle_call(call):
    await call.answer()
    await call.play([{"type": "tts", "params": {"text": "Starting echo test. You should hear yourself."}}])

    result = await call.echo(timeout=30)
    print(f"Echo completed: {result}")

    await call.play([{"type": "tts", "params": {"text": "Echo test complete."}}])
    await call.hangup()

client.run()
```