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.
670 B
670 B
- Added
DailyTransport.send_dtmf()to expose the Daily call client's DTMF sending capability, enabling applications to send tones during a call (e.g. IVR navigation). - Added
buttonsfield toOutputDTMFFrameandOutputDTMFUrgentFramefor sending multi-key DTMF sequences as alist[KeypadEntry]. UseOutputDTMFFrame.from_string("123#")(or the equivalent onOutputDTMFUrgentFrame) to build one from a dial string. - Added
DailyOutputDTMFFrameandDailyOutputDTMFUrgentFrameframes. In addition to the inheritedbuttons, they acceptsession_idanddigit_duration_ms, which are forwarded to Daily'ssend_dtmfassessionIdanddigitDurationMs.