Conflict between HA and digital VoIP phone

I’ve encountered a showstopper of a problem with Home Assistant. When it’s running on my LAN, my digital VoIP phone on the same LAN malfunctions and won’t ring. I can’t run both of them at the same time. This is unfortunate!

I verified that if I use systemd to stop [email protected], the problem goes away and my phone rings normally. Start Home Assistant, and the phone won’t ring any more.

I’m stumped on how to try to diagnose this problem. I can’t find any mention of it in these forums or elsewhere. Any ideas??

The VoIP phone is a Linksys SPA-941 4-line digital phone, connecting to a SPA-9000 digital PBX on the same LAN. Incoming calls come in to the SPA-9000, which in turn transfers them to the appropriate line of the SPA-941. The SPA-9000 is still receiving the incoming call, and sends it to local voicemail correctly when the SPA-941 doesn’t answer. But the SPA-941 doesn’t ring if Home Assistant is running on the LAN. Probably the SPA-9000 PBX tries to transfer the call, but doesn’t succeed because something in Home Assistant is jumping in and intercepting or interfering?

The HA box, the PBX and the VoIP phone all have fixed IP addresses on the LAN, and are connected to a Netgear router by ethernet. There are no IP address conflicts. The phone uses SIP ports 5070-5073, which shouldn’t conflict with anything in Home Assistant to my knowledge.

After some experimentation I found a temporary solution, and another strange effect:

I moved the digital phone behind a secondary router on the LAN. At first I kept the secondary router in Bridge mode, so the digital phone still appeared with the same IP address on the primary LAN. I was hoping that if I disabled multicast pass-through it would block whatever Home Assistant is doing to the digital phone. The effect was that the digital phone would now ring, but with a 10-second delay! (delay only when HA is active)

So I put the secondary router in full NAT mode, and changed the digital phone to get a DHCP address on the secondary LAN behind the secondary router. That means that it can still see the primary LAN, but nothing on the primary LAN can see the digital phone. That works - the phone rings immediately for an incoming call, as it should. Isolating it on a secondary LAN is preventing the interference from Home Assistant. But no further insight into what that interference might be.

No clue, just an idea. Do you have discovery enabled?

Discovery is enabled in my configuration file. A conflict with the digital phone in that discovery process would be a possibility, but how often does HA attempt to discover new devices? Some sources say only on startup, others imply a regular interval. It would have to no more than a second or two between discovery cycles in order to interfere with the VoIP call transfer process every time. And it can’t be a lingering effect from the last discovery cycle, because the digital phone recovers normal function immediately if HA is stopped on the server.

Checking the integrations page in HA might show what it thinks the VoIP box is.

Can you configure the SIP box to connect to the host via TCP rather than UDP (so there is a connection)
Alternatively can you set the RTP ports used the sip to ensure that is isn’t in a range that may be used by HA.

I have a GrandStream HT801 on my network for VoIP and its working fine out of the box. It connects to the voip service on port 6060 but is configured for UDP conectivity (not TCP)

Nothing recognizable as related to the digital phone shows up in Integrations or the entities list.

The digital phone does not have a UDP/TCP option. How would I know what range of ports HA might use that would conflict with the default RTP ports?

But here’s a clue: I’ve noticed that as soon as I start HA, the web admin interface of the digital phone becomes extremely slow responding. Optional pages that normally spring onto the screen instantly take 30 seconds or more to appear, or may fail to load entirely. It looks like HA is hammering the digital phone network interface.

You really should be using vlans and qos for VoIP. VoIP shouldn’t live on your “production” network.

you could try turning off discovery…
also perhaps if you can find the local IP address of the device maybe it is conflicting with homeassistant?

Sadly home network with consumer router = no vlan capability, so can’t make a custom vlan for the VoIP equipment. QOS available, but irrelevant in this context.

I will try turning off discovery in configuration.yaml.

Definitely no LAN IP address conflict.

All sounds very bizarre indeed. You don’t need another vlan or qos. I would make sure you don’t have an IP conflict and try a different router. Maybe also try to disable upnp on the router.