Ricevere SMS e USSD sul chan_dongle 3G e inoltrali tramite email
La prima parte, e cioe' la configurazione per l'inoltro tramite email degli SMS che arrivano sul dongle GSM collegato al nostro centralino tramite chan_dongle, l'ho gia' postata tempo fa, ma ora vi dico come inoltrare per email anche gli USSD (http://www.fastweb.it/smartphone-e-g...a-cosa-servono).
Per chiarezza riporto nuovamente anche la parte di configurazione delle estensioni relative agli SMS.
editare il file "/etc/asterisk/extensions_custom.conf"
sudo nano /etc/asterisk/extensions_custom.conf
inserire alla fine del file le seguenti righe:
[from-pstn]
;
; quando arriva un SMS sul dongle, asterisk lo legge (numero mittente e testo) e lo inoltra tramite mail
; all'indirizzo destinatario@provider.com
; Sendmail o Postfix devono essere installati e configurati sul centralino
;
exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,2,System(echo 'From: ${CALLERID(num)} <mittente@provider.com>\nTo: <destinatario@provider.com>\nSubject:Ricevuto SMS\nRicevuto da: ${CALLERID(num)}\n${BASE64_DECODE(${SMS_BASE64})}' >> /var/log/asterisk/sms.txt)
exten => sms,3,System(sendmail -t -f mittente@provider.com < /var/log/asterisk/sms.txt)
exten => sms,4,System(rm -f /var/log/asterisk/sms.txt;)
exten => sms,5,Hangup()
;
; quando arriva un USSD sul dongle, asterisk lo legge (dongle-num e testo) e lo inoltra tramite mail
; all'indirizzo destinatario@provider.com
; Sendmail o Postfix devono essere installati e configurati sul centralino
;
exten => ussd,1,Verbose(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})})
exten => ussd,2,System(echo 'From: ${CALLERID(num)} <mittente@provider.com>\nTo: <destinatario@provider.com>\nSubject:Ricevuto USSD\nRicevuto il: ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}' >> /var/log/asterisk/ussd.txt)
exten => ussd,3,System(sendmail -t -f mittente@provider.com < /var/log/asterisk/ussd.txt)
exten => ussd,4,System(rm -f /var/log/asterisk/ussd.txt;)
exten => ussd,5,Hangup()
Salvare con ctrl+o e uscire con ctrl+x
nota bene: le righe in rosso sono spezzate in piu' righe da questo forum, ma sono un'unica riga!
riavviare FreePBX con il comando
sudo amportal restart
---------------------------------------------------------------------
Per inviare un USSD entrare da console come root sulla cli di Asterisk con il comando
sudo asterisk -vvvr
e poi dare il comando direttamente dalla cli:
dongle ussd dongle(num) codice_USSD
Esempio per disattivare il servizio "Ti ho cercato:" della 3 che da Luglio diventera' a pagamento :
CLI> dongle ussd dongle0 *112#
La risposta del server la riceverete per email nel seguente formato:
Oggetto: Ricevuto USSD
Data: 03/05/2015 18:05:24
Ricevuto il: 2015-05-03 18:05:24 - dongle0: Ti ho cercato: disattivato
Qui troverete un interessantissimo elenco dei codici USSD e delle loro funzioni:
http://emmepole.altervista.org/cell/codici.html
copiate e incollate questo collegamento nel browser, altrimenti non funziona.
---------------------------------------------------------------------
Invece per inviare un SMS da cli di asterisk questo e' il comando:
dongle sms dongle(num) +39numero testo del SMS
esempio:
CLI> dongle sms dongle0 +393273921955 questo e' un messaggio SMS di test
il numero +393273921955 ricevera' quindi un SMS con il testo "questo e' un messaggio SMS di test "
---------------------------------------------------------------------
Per ricevere un SMS con il numero e nome (se presente in rubrica di FreePBX) di chi sta chiamando, ecco la porzione di estensione da mettere nel dialplan:
exten => s,n,DongleSendSMS(dongle0,+39numero,chiamata ricevuta il: ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - da: ${CALLERID(name)} ${CALLERID(number)})
nota: sostituire +39numero con il numero a cui inviare il SMS (in formato internazionale +39xxxxxxx)