Project Update: ESPHome Intercom Has Evolved Into A Complete VoIP Stack
Hi everyone! ![]()
A quick update for anyone following this older ESPHome Intercom thread.
The project has evolved considerably and is no longer based on the original custom intercom transport.
It is now a complete local SIP/SDP/RTP VoIP stack for Home Assistant and ESPHome.
Home Assistant can now act as:
- a real SIP softphone;
- a local SIP registrar;
- a SIP call router and B2BUA;
- an RTP bridge and audio resampler;
- a central phonebook and dial plan;
- an optional SIP trunk endpoint;
- a telephone gateway to Home Assistant Assist.
ESPHome devices are now real SIP endpoints and can:
- call Home Assistant;
- receive calls from Home Assistant;
- call other ESP devices;
- call registered clients such as Zoiper or Linphone;
- participate in ring groups and conference rooms;
- call external mobile or landline numbers through an optional trunk;
- coexist with Voice Assistant, Micro Wake Word, TTS, media playback, Sendspin and AEC/AFE audio processing.

Home Assistant Assist Can Now Be Called By Phone
A Home Assistant Assist pipeline can be exposed as a normal destination in the shared VoIP phonebook.
It can be called:
- from an ESPHome VoIP device;
- from Home Assistantās softphone;
- from a registered SIP client;
- by name or numeric extension;
- from an external telephone through an optional SIP trunk.
The assistant receives the caller identity, can greet the caller first and then continues with a normal multi-turn spoken conversation using the selected native Home
Assistant STT, conversation and TTS pipeline.
Ring Groups, Conferences And A Shared Dial Plan
The current stack includes:
- extensions for HA, ESP devices and registered SIP phones;
- shared phonebook-driven routing;
- simultaneous ring groups where the first endpoint to answer wins;
- Home Assistant-hosted SIP conference rooms;
- DND and Auto Answer;
- optional external SIP trunk routing;
- standard DTMF extension selection;
- experimental in-call DTMF events for Home Assistant automations.
The Lovelace card can operate as:
- the Home Assistant softphone;
- an ESP phone mirror and controller;
- a manual keypad;
- a shared phonebook view.
The maintained Waveshare P4 Touch profile also includes an on-device Contacts/Keyboard telephone interface.
The Full-Duplex Audio Work Continues
The original full-duplex ESPHome audio goal is still an important part of the project.
The reusable audio stack now provides:
- official ESP-IDF I²S ownership;
- codec-backed and codec-free audio paths;
- lightweight AEC and full Espressif AFE profiles;
- single-microphone and dual-microphone processing;
- speaker-reference echo cancellation;
- Voice Assistant barge-in;
- shared media, TTS and VoIP playback;
- real-time audio paths without arbitrary loop delays.
Follow The New VoIP Stack Thread
This older thread remains useful as project history, but future announcements, release information, new features and VoIP-specific discussion will be published in
the new thread:
https://community.home-assistant.io/t/voip-stack-for-home-assistant-and-esphome/
Main repository:
Current stable release:
If you were using one of the older Intercom Native versions, please refer to the current documentation and maintained YAML profiles before upgrading: the project has
migrated from its original custom call transport to standards-based SIP/SDP/RTP.
What started as an ESPHome full-duplex intercom is now a local telephone system built around Home Assistant. ![]()
![]()





