Howto-localized:Notifica voice-mail tramite SMS (I)

From innovaphone-wiki

Jump to: navigation, search

Questo script gratuito permette di ampliare la Voice-mail dell’innovaphone PBX con la funzionalità di notifica tramite SMS.

Un nuovo messaggio vocale alla casella quindi comporterà un relativo SMS di avviso.

Inoltre il cliente potrà, anche da remoto e quindi per esempio direttamente dal suo cellulare, accendere e spegnere questa funzione e modificare il numero del cellulare per l’invio degli SMS.


Nota sulla sintassi: Espressioni indicate in virgolette vanno impostate senza virgolette negli oggetti di destinazione. “Test” quindi si scrive Test nell’oggetto, e “0” ovviamente 0.


Contents

Versione

Innovaphone PBX versione 9

Il cliente deve avere una innovaphone Voicemail correttamente licenziata e configurata, premesso ciò questa funzionalità non richiede ulteriore licenze.

L’eventuale invio dei messaggi anche via Email è indipendente e non centra con questa funzione.

Dettagli

Se un chiamante lascia un nuovo messaggio nella casella vocale dell’innovaphone PBX sarà inviato un SMS su un cellulare. Ogni nuovo messaggio crea un SMS. Il testo dell’SMS è impostabile (per esempio “Avete appena ricevuto un nuovo messaggio da: ”) e dopo il testo sarà indicato il numero del chiamante (se disponibile e non mascherato).

Esempio: “Nuovo Messaggio da 3472619287”

Il servizio può essere attivato e disattivato direttamente dal cliente, che potrà anche modificare il numero verso il quale parte l’SMS. Il cliente esegue queste operazioni semplicemente utilizzando un telefono (anche da esterno) seguendo indicazioni di un menu vocale. Non sono quindi necessarie istruzioni.

Dopo l’installazione, il servizio è spento, per attivarlo un utente deve prima impostare il numero del cellulare e poi attivare il servizio. Una volta indicato il numero del cellulare, l’utente può limitarsi ad accendere e spegnere il servizio, il sistema memorizza quindi il numero del cellulare associato a una casella.

Altre impostazioni, come per esempio le credenziali del provider, il corpo del testo, il prefisso internazionale del cellullare etc. possono essere definiti globalmente (quindi impostazioni valide per tutti gli utenti), oppure anche individualmente, e quindi differente per singolo utente, oppure impostare un modo misto. Questo permette di coprire tutti gli scenari:

Un cliente tipicamente piccolo che ha un singolo SMS account dal Provider, si definiscono i parametri velocemente centralmente.

Un Cliente esigente potrebbe avere account SMS singoli per ogni utente dal provider, volere testi di messaggi diversi etc.; i parametri dovranno essere depositati nelle cartelle individuali degli utenti.

Se un cliente ha entrambi i casi, e quindi una configurazione “mista” dove una parte utilizza i parametri generali mentre alcuni usano impostazioni individuali, è possibile impostare il tutto come desiderato.

Interfaccia Utente

Se il cliente chiama il numero del l’XML “SMSconfig.xml” sente il seguente messaggio (in parentesi trovate il nome dell’audio file che potrà essere ovviamente sostituito con qualsiasi altro, .xxx sta per i vari codec, quindi per esempio per .G711a etc.):

“innovaphone, avviso tramite SMS di un nuovo messaggio vocale” (it_Track101.xxx)

“Inserite il numero della casella vocale” (it_Track102.xxx)

“e confermate con cancelletto” (it_Track199.xxx)

Il cliente indica il numero della casella, se questa non esiste, segue il messaggio vocale “Casella invalida” (it_Track104.xxx) e svincolo della chiamata, altrimenti segue:

“Inserite il PIN” (it_Track103.xxx)

“e confermate con cancelletto” (it_Track199.xxx)

Se il cliente inserisce il PIN corretto della casella (notate che è il suo PIN della VM, quindi ovviamente come anche nelle VM il PIN default generico è 8765) si prosegue, altrimenti avviane il messaggio “Pin invalido” (it_Track105.xxx) e svicolo della chiamata.

Se l’utente non ha mai stato impostato alcun numero per l’invio di SMS segue:

“inserite il numero del cellulare senza prefisso internazionale e confermate con cancelletto” (it_Track105.xxx).

Se il cliente invece ha già precedentemente impostato un numero segue:

“a questa casella è associato il cellulare numero” (it_Track106.xxx)

e segue lo spelling del numero (per questo servizio saranno utilizzati i file audio già presenti nella cartella della VM).

Segue l’indicazione dello stato del servizio, e quindi:

“il servizio è attivo per questa casella” (it_Track108.xxx)

oppure

“il servizio è disattivato per questa casella” (it_Track109.xxx)

Dopo l’indicazione dello stato è riprodotto il menu principale:

“Per attivare digitate uno, per disattivare digitate zero, per modificare il numero del cellulare digitate nove” (it_Track110.xxx).

Il funzionamento di tutto è ovviamente come descritto nel file audio.

Come anche nelle VM in tutti i menu avviene la ripetizione automatica del messaggio se il cliente non esegua alcuna manovra.

L’XML di impostazione svincola in ogni caso dopo 5 minuti di inattività.

Con servizio attivato e settaggio corretto di tutti i parametri (vedi configurazione) il cliente riceverà un SMS in caso di nuovo messaggio, con testo predefinito e indicazione del numero del chiamante. In teoria è possibile inviare anche il numero da richiamare direttamente nel messaggio. L’idea è di farsi cosi collegare direttamente con la VM se si compie una chiamata vocale. Il limite sta nei Provider che in Italia in genere non permettono questo tipo di servizio e vietano l’indicazione di numero o non eseguono l’operazione. Limitano anche il nome a 11 caratteri, probabilmente per evitare uso incorretto di questo servizio. Indicate nulla oppure seguite le istruzioni che ricevete dal Provider.

Provider

Per inviare un SMS direttamente dal XML è necessario abbonarsi ad un Provider che gestisce SMS tramite URL. Tipicamente sono dei servizi prepagati, limitando così anche il rischio di uso incorretto (visto che l’URL viaggia in chiaro sulla rete).

L’XML in oggetto è stato provato e implementato con successo con il Provider raccomandato CODEMA (vedi link).

Il servizio SMS di questo Provider e le impostazioni sono già testati e non sono necessarie modifiche dello script e/o test.

Essendo di larga diffusione abbiamo inserito e codificato anche il Provider ARUBA, ma solo seguendo le indicazioni ricevute, e quindi senza testare effettivamente il funzionamento.

Inoltre potete impostare altri Provider modificando l’XML.

In generale i Provider indicano una stringa URL che contiene il link per l’invio di un messaggio alla piattaforma e tutti i parametri, quindi credenziali, testo, numeri etc., tutto in una singola riga. Componendo in un browser il link indicato con i parametri corretti avviene l’invio dell’SMS. Questo è il primo test da compiere, se questo non funziona, è inutile provare con l’XML.

Esempio formato di un link Codema:

http://apisms.codemaonline.com/api/sendsms/plain?user=Pippo&password=1234&sender=Innovaphone&SMSText=New%20Message!37&GSM=393472619287


Osservate anche quanto descritto nella sezione configurazione sul formato.

Installazione

Copiate tutti i file nella cartella della VM sulla Compact Flash, quindi nella relativa directory dove si trovano anche tutti gli altri script e messaggi per la vostra lingua (tipicamente tipo http://xx.yy.zz.vv/drive/cf0/VM/it).

I file da copiare trovate QUI: Media:SMS.zip

Configurazione

NB: Questa descrizione parte dal presupposto che siete pratici nel gestire prodotti innovaphone e la VM innovaphone e non spiega concetti base.

Per il potere accedere all’interfaccia utente create un nuovo oggetto VM nel PBX (è gratuito), gli assegnate un numero e indicate nel URL “….drive/CF0/VM/it/SMSconfig.xml”. A questo punto si potrà già chiamare il setup e impostare quanto sopra descritto. Ovviamente non funziona ancora realmente, perché mancano tutti i restanti parametri di configurazione.

Per permettere sia un funzionamento con parametri individuali che generali l’XML tenta sempre di leggere un parametro prima nella cartella dell’utente (in pratica nella sottocartelle “personal” del nome). Se non trova il file allora cerca nella cartella generale della VM, se non lo trova neanche li non avviene alcun invio di un SMS (nel trace avviene relativo messaggio di errore).

Copiando tutti i file nella cartella principale avete quindi già la struttura “generale”, quindi quella che vale per tutti, mentre se avete delle impostazioni singole dovete copiare file nelle singole sottocartelle.

La configurazione avviene modificando file di testo, utilizzando quindi un editor, aprendo il file, modificando il parametro (che è sempre solo in una singola riga) e salvando di nuovo il file. Conviene fare questo sul HD del vostro PC e poi copiare il file modificati sulla CF.

Segue la lista dei file di configurazione, la loro funzione, il contenuto standard e un commento.

Tutti i file iniziano con “SMS” e sono facilmente individuabili (NB: anche i due XML iniziano con “SMS”, però hanno l’estensione “.XML” e non “.TXT”).

“SMSlanguage.txt”, contenuto default “it_”, serve solo per installazioni future multi lingua (vedi sezione Localization), da non modificare.

“SMSProvider.txt”, contenuto default “CODEMA”, contiene il nome del Provider. Possibile altro Provider già codificato “ARUBA” (se osservate l’XML vedete per esempio che Aruba chiede prima del numero internazionale la sequenza %2b39 = +), modificando il file SMS.XML è possibile utilizzare anche il nome precodificato “MYPROVIDER”, inserendo il comando <exec url> appositamente modificato.

“SMSprefix.txt”, contenuto default “39”, contiene il prefisso nazionale (per esempio “39” per l’Italia) senza zeri.

“SMSuser.txt”, contenuto default vuoto, contiene i credenziali per l’accesso alla piattaforma del Provider, sarà quindi indicata dal Provider. Esempio: “innovaphonesrl”.

SMSpassword.txt, contenuto default vuoto, contiene il password che vi indicherà il Provider.

“SMScallback.txt”, contenuto default vuoto, tipicamente indica di nuovo il Provider il contenuto. In teoria contiene il numero che viene chiamato se si risponde al SMS in modalità chiamata, ma di solito non è supportato e deve contenere delle lettere (max11).

“SMStext.text”, contenuto default “Nuovo%20Messagio%20da%”, contiene il testo che appare nell’SMS prima del numero del chiamante. NB: Non sono ammessi spazi nel testo, i quali devono essere sostituiti con %20.

Esempio: Testo desiderato “Avete un nuovo messaggio da “ è da indicare nel file con “Avete%20un%20nuovo%20messaggio%20da%20”.

Solo a titolo informativo ecco i file che si compongono utilizzando l’interfaccia User (possibile anche crearli manualmente con un editor nella cartella dell’singolo utente).

“SMSactive.txt”, contenuto default vuoto, se il servizio è attivo contiene “ON”.

“SMSNumber.txt”, contenuto default vuoto, contiene il numero del cellulare al quale sarà inviato l’SMS.

Ultimo passo da eseguire è la modifica del VM script stesso. Copiate il file VM.xml sul vostro PC e apritelo lo con un editor. Verso la fine (in fondo) nella zona della riga 883 vedete il seguente codice:

...

<event type="call-end">
    <if cond="$vm">
       <store-get root="" name="email.xml" out-url="$suburl" />
       <call name="Subscript"/>
    </if>
</event>

...


Inserite due righe:

<store-get root="" name="SMS.xml" out-url="$suburl" />

<exec url="$suburl"/>


...

<event type="call-end">
    <if cond="$vm">
       <store-get root="" name="email.xml" out-url="$suburl" />
       <call name="Subscript"/>
       <store-get root="" name="SMS.xml" out-url="$suburl" />
       <exec url="$suburl"/>
    </if>
</event>

...

Salvare il file e copiatelo nella CF.

Fatto.

Localization

Per uso in alter lingue si procede come segue:

Copiate tutti i file nella relativa cartella (per esempio nella cartella “en” per quella inglese).

Modificate il contenuto del file SMSlanguage.txt (per esempio in “en_”).

Create tutti i relativi file audio “en_Trackxxx.zzz”.

Problemi

Se l’invio dell’SMS non va a buon fine, per esempio perché il credito è esaurito, non si hanno avvisi.


Articoli corrleati

http://wiki.innovaphone.com/index.php?title=Howto:Italy_-_CODEMA_-_SIP_Provider

http://wiki.innovaphone.com/index.php?title=Howto:Configure_the_innovaphone_Voicemail

Personal tools