DEV Community

Cover image for IVR System Using ESP32-S3
David Thomas
David Thomas

Posted on

IVR System Using ESP32-S3

Internet-based automation is everywhere now.

Turn ON lights with an app. Monitor device from the cloud. Control appliances through Wi-Fi. Sounds great until the internet suddenly disappears.

Built a ESP32 Interactive voice response system using GeoLinker board and SIM868 GSM module that lets users control devices just by pressing keypad buttons during a call.

  • No Wi-Fi.
  • No mobile application.
  • No internet dependency.
  • Just pure GSM communication.

The Idea Behind the Project

Interactive Voice Response System Block Diagram

The concept is actually very simple.

When someone calls the system, it automatically answers the call and plays voice instructions. The user can then press keypad buttons like:

  • 1 to turn ON a device
  • 2 to turn it OFF
  • (#) to end the call

The system detects these keypad tones using DTMF and performs the assigned action instantly.

It honestly feels like calling a customer care IVR system, except this one control actual hardware.


How Does an IVR System Work?

Hardware Setup of an Interactive Voice Response System Using ESP32

Most IoT projects students build today completely depend on internet connectivity.

But GSM still has one huge advantage.

It works almost everywhere.

Even in locations where Wi-Fi signals are weak or unavailable, normal cellular networks are usually active. That makes GSM-based systems surprisingly practical for real-world automation.

This project proved that you can still build smart systems without relying entirely on cloud platforms.


Meet the GeoLinker Board

The main controller used here is the GeoLinker GL868 board.

And honestly, it packs a lot into one small board:

  • ESP32-S3
  • SIM868 GSM module
  • GPS support
  • Wi-Fi + BLE
  • battery charging
  • USB-C programming

Having everything integrated made the setup much cleaner compared to using separate GSM and ESP32 modules.


Hardware Setup for the ESP32 Interactive Voice Response System

This project doesn’t just detect calls.

It actually talks back.

The ESP32 stores audio files in LittleFS memory and plays them during the call using sigma-delta modulation. Since raw digital signals cannot directly go into the SIM868 microphone input, an audio filter circuit is used to smooth the signal into proper analog audio.

That part honestly felt more like building a mini telecom system than a regular embedded project.

And hearing the welcome message play through a phone call for the first time was extremely satisfying.


How the Workflow Looks

The entire process feels smooth once the system starts running.

  1. User makes a phone call
  2. SIM868 detects the incoming call
  3. ESP32 answers automatically
  4. Welcome audio plays
  5. User presses keypad buttons
  6. DTMF tones get detected
  7. GPIO outputs switch ON/OFF
  8. Confirmation audio plays back

Everything happens in real time without internet access.

That’s the coolest part.


Problems I Ran Into

Of course, the project wasn’t plug-and-play.

GSM Module Stability

SIM868 modules draw high current during network communication.

Initially, the board kept restarting randomly during calls because the power supply wasn’t stable enough. Using a stronger supply fixed the issue immediately.


Distorted Audio Output

The first audio output sounded terrible.

Turns out the low-pass filter section was extremely important. Without proper filtering, the sigma-delta output carried too much switching noise into the SIM868 microphone input.

After tuning the filter components, the voice playback became much cleaner.


UART Communication Errors

At one point, AT commands stopped responding properly.

Classic RX-TX confusion.

Swapping the UART lines solved it instantly.

Engineering debugging in one sentence.


What I Learned from This Build

This project taught way more than just device control.

I got hands-on experience with:

  • GSM communication
  • DTMF detection
  • UART handling
  • embedded audio playback
  • state machines
  • signal filtering
  • real-time control systems

And unlike many beginner IoT projects, this one actually felt like a practical product.


Real-World Applications

This type of system can be used for:

  • home automation
  • agricultural motor control
  • industrial switching
  • remote monitoring
  • security systems
  • offline automation setups

Especially in rural areas where internet reliability is poor, GSM-based systems still make a lot of sense.


You’re combining hardware control, telecom concepts, embedded programming, and audio processing into one working system. And the best part is seeing appliances respond to phone keypad inputs in real time.

It genuinely feels like building your own mini telecom automation platform from scratch.

ESP32 Projects, IoT Projects

Top comments (0)