Represent DTMF sequences as list[KeypadEntry] via buttons field
Replaces the string-based `tones` field with a type-safe `buttons: list[KeypadEntry]` on `OutputDTMFFrame` and `OutputDTMFUrgentFrame`, matching the existing singular `button` field on `InputDTMFFrame`. A `from_string` classmethod builds the list from a dial string like `"123#"` (invalid characters raise ValueError from the `KeypadEntry` constructor). The base output audio fallback now iterates `frame.buttons` directly, LiveKit sends `frame.buttons[0].value`, and the Daily transport joins the button values into the single string Daily's `send_dtmf` expects.
This commit is contained in:
@@ -1 +1 @@
|
||||
- Deprecated the `button` field on `OutputDTMFFrame` and `OutputDTMFUrgentFrame`. Use the new `tones` field instead. When only `button` is set, `button.value` is used as a single-tone `tones` string for backward compatibility.
|
||||
- Deprecated the `button` field on `OutputDTMFFrame` and `OutputDTMFUrgentFrame`. Use the new `buttons` field (a `list[KeypadEntry]`) instead. When only `button` is set, it is wrapped in a single-entry list for backward compatibility.
|
||||
|
||||
Reference in New Issue
Block a user