A Home Assistant custom integration for SIP calls, IVR, intercoms, and Voice Assist.
English | 한국어
hass-sip registers as a SIP extension on your PBX. It exposes the line as a media player, sends and receives DTMF, runs IVR menus, records calls, and can bridge a call to Home Assistant Voice Assist.
Transport is SIP over UDP with G.711 (PCMU/PCMA) and G.722. TLS, SRTP, and Opus are not implemented. Internet exposure is unsupported. Unverified PBXs are not labelled "supported".
| Get registered | Automate | Reference |
|---|---|---|
| Setup & Quick Start | Examples | Services, entities, events |
| PBX compatibility | Security | Troubleshooting |
| ESPHome Component | Intercom example | Documentation |
| Use case | What happens | Details |
|---|---|---|
| Voice control | Dial the extension, answer, talk to Assist — several commands per call | Use cases |
| Phone keypad | Any phone on the PBX presses digits; an IVR menu runs Home Assistant services | Use cases |
| Intercom | Door station rings, hass-sip auto-answers, optional DTMF opens the gate | Use cases |
| Home Assistant calls you | An automation dials your phone and speaks a TTS message | Use cases |
Door locks: allow-list + PIN.
media_playerline: TTS or audio URLs into the active call- Services:
sip.dial,sip.hangup,sip.answer,sip.send_dtmf,sip.start_recording,sip.stop_recording,sip.start_assist(multi-turn) - IVR trees with DTMF, PIN, and Home Assistant service actions
- G.722 (16 kHz) when the far end offers it, otherwise G.711; the codec order (or G.711-only) is selectable under Configure on the integration
- Sensors: registration, last caller, codec, audio path (
none/no_rx/no_tx/bidirectional)
- Home Assistant: 2026.10.0 or later.
- SIP PBX: A PBX on the same LAN or VPN, such as FreePBX with
chan_pjsip.
- Click the badge above to open the repository in Marketplace.
- If you need to add it yourself, go to Settings → Marketplace → Add from link and enter https://github.com/eigger/hass-sip. Connect GitHub if prompted.
- Select Install. Restart Home Assistant if prompted, then continue to Configuration.
On the same LAN as FreePBX:
- Create a chan_pjsip extension (
g722/ulaw/alaw, DTMF RFC 4733, Direct Media No). - Settings → Devices & Services → Add Integration → SIP Client — host, port
5060, username, password. - Registration status should read
registered. - Dial the extension; Call Audio (
audio_path) should becomebidirectional.
Field list, firewall notes, and the pjsip snippet: Setup.
action: sip.start_assist
target:
entity_id: media_player.phone_line- Keypad control: Any phone on the PBX can dial the extension and press digits to run Home Assistant services from an IVR menu (example).
- Intercom auto-answer: Set
{"102": {"name": "Front Doorbell", "auto_answer": true}}insip_contacts.jsonto answer a door station immediately (details). - Outgoing TTS: An automation dials a phone, speaks the message after the call is answered, then hangs up (
sip.dial'smessage, example).
Looking to build a DIY physical endpoint — such as an ESP32 intercom, doorbell, or paging speaker?
Check out the ESPHome external component: sip_client in eigger/espcomponents.
It registers an ESP32 as a SIP extension on your PBX with support for ESPHome standard microphone and speaker (I2S audio), G.711 / wideband G.722 codecs, DTMF, and full or half-duplex modes. Full configuration, hardware wiring, and YAML examples are documented in the component guide above.
Run hass-sip on the same LAN (or VPN) as the PBX. Do not port-forward UDP 5060 or RTP (local_rtp_port, default 7078). For Assist that can unlock a door, use allow-list + DTMF PIN + a dedicated pipeline — Security.
- Setup & Quick Start · PBX compatibility
- Services, entities, events
- Use cases
- Examples
- Security
- Troubleshooting
- Shared development rules · Adoption checklist
- Contributing and tests
- Issues: Report bugs or request features.
- Discussions: Ask questions and share your experience.
- espcomponents / sip_client: ESPHome external component for ESP32 SIP endpoints.
- hass-repo-standards: Shared development rules recorded in STANDARDS.md.
Released under the MIT License.

