SIP client card, as intercom

I created a SIP client card for Home Assistant. With this you can make calls to other HA clients and sip devices.

TECH7Fox/HA-SIP: A SIP client inside home assistant! (github.com)

image

It is still work in progress, so bare that in mind.

Enjoy!

26 Likes

Interesting, thanks for your work, and sharing with the community

1 Like

Nice project, especially for intercom

If I can solve the early video for FreePBX, I am going to use this… But seems FreePBX doesn’t support it, allthough settings are enabled for it…

1 Like

Im using FreePBX and it works fine for me. Could you show me your Asterisk logs when you are trying to connect?

2 Likes

atm , dont have freepbx running anymore
tried yeastar (also based on asterisk) => no early video
tried 3cx => not based on asterisk => success
tried freeswitch/fusionpbx => not based on asterisk => success

my intercom sends an 183 session with h264, so all looks good, all other sip servers do send early video, tried with linphone as client

only when i i use freepbx, i only see video AFTER i pickup the call, not before, so quite useless for door intercom systems…

tried the stuff too or a combination, no luck either

directmedia=yes
directrtpsetup=yes
prematuremedia=no
progressinband=no

what did you setup to make early video work? so i can see video before i pickup?
really interested

It did not make/test video, only audio. I do want to add video to display in the card itself. Thats my next goal.

yeah, but do you have early video when you use other SIP clients? like linphone? did you succeed with that with freepbx? i’m not talking about your new project

Oh no, never tried. I dont have any video sip devices. Just a old cisco ip phone (7960). I am going to try it, so i will let you know.

ok, good luck :slight_smile:

@TECHFox Well done for an amzing project. I think this is what Hassio has needed for a long time. So not only good for intercom, but also for SIP door bells.
Thank you.

@TECHFox Hi Jordy,
Can you please explain where we enter the Device ID. Sorry not very good at this stuff.
Thanks
Mark

Enter the deviceID in clients. In the example picture it is device1, device2 etc.

image

Let me know if it works! :slight_smile:

Yes very obvious, I just couldn’t see it. I have done as below. Thank you.

type: custom:sipjs-client-card
server: wss://192.168.1.14:8089/ws
clients:
  951c8ede-95019455:
    aor: sip:[email protected]
    username: 1006
    password: 1234
  device2:
    aor: sip:[email protected]
    username: Fire Tablet
    password: 1234

No problem. I will update the picture to make it more clear.

Let me know if you have any more questions.

Thank you Jordy. I am getting the following log. I assume I have setup something wrong?

logger-factory.ts:101 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.user-agent-client | Not connected.
print @ logger-factory.ts:101
genericLog @ logger-factory.ts:79
genericLog @ logger.ts:33
error @ logger.ts:20
onTransportError @ user-agent-client.ts:296
onTransportError @ user-agent-client.ts:368
onTransportError @ non-invite-client-transaction.ts:158
(anonymous) @ transaction.ts:130
Promise.catch (async)
send @ transaction.ts:116
NonInviteClientTransaction @ non-invite-client-transaction.ts:42
init @ user-agent-client.ts:372
UserAgentClient @ user-agent-client.ts:58
RegisterUserAgentClient @ register-user-agent-client.ts:12
register @ user-agent-core.ts:161
register @ registerer.ts:358
register @ simple-user.ts:341
set hass @ demo-1.ts:103
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
t.addEventListener.once @ hui-masonry-view.ts:44
i @ typography.js:181
(anonymous) @ hui-state-label-badge.ts:14
Promise.then (async)
(anonymous) @ hui-state-label-badge.ts:14
d @ hui-state-label-badge.ts:14
c @ hui-state-label-badge.ts:14
g @ hui-state-label-badge.ts:14
value @ hui-masonry-view.ts:44
(anonymous) @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hui-masonry-view.ts:44
value @ hui-root.ts:517
(anonymous) @ hui-root.ts:517
setTimeout (async)
(anonymous) @ 7d7b6b26.js:1
(anonymous) @ 5180cdb1.js:1
requestAnimationFrame (async)
window.requestAnimationFrame @ 5180cdb1.js:1
i @ 7d7b6b26.js:1
value @ hui-root.ts:517
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
A @ ha-panel-lovelace.ts:144
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ ha-panel-lovelace.ts:144
async function (async)
value @ ha-panel-lovelace.ts:144
value @ ha-panel-lovelace.ts:144
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
r @ ha-icon-button-arrow-next.ts:9
value @ hass-loading-screen.ts:11
value @ hass-loading-screen.ts:11
_currentLoadProm.l.then._currentLoadProm @ hass-loading-screen.ts:11
Promise.then (async)
value @ hass-loading-screen.ts:11
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hass-loading-screen.ts:11
r @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
n @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ styles.ts:367
(anonymous) @ styles.ts:367
s @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
c @ core.1a1332e4.js:1
d @ core.1a1332e4.js:1
subscribe @ core.1a1332e4.js:1
_ @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
logger-factory.ts:101 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.user-agent-client | User agent client request transport error. Generating internal 503 Service Unavailable.
print @ logger-factory.ts:101
genericLog @ logger-factory.ts:79
genericLog @ logger.ts:33
error @ logger.ts:20
onTransportError @ user-agent-client.ts:297
onTransportError @ user-agent-client.ts:368
onTransportError @ non-invite-client-transaction.ts:158
(anonymous) @ transaction.ts:130
Promise.catch (async)
send @ transaction.ts:116
NonInviteClientTransaction @ non-invite-client-transaction.ts:42
init @ user-agent-client.ts:372
UserAgentClient @ user-agent-client.ts:58
RegisterUserAgentClient @ register-user-agent-client.ts:12
register @ user-agent-core.ts:161
register @ registerer.ts:358
register @ simple-user.ts:341
set hass @ demo-1.ts:103
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
t.addEventListener.once @ hui-masonry-view.ts:44
i @ typography.js:181
(anonymous) @ hui-state-label-badge.ts:14
Promise.then (async)
(anonymous) @ hui-state-label-badge.ts:14
d @ hui-state-label-badge.ts:14
c @ hui-state-label-badge.ts:14
g @ hui-state-label-badge.ts:14
value @ hui-masonry-view.ts:44
(anonymous) @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hui-masonry-view.ts:44
value @ hui-root.ts:517
(anonymous) @ hui-root.ts:517
setTimeout (async)
(anonymous) @ 7d7b6b26.js:1
(anonymous) @ 5180cdb1.js:1
requestAnimationFrame (async)
window.requestAnimationFrame @ 5180cdb1.js:1
i @ 7d7b6b26.js:1
value @ hui-root.ts:517
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
A @ ha-panel-lovelace.ts:144
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ ha-panel-lovelace.ts:144
async function (async)
value @ ha-panel-lovelace.ts:144
value @ ha-panel-lovelace.ts:144
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
r @ ha-icon-button-arrow-next.ts:9
value @ hass-loading-screen.ts:11
value @ hass-loading-screen.ts:11
_currentLoadProm.l.then._currentLoadProm @ hass-loading-screen.ts:11
Promise.then (async)
value @ hass-loading-screen.ts:11
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hass-loading-screen.ts:11
r @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
n @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ styles.ts:367
(anonymous) @ styles.ts:367
s @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
c @ core.1a1332e4.js:1
d @ core.1a1332e4.js:1
subscribe @ core.1a1332e4.js:1
_ @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
logger-factory.ts:105 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.Registerer | Failed to register, status code 503
print @ logger-factory.ts:105
genericLog @ logger-factory.ts:79
genericLog @ logger.ts:33
warn @ logger.ts:23
onReject @ registerer.ts:500
receiveResponse @ user-agent-client.ts:341
onTransportError @ user-agent-client.ts:301
onTransportError @ user-agent-client.ts:368
onTransportError @ non-invite-client-transaction.ts:158
(anonymous) @ transaction.ts:130
Promise.catch (async)
send @ transaction.ts:116
NonInviteClientTransaction @ non-invite-client-transaction.ts:42
init @ user-agent-client.ts:372
UserAgentClient @ user-agent-client.ts:58
RegisterUserAgentClient @ register-user-agent-client.ts:12
register @ user-agent-core.ts:161
register @ registerer.ts:358
register @ simple-user.ts:341
set hass @ demo-1.ts:103
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
t.addEventListener.once @ hui-masonry-view.ts:44
i @ typography.js:181
(anonymous) @ hui-state-label-badge.ts:14
Promise.then (async)
(anonymous) @ hui-state-label-badge.ts:14
d @ hui-state-label-badge.ts:14
c @ hui-state-label-badge.ts:14
g @ hui-state-label-badge.ts:14
value @ hui-masonry-view.ts:44
(anonymous) @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hui-masonry-view.ts:44
value @ hui-root.ts:517
(anonymous) @ hui-root.ts:517
setTimeout (async)
(anonymous) @ 7d7b6b26.js:1
(anonymous) @ 5180cdb1.js:1
requestAnimationFrame (async)
window.requestAnimationFrame @ 5180cdb1.js:1
i @ 7d7b6b26.js:1
value @ hui-root.ts:517
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
A @ ha-panel-lovelace.ts:144
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ ha-panel-lovelace.ts:144
async function (async)
value @ ha-panel-lovelace.ts:144
value @ ha-panel-lovelace.ts:144
_$AE @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
r @ ha-icon-button-arrow-next.ts:9
value @ hass-loading-screen.ts:11
value @ hass-loading-screen.ts:11
_currentLoadProm.l.then._currentLoadProm @ hass-loading-screen.ts:11
Promise.then (async)
value @ hass-loading-screen.ts:11
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hass-loading-screen.ts:11
r @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
l @ styles.ts:367
n @ app-drawer-layout.js:189
p @ styles.ts:367
T @ styles.ts:367
_$AI @ styles.ts:367
T @ styles.ts:367
update @ styles.ts:367
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
set @ styles.ts:367
value @ styles.ts:367
(anonymous) @ styles.ts:367
s @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
c @ core.1a1332e4.js:1
d @ core.1a1332e4.js:1
subscribe @ core.1a1332e4.js:1
_ @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
Promise.then (async)
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
(anonymous) @ core.1a1332e4.js:1
logger-factory.ts:109 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.Registerer | Registration transitioned to state Unregistered
logger-factory.ts:109 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.Registerer | Waiting toggled to false
logger-factory.ts:101 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.user-agent-client | Not connected.
print @ logger-factory.ts:101
genericLog @ logger-factory.ts:79
genericLog @ logger.ts:33
error @ logger.ts:20
onTransportError @ user-agent-client.ts:296
onTransportError @ user-agent-client.ts:368
onTransportError @ non-invite-client-transaction.ts:158
(anonymous) @ transaction.ts:130
Promise.catch (async)
send @ transaction.ts:116
NonInviteClientTransaction @ non-invite-client-transaction.ts:42
init @ user-agent-client.ts:372
UserAgentClient @ user-agent-client.ts:58
RegisterUserAgentClient @ register-user-agent-client.ts:12
register @ user-agent-core.ts:161
register @ registerer.ts:358
register @ simple-user.ts:341
set hass @ demo-1.ts:103
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
t.addEventListener.once @ hui-masonry-view.ts:44
i @ typography.js:181
(anonymous) @ hui-state-label-badge.ts:14
Promise.then (async)
(anonymous) @ hui-state-label-badge.ts:14
d @ hui-state-label-badge.ts:14
c @ hui-state-label-badge.ts:14
g @ hui-state-label-badge.ts:14
value @ hui-masonry-view.ts:44
(anonymous) @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hui-masonry-view.ts:44
value @ hui-root.ts:517
(anonymous) @ ha-panel-lovelace.ts:144
(anonymous) @ typography.js:181
setTimeout (async)
(anonymous) @ typography.js:181
handleEvent @ styles.ts:367
t @ card-mod.js?hacstag=1909275243012:1
(anonymous) @ card-mod.js?hacstag=1909275243012:5
logger-factory.ts:101 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.user-agent-client | User agent client request transport error. Generating internal 503 Service Unavailable.
print @ logger-factory.ts:101
genericLog @ logger-factory.ts:79
genericLog @ logger.ts:33
error @ logger.ts:20
onTransportError @ user-agent-client.ts:297
onTransportError @ user-agent-client.ts:368
onTransportError @ non-invite-client-transaction.ts:158
(anonymous) @ transaction.ts:130
Promise.catch (async)
send @ transaction.ts:116
NonInviteClientTransaction @ non-invite-client-transaction.ts:42
init @ user-agent-client.ts:372
UserAgentClient @ user-agent-client.ts:58
RegisterUserAgentClient @ register-user-agent-client.ts:12
register @ user-agent-core.ts:161
register @ registerer.ts:358
register @ simple-user.ts:341
set hass @ demo-1.ts:103
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
t.addEventListener.once @ hui-masonry-view.ts:44
i @ typography.js:181
(anonymous) @ hui-state-label-badge.ts:14
Promise.then (async)
(anonymous) @ hui-state-label-badge.ts:14
d @ hui-state-label-badge.ts:14
c @ hui-state-label-badge.ts:14
g @ hui-state-label-badge.ts:14
value @ hui-masonry-view.ts:44
(anonymous) @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
value @ hui-masonry-view.ts:44
performUpdate @ styles.ts:367
scheduleUpdate @ styles.ts:367
_$EC @ styles.ts:367
async function (async)
_$EC @ styles.ts:367
requestUpdate @ styles.ts:367
o @ styles.ts:367
y @ styles.ts:367
r @ hui-masonry-view.ts:44
value @ hui-root.ts:517
(anonymous) @ ha-panel-lovelace.ts:144
(anonymous) @ typography.js:181
setTimeout (async)
(anonymous) @ typography.js:181
handleEvent @ styles.ts:367
t @ card-mod.js?hacstag=1909275243012:1
(anonymous) @ card-mod.js?hacstag=1909275243012:5
logger-factory.ts:105 Thu Oct 14 2021 10:52:22 GMT+1100 (Australian Eastern Daylight Time) | sip.Registerer | Failed to register, status cod

Looks like it cant connect to your pbx server. Are you using FreePBX? Make sure you have TLS working and you are using chan_sip with DTLS enabled in the extension. You can also check the logs in FreePBX at Reports > Asterisk Logfiles. I will make a detailed guide on how to setup FreePBX tomorrow, since it can be quite complicated.

To make it a lot simpler i am planning to create a all-in-one add-on so the pbx server is hosted and configured by Home Assistant. Should make the whole process faster and easier!

1 Like

you are fantastic, thank you Jordy.
I am using FreePBX on raspberry PI.
I have turned on chan_sip with DTLS for the extensions. I am now getting the following message on FreePPBX.
`
[2021-10-14 15:54:19] ERROR[8091] iostream.c: Problem setting up ssl connection: error:00000001:lib(0):func(0):reason(1), Internal SSL error
3 [2021-10-14 15:54:19] ERROR[8091] tcptls.c: Unable to set up ssl connection with peer ‘192.168.1.30:61061’
4 [2021-10-14 15:54:19] ERROR[8091] iostream.c: SSL_shutdown() failed: error:00000001:lib(0):func(0):reason(1), Internal SSL error
5 [2021-10-14 15:54:19] ERROR[8092] iostream.c: Problem setting up ssl connection: error:00000001:lib(0):func(0):reason(1), Internal SSL error
6 [2021-10-14 15:54:19] ERROR[8092] tcptls.c: Unable to set up ssl connection with peer ‘192.168.1.30:54115’
7 [2021-10-14 15:54:19] ERROR[8092] iostream.c: SSL_shutdown() failed: error:00000001:lib(0):func(0):reason(1), Internal SSL error

`

I made a basic setup guide. Let me know if it helps.

Setup FreePBX · TECH7Fox/HA-SIP Wiki (github.com)

Thank you. Very detailed instructions. I just tried them and it broke my SIP doorbell. So I will have to go through it a little more slowely.
Thank you Mark