Skip to content
eiggerPublic

About

SIP Client Home Assistant Integration

Topics

Resources

Contributing

Security policy

Stars

18 stars

Watchers

1 watching

Forks

Repository files navigation

SIP Client for Home Assistant

A Home Assistant custom integration for SIP calls, IVR, intercoms, and Voice Assist.

English | 한국어

Release HACS Default Home Assistant minimum Tests Validate License Downloads

SIP

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

What it is for

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.

Features

  • media_player line: 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)

Requirements

  • Home Assistant: 2026.10.0 or later.
  • SIP PBX: A PBX on the same LAN or VPN, such as FreePBX with chan_pjsip.

Installation

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

  1. Click the badge above to open the repository in Marketplace.
  2. 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.
  3. Select Install. Restart Home Assistant if prompted, then continue to Configuration.

Configuration

On the same LAN as FreePBX:

  1. Create a chan_pjsip extension (g722 / ulaw / alaw, DTMF RFC 4733, Direct Media No).
  2. Settings → Devices & Services → Add Integration → SIP Client — host, port 5060, username, password.
  3. Registration status should read registered.
  4. Dial the extension; Call Audio (audio_path) should become bidirectional.

Field list, firewall notes, and the pjsip snippet: Setup.

Examples

action: sip.start_assist
target:
  entity_id: media_player.phone_line

Phone dials Home Assistant, Assist turns on a light, then sets brightness — storyboard

Keypad/IVR, intercom, and outgoing TTS

  • 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}} in sip_contacts.json to 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's message, example).

ESPHome external component

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.

Security

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.

Documentation (English)

Support

  • Issues: Report bugs or request features.
  • Discussions: Ask questions and share your experience.

Related Projects

License

Released under the MIT License.

About

SIP Client Home Assistant Integration

Topics

Resources

Contributing

Security policy

Stars

18 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages