RelayCall

detect_digit

View as MarkdownOpen in Claude

Detect DTMF digits. A typed convenience over detect() that builds the {"type": "digit", "params": {...}} configuration for you. All parameters are keyword-only.

Parameters

digits
str | NoneDefaults to None

The digits to listen for, such as "1234567890*#". Omit to detect any digit. Keyword-only.

timeout
float | NoneDefaults to None

Maximum seconds to run the detector before stopping. Keyword-only.

on_completed
Callable[[RelayEvent], Any] | NoneDefaults to None

Callback invoked when the operation reaches a terminal state. Can be a regular function or async coroutine. Keyword-only.

Returns

DetectAction — An action handle with stop() and wait() methods. It resolves on the first detection result.

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()
action = await call.detect_digit(digits="0123456789", timeout=15)
event = await action.wait()
print("Detect result:", event.params)
client.run()