Your instinct is spot-on. Do not build this on raw LiveKit code if you cannot code yourself. While LiveKit is the gold standard for flexibility, using Claude Code to duct-tape an agent worker together is fine for a weekend experiment, but a liability on a live business phone line. The moment a SIP session drops, a turn-detection threshold fails, or a runtime error occurs during business hours, relying on an AI chat loop to debug production logs will quickly become overwhelming. ElevenLabs Conversational AI is significantly easier and gives you a clean interface. However, its native phone-call and SIP handling is still relatively basic compared to dedicated telephony platforms, and troubleshooting custom tool calls can become restrictive as the business demands grow. The Recommended Approach Rather than forcing yourself into raw code with LiveKit or hitting the telephony limitations of pure ElevenLabs, the best path is to treat ElevenLabs as the voice engine (TTS) inside a telephony-first voice orchestrator: 1. Use ElevenLabs purely for voice synthesis where it shines, keeping conversational Czech sounding natural. 2. Keep the orchestration layer no-code/low-code, so you have a dashboard to manage prompts, call recordings, latency settings, and SIP configurations without writing Python or TypeScript Two Crucial Recommendations (Outside What We Discussed) 1. Look into Retell AI or Vapi instead of raw LiveKit:These platforms are purpose-built for real phone calls and SIP trunking. They handle the hard telecom plumbing (interruption handling, silence detection, latency optimization, call transfers) and allow you to simply plug in your ElevenLabs API key for speech. You get full control over the STT model (like Deepgram or Whisper for Czech) and LLM without maintaining server code. 2. Use n8n (or Make) as your tool-calling engine: Instead of coding custom API endpoints for the bot to check availability or book appointments, route your voice agent's custom tools through a visual webhook automation platform like n8n. If a booking fails or a date is misformatted, you can visually trace and fix the logic in seconds without touching code.