[END OF LIFE - ABANDONED - DISMISSED] DSS VoIP Notifier

Aw bummer. I finally did get everything working, and it works a charm, none of the issues I ran into were in the docs and I suppose I was somewhat crippled by not having extensive VOIP protocol knowledge. It turned out my final stumbling block was in voice assist - not DSS VOIP. I will say my wife probably won’t be as thrilled as I am to have the intercoms get notifications - we’ll see :slight_smile:

In any case I certainly understand how difficult it can be to support a software product that integrates with a wide variety of products (I’ve done tech support and software development for 42 years now). This is especially the case when the software is not for profit. Thank you very much for the time spent developing this and your patience with those of us with less knowledge (and the vicissitudes of the various OTHER software that it needs to integrate with). I definitely learned a lot getting this up and running.

While I’m tempted to offer my development help - I also am trying to retire and don’t need another support job right now :smile: If anyone has 3cx pbx, local only, and HASS on a synology and wishes some help with configuring I could give them some pointers. Just ping me.

1 Like

This configuration works with telefonica movistar spain but not on the first call… That is to say, you have to call twice or more and it works… it’s a strange thing…

/homeassistant/configuration.yaml

########## Conversion de texto a audio para DSS VoIP Notifier
tts:
  - platform: google_translate
    service_name: google_translate_say
    language: 'es'

in the addon DSS VoIP Notifier configuration

sip_parameters:
  caller_id_uri: sip:[email protected]
  realm: "*"
  username: "987xxxxxx"
  password: "987xxxxxx"
pjsua_custom_options: "--outbound=sip:10.31.255.134:5070;lr --no-tcp --registrar=sip:telefonica.net"

for test the calls, Tools for developers → actions:

action: hassio.addon_stdin
data:
  addon: ebac278a_dss_voip
  input: {"call_sip_uri":"sip:[email protected]","message_tts":"Esto es una prueba"}

could it be arranged to work on the first call?

I’ve managed to get it more or less working, it’s a bit messy code, but it works every time in the tests I’m doing. It consists of launching a first call but indicating that its duration is of a second so it is cut fast. The first call is made to a dummy number that does not exist and the real call is made to our own number. I have also added a timer of 70 seconds so that if something goes after this script there is enough time to finish the real call that lasts a maximum of 50 seconds.

This is my Script:

alias: MS voip
sequence:
  - action: hassio.addon_stdin
    data:
      addon: 89275b70_dss_voip
    data_template:
      input:
        call_sip_uri: sip:[email protected]
        message_tts: Conexión...
        call_duration: 1
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - action: hassio.addon_stdin
    data:
      addon: 89275b70_dss_voip
    data_template:
      input:
        call_sip_uri: sip:[email protected]
        message_tts: Alarma en casa
        call_duration: 50
  - delay:
      hours: 0
      minutes: 1
      seconds: 10
      milliseconds: 0

I’ve been testing this for days and it works perfectly! :slight_smile:

Now that I have movistar up and running I wanted to try my other VOIP provider, which is netelip. I have tried this configuration:

sip_parameters:
  caller_id_uri: sip:[email protected]:9060
  realm: "*"
  username: "xxxxxxxxxxxxxx"
  password: "yyyyyyyyyyy"
pjsua_custom_options: '-–no-tcp --outbound=sip:sip-eu.netelip.com:9060;lr'

And with this option to perform dialing and calling:

action: hassio.addon_stdin
data:
  addon: 89275b70_dss_voip
  input: {"call_sip_uri":"sip:[email protected]:9060","message_tts":"Esto es una prueba"}

But it doesn’t work for me… Can anyone help me?

1 Like

Hi sdesalve, I configured dss_voip with freevoipdeal following the guide but it doesn’t work (error 487 Request Terminated). I then used dss_voiparm with the same configurations and it works correctly.

arm version is for raspberry. if it works you don’t need to use regular version.

Yes i will use this version, thanks.

Hello and thank you so much for this great addon :upside_down_face:

I am having trouble making the audio work, the calls are however working without issues.
I am using the fritbox 7590 VOIP, and followed your instruction as per the doc.
The only part I could not do was to add the base_url option in the config file is deprecated and it gaves me error adding this option.

tts:
  - platform: google_translate
    # This option is not longer availabl
    # base_url: Please provide a valid base url for Google TTS

Here my config of the addon:

sip_parameters:
  caller_id_uri: sip:[email protected]:5060
  realm: "*"
  username: user
  password: pass
pjsua_custom_options: "--ip-addr=192.168.1.20"

My Fritzbox setting are the same as yours:

The script:

data_template:
  addon: 89275b70_dss_voip
  input:
    call_sip_uri: sip:[email protected]:5060
    message_tts: i love ha
action: hassio.addon_stdin

And the complete log

-----------------------------------------------------------
 Add-on: DSS VoIP Notifier
 VoIP Notifier for Home Assistant
-----------------------------------------------------------
 Add-on version: 4.0.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 14.0  (amd64 / generic-x86-64)
 Home Assistant Core: 2024.12.4
 Home Assistant Supervisor: 2024.12.0
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing... 
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[Info] Starting addon...
PJSUA_CUSTOM_OPTIONS = '--ip-addr=192.168.1.20'
[Info] Listening for messages via stdin service call...
[Info] Received messages {"call_sip_uri":"sip:[email protected]:5060","message_tts":"i love ha"}
Converting audio file 'http://192.168.1.20:8123/api/tts_proxy/M7EA158VoGA3rAVP4PDtsg.mp3'...
Audio succesfully converted...
Starting SIP Client and calling 'sip:[email protected]:5060'...
This call will be terminated after '50' seconds.
01:12:05.183         os_core_unix.c !pjlib 2.11.1 for POSIX initialized
01:12:05.183         sip_endpoint.c  .Creating endpoint instance...
01:12:05.183                  pjlib  .select() I/O Queue created (0x7f7af0ff2100)
01:12:05.183         sip_endpoint.c  .Module "mod-msg-print" registered
01:12:05.183        sip_transport.c  .Transport manager created.
01:12:05.183           pjsua_core.c  .PJSUA state changed: NULL --> CREATED
01:12:05.197           pjsua_core.c  .pjsua version 2.11.1 for Linux-6.6.63/x86_64 initialized
01:12:05.203            pjsua_app.c  .Turning sound device -99 -99 ON
01:12:05.203                 main.c  Ready: Success
01:12:05.208            pjsua_app.c  .......Call 0 state changed to CALLING
>>>>
Account list:
  [ 0] <sip:192.168.1.20:5060>: does not register
       Online status: Online
  [ 1] <sip:192.168.1.20:5060;transport=TCP>: does not register
       Online status: Online
 *[ 2] sip:[email protected]:5060: does not register
       Online status: Online
Buddy list:
 [ 1] <?>  sip:[email protected]:5060
+=============================================================================+
|       Call Commands:         |   Buddy, IM & Presence:  |     Account:      |
|                              |                          |                   |
|  m  Make new call            | +b  Add new buddy       .| +a  Add new accnt |
|  M  Make multiple calls      | -b  Delete buddy         | -a  Delete accnt. |
|  a  Answer call              |  i  Send IM              | !a  Modify accnt. |
|  h  Hangup call  (ha=all)    |  s  Subscribe presence   | rr  (Re-)register |
|  H  Hold call                |  u  Unsubscribe presence | ru  Unregister    |
|  v  re-inVite (release hold) |  t  ToGgle Online status |  >  Cycle next ac.|
|  U  send UPDATE              |  T  Set online status    |  <  Cycle prev ac.|
| ],[ Select next/prev call    +--------------------------+-------------------+
|  x  Xfer call                |      Media Commands:     |  Status & Config: |
|  X  Xfer with Replaces       |                          |                   |
|  #  Send RFC 2833 DTMF       | cl  List ports           |  d  Dump status   |
|  *  Send DTMF with INFO      | cc  Connect port         | dd  Dump detailed |
| dq  Dump curr. call quality  | cd  Disconnect port      | dc  Dump config   |
|                              |  V  Adjust audio Volume  |  f  Save config   |
|  S  Send arbitrary REQUEST   | Cp  Codec priorities     |                   |
+-----------------------------------------------------------------------------+
|  q  QUIT   L  ReLoad   sleep MS   echo [0|1|txt]     n: detect NAT type     |
+=============================================================================+
You have 1 active call
Current call id=0 to sip:[email protected]:5060 [CALLING]
>>> 01:12:05.227            pjsua_app.c  SIP TCP transport is connected to 192.168.178.1:5060
01:12:05.329            pjsua_app.c  .....Call 0 state changed to EARLY (183 Session Progress)
01:12:12.798            pjsua_app.c  .....Call 0 state changed to CONNECTING
01:12:12.798     pjsua_app_common.c  .......
  [CONNECTING] To: sip:[email protected];tag=699E36C278F86B33
    Call time: 00h:00m:00s, 1st res in 126 ms, conn in 0ms
    #0 audio G722 @16kHz, sendrecv, peer=-
       SRTP status: Not active Crypto-suite: 
       RX pt=9, last update:00h:00m:00.000s ago
          total 0pkt 0B (0B +IP hdr) @avg=0bps/0bps
          pkt loss=0 (0.0%), discrd=0 (0.0%), dup=0 (0.0%), reord=0 (0.0%)
                (msec)    min     avg     max     last    dev
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       TX pt=9, ptime=20, last update:never
          total 216pkt 34.5KB (43.2KB +IP hdr) @avg=37.0Kbps/46.2Kbps
          pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
                (msec)    min     avg     max     last    dev 
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       RTT msec      :   0.000   0.000   0.000   0.000   0.000
01:12:12.802            pjsua_app.c  .....Call 0 state changed to CONFIRMED
01:12:12.813     pjsua_app_common.c  .......
  [CONFIRMED] To: sip:[email protected];tag=699E36C278F86B33
    Call time: 00h:00m:00s, 1st res in 126 ms, conn in 7599ms
    #0 audio iLBC @8kHz, sendrecv, peer=-
       SRTP status: Not active Crypto-suite: 
       RX pt=99, last update:00h:00m:00.000s ago
          total 0pkt 0B (0B +IP hdr) @avg=0bps/0bps
          pkt loss=0 (0.0%), discrd=0 (0.0%), dup=0 (0.0%), reord=0 (0.0%)
                (msec)    min     avg     max     last    dev
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       TX pt=99, ptime=30, last update:never
          total 0pkt 0B (0B +IP hdr) @avg=0bps/0bps
          pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
                (msec)    min     avg     max     last    dev 
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       RTT msec      :   0.000   0.000   0.000   0.000   0.000
01:12:37.283            pjsua_app.c  SIP TCP transport is disconnected from 192.168.178.1:5060: End of file (PJ_EEOF) [status=70016]
01:12:55.174     pjsua_app_common.c  ...
  [CONFIRMED] To: sip:[email protected];tag=699E36C278F86B33
    Call time: 00h:00m:42s, 1st res in 126 ms, conn in 7599ms
    #0 audio iLBC @8kHz, sendrecv, peer=-
       SRTP status: Not active Crypto-suite: 
       RX pt=99, last update:00h:00m:00.000s ago
          total 0pkt 0B (0B +IP hdr) @avg=0bps/0bps
          pkt loss=0 (0.0%), discrd=0 (0.0%), dup=0 (0.0%), reord=0 (0.0%)
                (msec)    min     avg     max     last    dev
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       TX pt=99, ptime=30, last update:never
          total 745pkt 37.2KB (67.0KB +IP hdr) @avg=7.0Kbps/12.6Kbps
          pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
                (msec)    min     avg     max     last    dev 
          loss period:   0.000   0.000   0.000   0.000   0.000
          jitter     :   0.000   0.000   0.000   0.000   0.000
       RTT msec      :   0.000   0.000   0.000   0.000   0.000
01:12:55.175            pjsua_app.c  .Call 0 is DISCONNECTED [reason=200 (OK)]
>>> 01:12:56.174            pjsua_app.c  ..Turning sound device -99 -99 OFF
01:12:56.752                timer.c  .Dumping timer heap:
01:12:56.752                timer.c  .  Cur size: 0 entries, max: 3070
[Info] Call ended...
[Info] Listening for messages via stdin service call...

Thanks

you couldn’t hear anything when you pick-up the call?

this IP is your hassio IP? 192.168.1.20

sip_parameters:
  caller_id_uri: sip:[email protected]:5060
  realm: "*"
  username: user
  password: pass
pjsua_custom_options: "--ip-addr=192.168.1.20 --no-tcp"

try to add --no-tcp option like I’ve done above

PS remove your number, if it is your real phone number from your post

Yes exactly I canoot hear anything.

Yes this the IP address of my Hass Server on my local server.

I tried adding the --no-tcp option but it does not changes anything. Do I miss something ?

PS:
1I have a router in between my fritzbox and my hass server. Do I need to open a port ? I already tried the 5060 without success.

2 I am using my own DNS (https://myhaserver.link) for public access, and not Nebu Casa Cloud.

3 Not my real phone number :upside_down_face:

yes you’ll need to map correct routes.
if you can, you can set hassio as DMZ in your router and expose all their port to fritz

otherwise you need to open manually all needed ports.

Does not seems to help :frowning:

Plus I really do not feel confortable opening all my port of my HA server to the internet :crazy_face:

you don’t open all your ports to internet… they will be opened to your Fritz… your Fritz will lock all ports except all opened in its configuration…

you can try to use a stun server…

In my setup yes, my firewall is exposed to the internet. I just use the fritzbox to connect to the ISP.

. Anyway, when I forward the route to the fritzbox nothing changed. I do not think it is a network issue…

NETELIP → I have tried this configuration:

sip_parameters:
  caller_id_uri: sip:[email protected]:9060
  realm: "*"
  username: "xxxxxxxxxxxxxx"
  password: "yyyyyyyyyyy"
pjsua_custom_options: '-–no-tcp --outbound=sip:sip-eu.netelip.com:9060;lr'

And with this option to perform dialing and calling:

action: hassio.addon_stdin
data:
  addon: 89275b70_dss_voip
  input: {"call_sip_uri":"sip:[email protected]:9060","message_tts":"Esto es una prueba"}

But it doesn’t work for me… Can anyone help me?

it’s a route issue… use STUN server like you are behind a NAT

logs? otherwise I can’t figure what can be your issue

here my logs with netelip

[Info] Received messages {"call_sip_uri":"sip:[email protected]:9060","message_tts":"Esto es una prueba"}
Converting audio file 'https://xxxxxxxxxx.xxxxxxx.xxxxx:8223/api/tts_proxy/xxxxxxxxxxxxxxxxxxxxxxxxxx.mp3'...
Audio succesfully converted...
Starting SIP Client and calling 'sip:[email protected]:9060'...
This call will be terminated after '50' seconds.
22:34:13.018         os_core_unix.c !pjlib 2.11.1 for POSIX initialized
22:34:13.018         sip_endpoint.c  .Creating endpoint instance...
22:34:13.019                  pjlib  .select() I/O Queue created (0x7fa312249100)
22:34:13.019         sip_endpoint.c  .Module "mod-msg-print" registered
22:34:13.019        sip_transport.c  .Transport manager created.
22:34:13.019           pjsua_core.c  .PJSUA state changed: NULL --> CREATED
22:34:13.019     pjsua_app_config.c  Argument "xxxxxxxxxxxxxxxxx" is not valid. Use --help to see help
22:34:13.019           pjsua_core.c  Shutting down, flags=0...
22:34:13.019           pjsua_core.c  PJSUA state changed: CREATED --> CLOSING
22:34:13.019           pjsua_call.c  .Hangup all calls..
22:34:13.019          pjsua_media.c  .Call 0: deinitializing media..
22:34:13.019          pjsua_media.c  .Call 1: deinitializing media..
22:34:13.019          pjsua_media.c  .Call 2: deinitializing media..
22:34:13.019          pjsua_media.c  .Call 3: deinitializing media..
22:34:13.019           pjsua_pres.c  .Shutting down presence..
22:34:14.026           pjsua_core.c  .Destroying...
22:34:14.026          pjsua_media.c  .Shutting down media..
22:34:14.026         sip_endpoint.c  .Destroying endpoint instance..
22:34:14.026         sip_endpoint.c  .Module "mod-msg-print" unregistered
22:34:14.026        sip_transport.c  .Destroying transport manager
22:34:14.026                timer.c  .Dumping timer heap:
22:34:14.026                timer.c  .  Cur size: 0 entries, max: 3070
22:34:14.026         sip_endpoint.c  .Endpoint 0x7fa31228e0e8 destroyed
22:34:14.026           pjsua_core.c  .PJSUA state changed: CLOSING --> NULL
22:34:14.026           pjsua_core.c  .PJSUA destroyed...
./run: line 337: echo: write error: Broken pipe
./run: line 337: echo: write error: Broken pipe
[Error] pjsua Exit code: 1
[Info] Call ended...
[Info] Listening for messages via stdin service call...```

Why did you add sip: before called phone number?

Here you can see that there is some wrong thing within passed argument

Hi sdesalve,
thanks for the great addon.

I tried to make it work here but I seem to be making some mistake somewhere.

Maybe you can have a look at my configuration and the error message and spot what I am doing wrong?

Here is the config:

caller_id_uri: sip:[email protected]:5060
realm: "*"
username: USERNAME AS USED IN FRITZ BOX
password: PASSWORD FOR USER IN FRITZBOX
sip_server_uri: sip:192.168.1.1  #this is the IP of the FritzBox 
pjsua_custom_options: "--ip-addr=192.168.1.181" # this is the IP of the PI

This is the call I am trying to make:

actions:
  - action: hassio.addon_stdin
    data:
      addon: 89275b70_dss_voip
      input:
        call_sip_uri: [email protected]:5060
        message_tts: TESTANRUF
mode: single

This is the error:
´´´
[Info] Starting addon…
[Info] Registering as SIP Client…

              SIP Client registered.

Call sip:[email protected]:5060/VoIP phone number
to check system status.
You’ll find logs in /share/dss_voip/dss_autoanswer.log

[Info] Listening for messages via stdin service call…
[Info] Received messages {“call_sip_uri”:“[email protected]:5060”,“message_tts”:“TESTANRUF”}
parse error: Expected string key before ‘:’ at line 1, column 4
[cont-finish.d] executing container finish scripts…
[cont-finish.d] 99-message.sh: executing…
[cont-finish.d] 99-message.sh: exited 0.
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
´´´
Probably something plain obvious I am just not seeing.

Thanks a lot in advance.

Merc