All work

AI Voice Agent

Real-time telephony AI

AI Voice Agent

Picks up. Listens. Books.

Phone lineCallerSIP / RTPTelephonySpeech to textDeepgramLLMGemini, DeepSeekText to speechElevenLabsThe reply streams back to the caller over RTP as it is generatedBarge-in: caller speech cancels TTS
Illustration
Role
Software Engineering Intern, DemiraySoft
Year
2026
Platform
Business phone lines
Built with
  • Python
  • SIP/RTP
  • Deepgram
  • Gemini
  • DeepSeek
  • ElevenLabs
  • Next.js
  • TypeScript
  • Firebase

Small businesses miss calls while they work, and every missed call is a missed booking. The agent had to answer a real phone number, understand a caller speaking naturally, and write a confirmed appointment, with no human in the loop.

Treat the call as a stream, not a sequence of requests. Audio flows in over RTP, is transcribed while the caller is still speaking, and the reply is synthesized and streamed back as it is generated. Every stage can be cancelled the moment the caller starts talking again.

DemiraySoft internship, 2026

The call.

An AI agent that answers a business phone line and books the appointment by itself. Scroll to listen in.

Business line

Connected

  1. Agent: Hi, you’ve reached the salon. How can I help?
  2. Caller: I’d like a haircut tomorrow afternoon.
  3. check_availability(tomorrow, afternoon)
  4. Agent: Tomorrow I have three o’clock or half past five. Which one would you
  5. Caller: Three is perfect.
  6. book_appointment(tomorrow 15:00, haircut)
  7. Agent: Done. You’re booked for tomorrow at three. See you then.
  8. Appointment confirmed
    Tomorrow, 15:00 · Haircut
  1. Phone lineCaller
  2. SIP / RTPTelephony
  3. Speech to textDeepgram
  4. LLMGemini, DeepSeek
  5. Text to speechElevenLabs

A reconstruction of a typical call, drawn from the real pipeline.

How it’s built

  • Telephony layer

    I implemented the SIP signalling and RTP media handling that connect a real phone line to the pipeline, so the agent receives and sends raw call audio.

  • Streaming chain

    Deepgram transcribes in real time, Gemini or DeepSeek decides what to say and which booking action to take, ElevenLabs turns the answer back into speech.

  • Barge-in

    When the caller interrupts, playback stops mid-sentence and the new speech becomes the next turn. This one mechanism is what makes the conversation feel natural instead of robotic.

  • WhatsApp panel

    In the same internship I built a messaging panel on the Meta WhatsApp Cloud API: CSV-based bulk messaging, a live inbox and customer tracking.

A working agent that takes a business call from greeting to confirmed appointment on its own, with interruptions handled the way a person would handle them.