***

title: hold
slug: /reference/python/relay/call/hold
description: Put a call on hold.
max-toc-depth: 3
---------------------

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

[unhold]: /docs/server-sdks/reference/python/relay/call/unhold

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

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

Put the call on hold. The remote party hears hold music or silence while the
call is held.

<Info>
  Use [`unhold()`][unhold] to release the call from hold.
</Info>

<Info>
  This method emits [`calling.call.hold`][calling-call-hold] events. See [Call Events][call-events] for payload details.
</Info>

## **Parameters**

None.

## **Returns**

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

## **Example**

```python {15}
import asyncio
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", "text": "Please hold while I look that up."}])

    result = await call.hold()
    print(f"Hold started: {result}")

    # Do some processing...
    await asyncio.sleep(5)

    # Take the call off hold
    await call.unhold()

client.run()
```