Chan-mobile e Asterisk 1.8
by admin on Mar.14, 2011, under Asterisk, Telefonia
Il supporto a chan_mobile è ulteriormente migliorato in Asterisk, e tale tecnologia, uscita dal limbo degli addons, è entrata stabilmente a far parte della versione 1.8.
Chan mobile supporta il ‘device status’, pertanto è ora possibile scrivere qualcosa come:
exten => 1234,hint,Mobile/LG-P500
Relativa a chan_mobile, esiste anche una applicazione di nome MobileStatus. La si può usare per determinare lo ’stato’ di un device.
Per esempio, si supponga di voler chiamare un certo interno, ma solo se la persona cui appartiene si trova in ufficio.
Si può ora verificare se il suo telefono mobile è connesso ad Asterisk.
Se lo è e risulta libero, viene effettivamente chiamato l’interno; se risulta occupato la chiamata viene dirottata alla casella vocale, altrimenti significherebbe che la persona si trova fuori sede, e pertanto viene cercato tramite il cellulare.
context ael-interni {
...
401 => {
Wait(1);
Answer();
MobileStatus(headset,CELLSTATUS);
NoOp(${CELLSTATUS});
If ("${CELLSTATUS}" == "1")
Dial(SIP/myprovider/3482352343,40,tT);
If ("${CELLSTATUS}" == "2")
Dial(SIP/401,40,tT);
If ("${CELLSTATUS}" == "3")
VoiceMail(401,b);
};
...
};
MobileStatus imposta infatti il valore della variabile restituita a:
1 “Disconnected” ad es. Device non nel range di Asterisk, o spento ecc
2 “Connected and Not on a call” ovvero Libero
3 “Connected and on a call” ovvero Occupato
Invio e Ricezione di SMS
Se Asterisk ha rilevato che un telefono mobile è compatibile a inoltrare SMS ricevuti via bluetooth, si potranno inviare e ricevere SMS.
Gli SMS entranti creearanno una chiamata entrante nel contesto definito in mobile.conf o nel default context se non fosse stato definito. La chiamata inizierà alla special extension ’sms’. Due channel variables risulteranno disponibili, SMSSRC, che rappresenta il numero origine dell’ SMS ed SMSTXT che invece è il testo dell’ SMS.
Se fate uso di res_jabber, potete adottare qualcosa di simile:
context sms-from-mobile {
sms => {
Set(orario=${STRFTIME(${EPOCH},GMT-1,%H:%M:%S)});
JabberSend(gtalk_account,caio.sempronio@gmail.com,${orario} - SMS da ${SMSRC}: ${SMSTXT});
Hangup();
};
};
Per inviare un SMS, si può usare la applicazione MobileSendSMS in modo simile:
exten => 99,1,MobileSendSMS(LG-P500,3482712345,Buon Compleanno)
Inviando in tal modo ‘Buon Compleanno’ via device ‘LG-P500′ al numero “3482712345″

