You are correct that you would not be able to call directly from that phone, but if you call through a Voip server it may be able to translate codecs for you and make it work.
Thanks for answer are there a Voip server for HA? I have it on Haos in an Asus box.
I don’t think there is any specific officially supported HA Voip server, though there may be add-ons? I personally use Asterisk, and wrote a little bit about it here Voice over IP Integration - Call from Any SIP Softphone - #38 by jaminh
Thanks for support but I have to give up on this tho complicated!
Tried with FreePBX - my VOIP phone does not support Opus and I had to fiddle with codecs more due to the errors in the log:
[2025-02-17 21:02:26] WARNING[3362] channel.c: Unable to find a codec translation path: (ulaw) -> (opus)
[2025-02-17 21:02:26] WARNING[3362] channel.c: Unable to find a codec translation path: (opus) -> (ulaw)
Also I wonder if it’s okay to not be able to hear the responses from HA most of the time - I hear the initial beep and then hear it only sometimes (looks like it get worse over time). Configured with cloud subscription.
It often sounds like the responses are incomplete.
Hello! I have an on-prem 3cx server with a sip trunk to HA and I have the same exact issue as drthanwho, including the crash!
Here is the same in the log:
2025-02-26 19:30:58.401 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140213480658192] from 10.90.49.225 (Home Assistant/2025.1 (io.robbie.HomeAssistant; build:2025.1073; iOS 18.3.1)): Unexpected error inside websocket API
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/http.py", line 341, in async_handle
connection = await self._async_handle_auth_phase(auth, send_bytes_text)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/websocket_api/http.py", line 378, in _async_handle_auth_phase
await send_bytes_text(AUTH_REQUIRED_MESSAGE)
File "/usr/local/lib/python3.13/site-packages/aiohttp/_websocket/writer.py", line 125, in send_frame
raise ClientConnectionResetError("Cannot write to closing transport")
aiohttp.client_exceptions.ClientConnectionResetError: Cannot write to closing transport
This doesnt seem to work for me, it gives me ‘Service Unavailable’ in my Yealink phone. Not sure what to do next, any ideas?
Working with this addon. It looks good, would love to connect it to my FreePBX but I have an issue. My PBX is outside my firewall, and HA inside the firewall. Now I can tell my firewall to forward port 5060 to HA. This has the obvious effect of causing all my extensions to die. You can imagine how well that went over.
Question, is it possible somewhere in VOIP integration to listen to a different port?
Greg
“SIP Port” is a configuration option for the Voice over IP integration.
I have looked at this add-on. does not work for me, as my PBX is cloud hosted and outside my firewall. When I configure and enable this all communications between my PBX and phones crashs.
Ideally something like this, but operating like an extention/phone would be better. Configure PBX to talk to add-on and instantly available to all phones.
Greg
Hello @wixoff a firmware update for the base solved this problem for me. Turns out I was quite behind as it was not configured to update automatically.
Thanks for the reply! Unfortunately – as the base and handset are already up-to-date – my problem must lie elsewhere.
I honestly haven’t tried this in a long time so maybe I’ll give it another shot.
EDIT: HAHA how wrong I was. The Grandstream “System Info” page had a green box with “UP-TO-DATE” in it but that was not the case. I had to change the firmware server address in the base management settings, and THEN it was able to find new releases. I’m upgrading now and WILL try again with the VoIP integration!
Wanted to just chime in here that I’ve mostly successfully set up the voice of IP integration with a grandstream ht818v2 connected to freepbx.
I’m running proxmox on an old lenovo small form factor, and under proxmox am running home assistant, freepbx, lyrion music server.
I’ve tried to set up functionality to mute any music when I’m talking to assist, using a blueprint from HowlingCoder, but it only mutes when listening. I tried to add a delay, but that seems to mixed up the state of the VoIP integration.
What is nice is that each separate extension is identified as a different endpoint to the VoIP integration, so I’ll be able to assign extension to the room where the phone exists, and then instructions Assist will have the correct location to identify items in that room.
I’ll follow up on the HowlingCoder blueprint where the blueprints were announced.
Just signed up to add that I have successfully set this up using my Grandstream UCM6301, which is an Asterisk-in-a-box appliance that I use for my phones now I’ve ditched 3CX.
Step 1, in the UCM admin go to VoIP Trunks and add a SIP trunk; the type should be peer, hostname is the IP address of your HA box, eg 10.0.1.205:5060
I set User = Phone for the Tel URI (I almost always do this, so it might not be 100% necessary), and then on the Advanced tab, made sure only the Opus code was available.
Step 2, under Outbound Routes, create a new route that sends calls via this trunk. I set the outbound pattern matching to “_33” and privilege level to “internal”
Step 3, under Basic Call Features, Speed Dial, I created a two digit speed dial, 33, called Home Assistant, default destination External number 33.
This ensures any phone can dial 33 and get through to HA, so have a button labelled ‘Assist’ on my desk phone that I can press.
Finally, for my step 4 - not necessary for everyone - I used the analogue port on the UCM6301 to press into service a GPO Type 300 telephone; the UCM doesn’t support pulse dialling, so under Extension/Trunk, Extensions for the relevant port, click the Features tab, enable Hotline, type Immediate Hotline, and set the number to 33 (or whatever else you chose).
Now, I can just have my butler pick up the phone and say “Turn on the hall lights”
I have this working with an external DID number from voip.ms. The call flow is phone -> Voip.ms -> Asterisk (in my house) -> Home Assistant VoIP integration. Right now I'm using Anthropic and getting good latency, but have tried local LLM and others too. It was tricky getting the configuration correct so the external call connected to the voice assistant. Happy to provide the details if anyone interested.




