open source
This commit is contained in:
parent
70b6e17c69
commit
a93bfc1ec9
61 changed files with 4013 additions and 126 deletions
73
vocode/streaming/telephony/conversation/zoom_dial_in.py
Normal file
73
vocode/streaming/telephony/conversation/zoom_dial_in.py
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
import logging
|
||||
from typing import Optional
|
||||
from twilio.rest import Client
|
||||
from vocode.streaming.agent.base_agent import BaseAgent
|
||||
from vocode.streaming.models.agent import AgentConfig
|
||||
from vocode.streaming.models.synthesizer import SynthesizerConfig
|
||||
from vocode.streaming.models.telephony import CallConfig, TwilioConfig
|
||||
from vocode.streaming.models.transcriber import TranscriberConfig
|
||||
from vocode.streaming.synthesizer.base_synthesizer import BaseSynthesizer
|
||||
from vocode.streaming.telephony.config_manager.base_config_manager import (
|
||||
BaseConfigManager,
|
||||
)
|
||||
from vocode.streaming.telephony.conversation.outbound_call import OutboundCall
|
||||
from vocode.streaming.transcriber.base_transcriber import BaseTranscriber
|
||||
from vocode.streaming.utils import create_conversation_id
|
||||
|
||||
|
||||
class ZoomDialIn(OutboundCall):
|
||||
def __init__(
|
||||
self,
|
||||
base_url: str,
|
||||
zoom_number: str,
|
||||
zoom_meeting_id: str,
|
||||
zoom_meeting_password: Optional[str],
|
||||
from_phone: str,
|
||||
config_manager: BaseConfigManager,
|
||||
twilio_config: TwilioConfig,
|
||||
agent_config: AgentConfig,
|
||||
transcriber_config: TranscriberConfig,
|
||||
synthesizer_config: SynthesizerConfig,
|
||||
conversation_id: Optional[str] = None,
|
||||
logger: Optional[logging.Logger] = None,
|
||||
):
|
||||
super().__init__(
|
||||
base_url=base_url,
|
||||
to_phone=zoom_number,
|
||||
from_phone=from_phone,
|
||||
config_manager=config_manager,
|
||||
transcriber_config=transcriber_config,
|
||||
agent_config=agent_config,
|
||||
synthesizer_config=synthesizer_config,
|
||||
twilio_config=twilio_config,
|
||||
conversation_id=conversation_id,
|
||||
logger=logger,
|
||||
)
|
||||
self.zoom_number = zoom_number
|
||||
self.zoom_meeting_id = zoom_meeting_id
|
||||
self.zoom_meeting_password = zoom_meeting_password
|
||||
self.from_phone = from_phone
|
||||
|
||||
def start(self):
|
||||
self.validate_outbound_call(
|
||||
self.zoom_number,
|
||||
self.from_phone,
|
||||
mobile_only=False,
|
||||
)
|
||||
digits = f"ww{self.zoom_meeting_id}#"
|
||||
if self.zoom_meeting_password:
|
||||
digits += f"wwww*{self.zoom_meeting_password}#"
|
||||
self.logger.debug("Sending digits %s to the call", digits)
|
||||
twilio_sid = self.create_twilio_call(
|
||||
self.zoom_number,
|
||||
self.from_phone,
|
||||
digits=digits,
|
||||
)
|
||||
call_config = CallConfig(
|
||||
transcriber_config=self.transcriber_config,
|
||||
agent_config=self.agent_config,
|
||||
synthesizer_config=self.synthesizer_config,
|
||||
twilio_config=self.twilio_config,
|
||||
twilio_sid=twilio_sid,
|
||||
)
|
||||
self.config_manager.save_config(self.conversation_id, call_config)
|
||||
Loading…
Add table
Add a link
Reference in a new issue