29 lines
795 B
Python
29 lines
795 B
Python
import logging
|
|
from typing import Optional
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from vocode.streaming.telephony.templates import Templater
|
|
|
|
|
|
class TwiMLRouter:
|
|
def __init__(
|
|
self,
|
|
base_url: str,
|
|
templater: Templater,
|
|
logger: Optional[logging.Logger] = None,
|
|
):
|
|
super().__init__()
|
|
self.base_url = base_url
|
|
self.templater = templater
|
|
self.logger = logger or logging.getLogger(__name__)
|
|
self.router = APIRouter()
|
|
self.router.add_api_route(
|
|
"/twiml/initiate_call/{id}", self.call_twiml, methods=["POST"]
|
|
)
|
|
|
|
def call_twiml(self, id: str):
|
|
return self.templater.get_connection_twiml(base_url=self.base_url, call_id=id)
|
|
|
|
def get_router(self) -> APIRouter:
|
|
return self.router
|