Merge pull request #1004 from Fluentsai/feature/dtmf_input

Twilio serializer reading dtmf websocket messages
This commit is contained in:
Aleix Conchillo Flaqué
2025-01-17 18:14:46 -08:00
committed by GitHub
2 changed files with 44 additions and 4 deletions

View File

@@ -5,6 +5,7 @@
#
from dataclasses import dataclass, field
from enum import Enum
from typing import TYPE_CHECKING, Any, Awaitable, Callable, List, Literal, Mapping, Optional, Tuple
from pipecat.audio.vad.vad_analyzer import VADParams
@@ -18,6 +19,23 @@ if TYPE_CHECKING:
from pipecat.observers.base_observer import BaseObserver
class KeypadEntry(str, Enum):
"""DTMF entries."""
ONE = "1"
TWO = "2"
THREE = "3"
FOUR = "4"
FIVE = "5"
SIX = "6"
SEVEN = "7"
EIGHT = "8"
NINE = "9"
ZERO = "0"
POUND = "#"
STAR = "*"
def format_pts(pts: int | None):
return nanoseconds_to_str(pts) if pts else None
@@ -375,6 +393,13 @@ class TransportMessageFrame(DataFrame):
return f"{self.name}(message: {self.message})"
@dataclass
class InputDTMFFrame(DataFrame):
"""A DTMF button input"""
button: KeypadEntry
#
# System frames
#