Elastix обработка USSD и SMS и отправка на почту
Добавляем Dilaplan:
[from-gsm] exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS}) exten => sms,n,System(/usr/bin/php /etc/asterisk/sms.php ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DATACARD} — ${CALLERID(num)}: ${SMS_BASE64}) exten => sms,n,Hangup() exten => ussd,1,Verbose(Incoming USSD: ${USSD}) exten => ussd,n,System(/usr/bin/php /etc/asterisk/ussd.php ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} — ${DATACARD}: ${USSD_BASE64}) exten => ussd,n,Hangup() exten => s,1,Set(CALLERID(all)=${CALLERID(num)}) exten => s,n,Set(CALLERID(num)=8${CALLERID(num):2}) exten => s,n,goto(from-trunk,${DONGLEIMEI},1)
И два скрипта в систему
sms.php:
<?php $sms=base64_decode($argv[6]); //var_dump($argv); $smsok=$argv[1].» «.$argv[2].» «.$argv[5].» «.$sms; $smsok = str_replace(’«’, ’’, $smsok); $smsok = str_replace(„’“, „„, $smsok); $smsok = preg_replace („/[^а-яА-Я0-9a-zA-z\s\(\)\[\]\-\:\*\.\,\%\$\@\+\-\{\}\?\>\<\#\^\;\=\_\№]/u“,““,$smsok); $cmd=»echo $smsok | mail -s ’Incoming SMS from $argv[5]’ admin@mail.ru«; exec($cmd); $cmd=»echo $smsok >> /var/log/asterisk/sms.txt«; exec($cmd); ?>
и ussd.php:
<?php $sms=base64_decode($argv[5]); var_dump($argv); $smsok=$argv[1].» «.$argv[2].» «.$sms; $smsok = str_replace(’«’, ’’, $smsok); $smsok = str_replace(„’“, „„, $smsok); $smsok = preg_replace („/[^а-яА-Я0-9a-zA-z\s\(\)\[\]\-\:\*\.\,\%\$\@\+\-\{\}\?\>\<\#\^\;\=\_\№]/u“,““,$smsok); $cmd=»echo $smsok | mail -s ’Incoming USSD’ admin@mail.ru«; exec($cmd); $cmd=»echo $smsok >> /var/log/asterisk/ussd.txt«; exec($cmd); ?>
Добавляем автопроверку баланса и отправку на почту каждый день в 22-00:
crontab -e
00 22 * * * /usr/sbin/asterisk -rx «dongle ussd dongle0 *105#»