🔔 ESPHome Full-Duplex Audio Intercom - Because I Was Bored on Vacation

:telephone: Project Update: ESPHome Intercom Has Evolved Into A Complete VoIP Stack

Hi everyone! :waving_hand:

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.

VoIP Stack dashboard in action

:speaking_head: 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.

:bell: 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.

:speaker_high_volume: 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.

:pushpin: 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:

:backhand_index_pointing_right: https://community.home-assistant.io/t/voip-stack-for-home-assistant-and-esphome/

Main repository:

:backhand_index_pointing_right: GitHub - n-IA-hane/esphome-intercom: VoIP Stack for ESPHome and Home Assistant - local SIP phones, HA softphone/router, phonebook, softphone accounts and optional trunk calls · GitHub

Current stable release:

:backhand_index_pointing_right: Release 2026.7.1: Assist By Phone, Groups And A Stronger VoIP Stack · n-IA-hane/esphome-intercom · GitHub

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. :telephone::house: