pipecat / bot_runner_helpers.py
Deadmon's picture
Update bot_runner_helpers.py
c5d854a verified
from typing import Dict, Any, Optional
from bot_definitions import bot_registry
def determine_room_capabilities(body: Dict[str, Any]) -> Dict[str, bool]:
bot_type = bot_registry.detect_bot_type(body)
bot = bot_registry.get_bot(bot_type)
capabilities = {
"enable_dialin": False,
"enable_dialout": False,
}
if not bot:
return capabilities
if bot.name == "call_transfer":
call_transfer_config = body.get("call_transfer", {})
capabilities["enable_dialin"] = True
if call_transfer_config.get("mode") == "dialout":
capabilities["enable_dialout"] = True
elif bot.name == "simple_dialin":
capabilities["enable_dialin"] = True
elif bot.name in ["simple_dialout", "voicemail_detection"]:
capabilities["enable_dialout"] = True
return capabilities
async def process_dialin_request(data: Dict[str, Any]) -> Dict[str, Any]:
body = {
"dialin_settings": {
"callId": data.get("callId"),
"callDomain": data.get("callDomain"),
"From": data.get("From"),
"To": data.get("To"),
}
}
return body
def ensure_prompt_config(body: Dict[str, Any]) -> Dict[str, Any]:
if "prompts" not in body:
body["prompts"] = []
return body