RelayCall

wait_for_answered

View as MarkdownOpen in Claude

Wait until the call state reaches answered. Returns immediately if the call is already answered or has moved past it (ending or ended). A typed convenience over wait_for() on the calling.call.state event.

answer() returns as soon as the platform accepts the command; the call reaches answered a moment later. Await wait_for_answered() when the next step needs the media path up. Outbound calls from client.dial() are already answered when they return, so the method returns immediately for them.

Parameters

timeout
float | NoneDefaults to None

Maximum seconds to wait. Raises asyncio.TimeoutError if exceeded. None waits indefinitely.

Returns

RelayEvent — The state event. When the call was already at or past the target, event.params["call_state"] holds the current state.

Example

from signalwire.relay import RelayClient
client = RelayClient(
project="your-project-id",
token="your-api-token",
contexts=["default"],
)
@client.on_call
async def handle_call(call):
await call.answer()
await call.wait_for_answered(timeout=10)
await (await call.play_tts("Thanks for calling Bayview Taxi.")).wait()
client.run()