vocode-python/vocode/streaming/models/telephony.py
2023-03-28 10:29:00 -07:00

60 lines
1.8 KiB
Python

from typing import Optional
from vocode.streaming.models.audio_encoding import AudioEncoding
from vocode.streaming.models.model import BaseModel
from vocode.streaming.models.agent import AgentConfig
from vocode.streaming.models.synthesizer import SynthesizerConfig
from vocode.streaming.models.transcriber import TranscriberConfig
class TwilioConfig(BaseModel):
account_sid: str
auth_token: str
class CallEntity(BaseModel):
phone_number: str
class CreateInboundCall(BaseModel):
transcriber_config: Optional[TranscriberConfig] = None
agent_config: AgentConfig
synthesizer_config: Optional[SynthesizerConfig] = None
twilio_sid: str
conversation_id: Optional[str] = None
twilio_config: Optional[TwilioConfig] = None
class EndOutboundCall(BaseModel):
call_id: str
twilio_config: Optional[TwilioConfig] = None
class CreateOutboundCall(BaseModel):
recipient: CallEntity
caller: CallEntity
transcriber_config: Optional[TranscriberConfig] = None
agent_config: AgentConfig
synthesizer_config: Optional[SynthesizerConfig] = None
conversation_id: Optional[str] = None
twilio_config: Optional[TwilioConfig] = None
# TODO add IVR/etc.
class DialIntoZoomCall(BaseModel):
recipient: CallEntity
caller: CallEntity
zoom_meeting_id: str
zoom_meeting_password: Optional[str]
transcriber_config: Optional[TranscriberConfig] = None
agent_config: AgentConfig
synthesizer_config: Optional[SynthesizerConfig] = None
conversation_id: Optional[str] = None
twilio_config: Optional[TwilioConfig] = None
class CallConfig(BaseModel):
transcriber_config: TranscriberConfig
agent_config: AgentConfig
synthesizer_config: SynthesizerConfig
twilio_config: Optional[TwilioConfig]
twilio_sid: str