Every caller hears it: "Press 1 for Sales. Press 2 for Support. Press 3 for Billing."
And every caller hates it.
Numeric IVR menus were invented because computers could not understand speech. That limitation is gone. Your AI can now listen to what callers actually say and route them instantly — no dial-pad gymnastics required.
This post shows you how to build natural language call routing with a real phone number, in about 50 lines of Python.
The Problem with Traditional IVR
Classic IVR works like this:
Play a menu
Wait for a DTMF keypress
Branch on the digit
Simple code, terrible experience:
Callers forget which option they want by option 7
"Press 0 to hear these options again" is a UX failure
Callers say "representative" into the void and nothing happens
Any menu change requires re-recording audio
The fix is obvious: let the caller say what they want .
The Architecture
Caller dials your number | v VoIPBin answers STT converts speech to text | v Your webhook receives the transcript | v LLM…