I’ve put together a custom ESPHome external component that brings full VoIP/SIP capabilities to ESP32 devices: sip_client.
Instead of just a simple media player, this component acts as a native SIP client. It allows your ESPHome devices to register with any standard VoIP/PBX server (such as Asterisk, FreePBX, Fritz!Box, or local PBX setups) to make and receive actual voice calls just like a hardware phone or intercom.
Key Features
Full SIP Phone Capabilities: Supports active SIP registration, outbound calling, and inbound call reception.
Native ESPHome Integration: No complex coding or custom firmware setups—fully configurable entirely via YAML.
Hardware Flexible: Can be easily combined with buttons, keypads, microphones, and speakers to build standalone hardware.
Quick Start (YAML Configuration)
You can test and include this component in your configuration using the external_components block:
The voice PE example can be found in the link right above.
I've added a mono configuration option for the ES8311, but I haven't been able to verify it yet. You can find the setup instructions in the GitHub link.
This config is wrong for codecs like: ES8311
You cannot set diferent pins for input and output. Duplex here mean: one channel is a mic, second is speaker, so both mono.