RELAYMessage

on

View as MarkdownOpen in Claude

Register an event listener for state changes on this message. The handler is called each time a messaging.state event is received for this message, allowing you to react to intermediate states before the terminal state is reached.

Parameters

handler
Callable[[RelayEvent], None]Required

A function or coroutine that receives a RelayEvent on each state change. Both synchronous and async handlers are supported.

Returns

None

Example

1import asyncio
2from signalwire.relay import RelayClient
3
4client = RelayClient(
5 project="your-project-id",
6 token="your-api-token",
7 host="your-space.signalwire.com",
8 contexts=["default"],
9)
10
11async def track_state():
12 async with client:
13 message = await client.send_message(
14 to_number="+15551234567",
15 from_number="+15559876543",
16 body="Order confirmed",
17 )
18
19 def on_state_change(event):
20 print(f"Message {message.message_id} -> {message.state}")
21
22 message.on(on_state_change)
23 await message.wait()
24
25asyncio.run(track_state())