Ricevere chiamate da HomeAssistant: DSS VoIP Notifier

HassioHelp

Ricevere chiamate da HomeAssistant: DSS VoIP Notifier

Ricevere chiamate da HomeAssistant:
DSS VoIP Notifier

Hai mai pensato che sarebbe stato utile ricevere una telefonata da HomeAssistant e che una voce automatica ti notifichi un evento importante appena verificatosi?
Bene finalmente c’è anche questa possibilità! Ho creato un add-on per Hassio che permette di ricevere una chiamata VoIP su un qualsiasi telefono (anche non smart) o ad un altro Client SIP: DSS VoIP Notifier

Probabilmente saprai che VoIP è l’acronimo di “Voice over IP“, ovvero “Voce attraverso Protocollo Internet” ed è una tecnologia che permette di effettuare una conversazione telefonica tramite la propria connessione internet invece che utilizzare le vecchie linee telefoniche PSTN. Il VoIP utilizza lo standard SIP, l’acronimo di “Session Initiation Protocol“, che ne gestisce la comunicazione necessaria per effettuare una chiamata.

Dicevamo che una delle possibili soluzioni per effettuare una chiamata telefonica dal Raspberry è, appunto, utilizzare il VoIP. Per poter effettuare una chiamata da Hassio ad un numero di telefono avrai bisogno di un account VoIP presso uno dei tanti fornitori che ormai offrono linee gratuitamente e con costi al minuto davvero irrisori.

Ce ne sono per ogni esigenza, ne ho provati tanti e ne utilizzo diversi tutt’ora ma, per semplicità di configurazione e per i costi posso sicuramente consigliare CloudItalia Orchestra (Ex Eutelia): si tratta di un’azienda italiana presente nel settore da molti anni che offre, tra le altre cose, la possibilità di farsi assegnare un numero VoIP del proprio distretto geografico in maniera del tutto gratuita. Per poter effettuare del traffico voce sarà necessario acquistare del credito facendo una ricarica anche di soli 5,00 €.

Creare un account VoIP con CloudItalia Orchestra

Per creare un’account sarà necessario visitare la pagina https://orchestra.clouditalia.com/index.php/registrati/ e compilare il modulo di iscrizione:

Nel campo “codice affiliazione” assicurati di inserire il seguente codice: EA8F71, non è indispensabile ma mi permetterà di guadagnare una piccola commissione sulle tue eventuali ricariche.

Per concludere l’iscrizione e procedere all’attivazione di un numero telefonico dovrai seguire questi passaggi:

  1. Compila la sezione Anagrafica con tutti i tuoi dati
  2. Completa la sezione Autenticazione con l’SMS e il documento di identità
  3. Attendi l’esito che ti comunicheranno via e-mail (ci vorranno alcuni giorni)

Una volta effettuati tutti i passaggi potrai procedere alla richiesta di un nuovo numero dalla sezione Voce della dashboard: il numero prescelto sarà attivo nel giro di qualche minuto.

Cliccando sul pulsante “Gestisci”, avrai la possibilità di consultare i parametri VoIP da inserire su Hassio per poter effettuare le telefonate o, nel caso sia necessario, cambiare i dati della linea.

Ora sei in possesso di tutti i parametri necessari e potrai procedere alla configurazione dell’add-on DSS VoIP Notifier.
Di seguito i dati che dovrai usare:

  • username: numero di telefono (presente in Area Clienti)
  • password: password numero VoIP (presente in Area Clienti)
  • sip server: voip.eutelia.it

Attenzione: le truffe con il VoIP sono molto frequenti!
Vi consiglio di cambiare subito la password con un’altra stringa alfanumerica da 20 caratteri e di chiedere la disattivazione del “Barring di default: il blocco permanente delle chiamate a sovrapprezzo inibisce ai clienti SOLO di effettuare telefonate verso una serie di destinazioni e prefissi chiamati per semplicità ‘Numeri Chiusi’. Per poter attivare il blocco delle chiamate internazionali dovrai chiedere prima la disattivazione del “Barring di default“.

Il blocco può essere disattivato in qualsiasi momento dal proprietario dell’account scrivendo una mail a assistenza.orchestra@clouditalia.com con oggetto “RIPRISTINO CLASSE DI DISABILITAZIONE D 600/09/Cons” o rivolgendosi ai canali di Customer Care Clouditalia.
Subito dopo è consigliabile attivare il blocco di tutte le chiamate internazionali: molto spesso il credito viene prosciugato mediante chiamate a telefoni cellulari stranieri da malintenzionati che riescono a scoprire le password del vostro numero di telefono VoIP.

Installazione dell’add-on di Hassio

L’installazione di questo add-on è piuttosto semplice e non diversa rispetto all’installazione di qualsiasi altro add-on di Hass.io.

  1. Aggiungi il mio repository degli add-on (https://github.com/sdesalve/hassio-addons) alla tua istanza Hass.io.
  2. Installa l’add-on “DSS VoIP Notifier“.
  3. Configura nelle opzioni dell’add-on  caller_id_uriusername, e passwordcon i dati della tua nuova linea.
  4. Avvia l’add-on “DSS VoIP Notifier“.
  5. Controlla i log di “DSS VoIP Notifier” per vedere se tutto è andato bene. DSS VoIP Notifier aspetterà di essere richiamato da uno script o da una automation.

Configurazione

Notaricordati di riavviare l’add-on ogni qual volta ne viene modificata la configurazione.

Configurazione dell’add-on DSS VoIP Notifier:

Nota : questo è solo un esempio, non copiarlo ed incollarlo! Crea il tuo!

Opzioni di base

Opzione sip_parameterscallerd_id(obbligatorio)

Imposta l’URL SIP dell’account (ovvero il numero di telefono). Ad esempio: “sip:0833185XXXXX@voip.eutelia.it”

Opzione sip_parametersusername

Imposta l’ID utente di autenticazione. Ad esempio: “0833185XXXXX”

Opzione sip_parameterspassword

Imposta la password di autenticazione.

Opzione sip_parametersrealm(opzionale)

Imposta il dominio di autenticazione. Ad esempio: è possibile specificare un asterisco (‘*’) per far rispondere il client SIP a qualsiasi dominio.

Opzioni avanzate

Le seguenti opzioni non sono necessarie per una configurazione standard. Usale se sai cosa stai facendo per personalizzare la tua installazione dell’add-on.

Opzione sip_parameterssip_server_uri(opzionale)

Imposta l’URL del server registrar. Se impostato, l’add-on risponderà automaticamente alla chiamata e riprodurrà un audio fittizio in modo da poter controllare lo stato del sistema. Ad esempio: “sip:voip.eutelia.it”

Opzione max_call_time(opzionale)

Imposta la durata massima della chiamata in secondi. Accetta valori tra 10 e 120 secondi. Il valore predefinito se questa opzione non è specificata è 50 secondi.
Il timer inizia a funzionare dopo l’avvio di una chiamata e non è correlato allo stato della chiamata.

Opzione pjsua_custom_options(opzionale)

Imposta le opzioni facoltative della riga di comando personalizzata del programma PjSua. Per riferimento vedi la pagina man di PjSua .

Opzione sox_custom_options(opzionale)

Imposta le opzioni facoltative della riga di comando personalizzata del programma SoX. Per riferimento vedi la pagina man di SoX .

Esempio di configurazione per CloudItalia Orchestra

Personalizza il seguente JSON con i dati del tuo numero di telefono VoIP CloudItalia Orchestra ed inseriscilo nell’add-on.

Una volta completata e salvata la configurazione dell’add-on premi “Start” per avviare l’add-on. Se tutto è andato per il verso giusto ti troverai, nella sezione LOG, davanti ad una schermata del genere:

Nota l’ultima riga: [Info] Listening for messages via stdin service call…”: è la conferma che l’add-on è configurato correttamente e pronto ad essere richiamato dai tuoi script o dalle tue automazioni.

Come usare l’add-on: effettuare una telefonata da Hassio

Per utilizzare l’add-on e ricevere quindi una chiamata sul tuo cellulare, o su qualunque altro numero telefonico, dovrai richiamare l’add-on da uno script o da una automation inserendo nel loro codice YAML questa chiamata ad un servizio:

Opzione call_sip_uri(obbligatorio)

Imposta l’URL SIP da chiamare. Può essere qualunque numero di telefono fisso/mobile, ad esempio: “sip:+393334455667@sipserver.com” o “sip:+390833185XXXX@sipserver.com”.

Per esempio, se stai utilizzando CloudItaliaOrchestra e vuoi chiamare il numero di cellulare +393334455667, dovrai inserire questo codice YAML:

Nota : Il server SIP di CloudItaliaOrchestra richiede l’autenticazione. Imposta quindi una username ed una password nella sezione sip_parameters della configurazione add-on.

Opzione message_tts(obbligatorio se l’opzione audio_file_url non è specificata)

Scrivi qui il tuo messaggio che verrà riprodotto tramite TTS all’interlocutore. Se questa opzione non viene specificata, il componente aggiuntivo verificherà la presenza dell’opzione audio_file_url. Se né message_ttsaudio_file_url sono specificati, verrà generato un errore.

Nota : se devi usare un carattere speciale nella tua stringa JSON, devi eseguirne l’escape. Utilizza l’elenco seguente come riferimento:

Opzione audio_file_url (obbligatorio se l’opzione message_tts non è specificata)

Scrivi qui un URL valido di un file MP3 che verrà riprodotto al partecipante. Se né message_ttsaudio_file_url vengono specificate, verrà generato un errore.

Nota : la lunghezza del file audio non deve superare 2 minuti e 20 secondi. Qualsiasi cosa più lunga verrebbe tagliata da PjSua. Con file audio di massimo 2 minuti, tuttavia, il suono viene riprodotto all’infinito.

Test del sistema

Dopo aver controllato la configurazione con il pulsante “Check Configuration” di Hass.io, puoi procedere al riavvio per ricaricare gli script. Esegui il tuo script e, se tutto è stato configurato a regola d’arte, il telefono chiamato squillerà e verrà riprodotto un file audio con il testo desiderato.

Il Log visualizzerà qualcosa del genere:

Configurazioni per altri operatori

Se utilizzi questo add-on con altri operatori invia i parametri che hai usato. Inseriremo in questa sezione le istruzioni per utilizzare anche gli altri fornitori VoIP.

Vohippo

Provider VoIP con sede in Bulgaria – sito web: www.vohippo.com

Pro: attivazione immediata e verifica identità tramite SMS; credito omaggio di € 0,50 per provare subito;
Contro: la numerazione geografica per ricevere chiamate è a pagamento.

Configurazione add-on:

Nota: il parametro call_sip_uri nella chiamata del servizio Hassio deve contenere @sip.vohippo.com. Un esempio di URL: “sip:+393334455667@sip.vohippo.com”

Esempio chiamata al servizio hassio.addon_stdin:

Messagenet

Provider VoIP con sede in Italia – sito web: www.messagenet.com/it

Configurazione add-on:

Nota: numerointerno è l’identificativo personale e unico (detto anche URI o Numero Interno) ricevuto via e-mail da Messagenet in seguito alla registrazione ai servizi VoIP. Da non confondersi con lo UserID che serve per accedere al sito Messagenet. Il parametro call_sip_uri nella chiamata del servizio Hassio deve contenere @sip.messagenet.it. Un esempio di URL: “sip:+393334455667@sip.messagenet.it”

Esempio chiamata al servizio hassio.addon_stdin:

FreeVoipDeal/ o qualunque altro provider VoIP Dellmont/Betamax

Nota: il parametro call_sip_uri nella chiamata del servizio Hassio deve contenere @sip.freevoipdeal.com. Un esempio di URL: “sip:+393334455667@sip.freevoipdeal.com”
L’opzione username_or_phonenumber può essere sia il tuo username FreeVoipDeal, che uno dei numeri che hai autorizzato

Attenzione: l’opzione “pjsua_custom_options” DEVE contenere “–no-tcp”. Senza quell’opzione riceverai un errore 408 e non potrai effettuare nessuna chiamata:

Per avere un elenco di tutti i provider Dellmont/Betamax e per effettuare un confronto tra le varie tariffe visita Voip-comparison.com

Supporto

Questo add-on è stato testato con successo su diverse installazioni di ResinOS, HassOS, Debian + Docker + Hass.io e Ubuntu + Docker + Hass.io. Per eventuali problemi, malfunzionamenti o se hai qualche domanda, ti aspettiamo nel nostro gruppo HassioHelp – Domotica Shelly Sonoff Xiaomi @hassiohelp nel forum.
Ti offriremo supporto sull’add-on DSS VoIP Notifier e cercheremo di rispondere a qualunque tuo quesito generale su Home Assistant.

 

 

7 risposte

  1. Avatar Stefano ha detto:

    Grazie mille per la guida.
    Sto cercando di installare l’addon ma il tasto carica e poi diventa rosso.
    Avete qualche soluzione?
    Grazie mille
    Stefano

    • SDeSalve SDeSalve ha detto:

      Ciao Stefano, potresti fornire qualche informazione sul tuo sistema? HassOS, ResinOS, Raspbian o altro?

      Errori della scheda SYSTEM di Hassio?

  2. Avatar Davide ha detto:

    Salve a tutti.. qualcuno conosce se il servizio Messagenet è completamente gratuito sia per la registrazione che la numerazione geografica?? Grazie

  3. Avatar francesco ha detto:

    per prima cosa complimenti per l articolo. purtoppo anche sul mio Hassio il plug si “spegne” quando lancio lo script .
    il logo dell addon mi riporta:
    cont-init.d] done. [services.d] starting services [services.d] done. [Info] Starting addon… [Info] Listening for messages via stdin service call… [Info] Received messages {“call_sip_uri”: “sip:+3934@@@@@@@voip.eutelia.it”, “message_tts”: “Prova messaggio”} 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *