A voice receptionist for service businesses that you can talk to in the browser. Full-duplex audio, interruptions, and tool calls in the middle of a call.
The problem
Phone menus are slow. Press 1 for hours, press 2 for billing, then wait. Small trade and service shops miss calls every day because the person who would answer is on a job or driving between sites. Each missed call is a lost job.
I wanted to know how close a voice agent could get to a real receptionist, so I built one against a fictional home-services company.
What I built
A browser console where you call the receptionist and talk. It answers at once, lets you interrupt it mid-sentence, and can act during the call: dispatch an engineer, give a quote, capture a callback number. A mode switch covers the cases a real office needs: answer everything, take overflow when the team is busy, route out-of-hours emergencies, or stay off.
How it works
The browser captures microphone audio at 24 kHz and streams linear PCM over a WebSocket straight into an AssemblyAI voice agent session. A Next.js route issues a short-lived session token, so the API key never reaches the browser. Replies stream back as audio chunks into a Web Audio playback queue, and transcript and tool events arrive on the same socket.
Dial tones, DTMF and hang-up sounds are synthesised with Web Audio oscillators. A canvas visualiser reacts to both the caller's level and the agent's. When cloud credentials are missing, it falls back to a neural TTS voice and a local scripted agent so the demo still runs.
Outcome
Voxora is a working demo, packaged in Docker. The production version, with real phone lines and WhatsApp for a UK trades business, is written up as VoxMox.
Need something like this built? contact@akhilsingh.in