Записи с Меткой ‘ sms

зависания модема huawei e1550 — жесткий рестарт

Ubuntu отключение usb модема

Ищем модем:
for device in $(ls /sys/bus/usb/devices/*/product); do echo $device;cat $device;done
Отключаем:
sudo sh -c «echo 0 > /sys/bus/usb/devices/3-1/authorized» (подставляем свой номер)
Включаем:

sudo sh -c «echo 1 > /sys/bus/usb/devices/3-1/authorized»

или
#!/bin/sh
 echo "Выключение питания"
 echo suspend > /sys/bus/usb/devices/1-9/power/level
 sleep 10
 echo "Включение питания"
 echo on > /sys/bus/usb/devices/1-9/power/level

 http://sysadmin.te.ua/linux/usb.html

http://sysadmin.te.ua/linux/usb.html

 

Кулл http://forum.ubuntu.ru/index.php?topic=111137.0

Скомпиленный usbreset

usbreset.tar.gz

 

Учкудук два модема…

Ещё пару слов дополню…
Поставил на систему второй модем для входящих с АллоИнкогнито и тут пришёл он самый… П-ц который: модемы сами по себе менялись местами хлеще акробатов в цирке! При отключении одного — второй норовил переехать на его порты и т.д. и т.п.

А т.к. диалпланы для них в корне разные — надо было как-то решать…
Решение вполне обоснованное для Линукса: порту можно назначить фиксированную “ссылку»!
Т.е. — задаём для модема 1 — порты не ttyUSB1 и 2, а hv0 и hi0 (ХуавейВоис и ХуавейИнфо)!
Как?
Отключаем от компа оба модема, вставляем первый.
Даём с рута в терминале команду dmesg
В ответ вываливается куча всего, но в конце — заветные строки:
[291015.913221] option 1-2:1.0: GSM modem (1-port) converter detected
[291015.913364] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[291015.913926] option 1-2:1.1: GSM modem (1-port) converter detected
[291015.914026] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[291015.916678] option 1-2:1.2: GSM modem (1-port) converter detected
[291015.916812] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2

«Кто есть ху»:
После option идёт идентификатор порта.
1-2 — первый ЮСБ хост, второе устройство
:1.1 — первый порт на этом устройстве.
В следующей строке — инфа на тему того, каким портом стал этот наш внутренний.
Нас интересуют пред-последний и последний — 1 и 2 в данном случае.
1 — порт для голоса, 2 — для данных.
Теперь открываем из под рута для редактирования файл /etc/udev/rules.d/huawei.rules — тут прописываются правила для всея Хуавей-девайсов в системе. Скорее всего он будет пустым.
Вбиваем строчки:
KERNEL=="ttyUSB[0-9]*", ID=="1-2:1.1", NAME="%k", SYMLINK+="hv0", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-2:1.2", NAME="%k", SYMLINK+="hi0", GROUP="root", MODE="0666"

«Всея устройства на этом конкретном порту отныне и присно зовутся ещё и hv0, а на этом — hi0! Сохраняем, Аминь!»
Повторяем процесс начиная с втыкания для второго модема — появятся ещё две строчки в файле, в которых уже порты от второго модема и hv1 и hi1… Можно так и третий, и сто-тридцать-пятый добавить…

Теперь если выдернуть модемы и вставить, то по команде ls -1 /dev/hv* или ls -1 /dev/hi* — выдаст ВСЕГДА нужный девайс, главное не перепутать разъём на компе!

/etc/asterisk/datacard.conf тоже меняется — вместо безликих
audio=/dev/ttyUSB1 ; tty for audio connection
data=/dev/ttyUSB2 ; tty for AT commands

Появляются
audio=/dev/hv0 ; tty for audio connection
data=/dev/hi0 ; tty for AT commands

Теперь перезагружаем Астериск и ура — путаницы больше не будет!
На этом с железом пока всё.

 

 

huawei e1550 + Smstools3

Конфиги

/etc/smsd.conf

# Example smsd.conf. Read the manual for a description

devices = GSM1
logfile = /var/log/smsd.log
loglevel = 3

outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent

delaytime = 6
errorsleeptime = 12
blocktime = 180
autosplit = 3
receive_before_send = yes
decode_unicode_text = yes
eventhandler = /etc/sms_events.sh

[GSM1]
#device = /dev/gsmmodem
device = /dev/ttyUSB1
baudrate = 115200
report = yes
rtscts = no
#init = AT+CPMS="SM","SM",""
init = AT+CPMS="SM","SM","SM"
#check_memory_metod = 2
check_memory_method = 31
signal_quality_ber_ignore = yes
incoming = yes
incoming = high

 

/etc/sms_events.sh - исполняет команду по смс вида #/etc/now_time_money.sh

#! /bin/bash

COMMAND_CHAR="#"
#INCOMING_DIR=/var/spool/sms/incoming
ALLOW_PHONES="7916xxxxxxx 7965xxxxxxx"
SEND_BACK_REPORT=NO

[ "$1" = "RECEIVED" ] || exit 0

to_log(){
    text=$1
    export LANG=en_EN
    log_date=`date "+%b %d %H:%M:%S "`
    log_host=`hostname -s`
    echo "$log_date $log_host $text" >> /var/log/smsd.log
}

File=$2

Allow=0
for Phone in $ALLOW_PHONES; do
    cat $File | grep "From: $Phone" > /dev/null 2>&1
    [ $? -eq 0 ] && Allow=1
done;

[ $Allow -eq 0 ] && exit 0

cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR"
[ $? -ne 0 ] && exit 0

FromPhone=`cat $File | grep "From:" | cut -d " " -f2`

command=`cat $File | grep "$COMMAND_CHAR" | cut -d "$COMMAND_CHAR" -f2`
to_log "Incoming command: $command from $FromPhone"
out=`$command`

if [ "$SEND_BACK_REPORT" = "YES" ]; then
    smssend $FromPhone "$out"
    to_log "Send sms to $FromPhone: $out"
fi
rm -f $File
to_log "Deleting file $File"

 

/etc/sms3_monitoring —  рестарт при ошибке железа — cron — */5 *   * * *   root    /etc/sms3_monitoring

#!/bin/bash
rm /root/buffer_sms_file
date=`date`
tail -n5 /var/log/smsd.log > /root/buffer_sms_file
cat /root/buffer_sms_file | grep "Error: Modem is not registered to the network"
if [ $? -eq 0 ]; then
        /etc/init.d/sms3 restart
        tar cvfz /var/log/smsd.log /var/log/sms_erlog_$date.log
        shutdown -rf now
fi

cat /root/buffer_sms_file | grep "Error: registration is denied"
if [ $? -eq 0 ]; then
        /etc/init.d/sms3 restart
        tar cvfz /var/log/smsd.log /var/log/sms_erlog_$date.log
        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "Modem handler 0 terminated abnormally"
if [ $? -eq 0 ]; then
        /etc/init.d/sms3 restart
        tar cvfz /var/log/smsd.log /var/log/sms_erlog_$date.log
        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "write_to_modem: error 5: Input/output error"
if [ $? -eq 0 ]; then
        /etc/init.d/sms3 restart
        tar cvfz /var/log/smsd.log /var/log/sms_erlog_$date.log
        shutdown -rf now

        fi
cat /root/buffer_sms_file | grep "Couldn't open serial port /dev/ttyUSB"
if [ $? -eq 0 ]; then
        /etc/init.d/sms3 restart
        tar cvfz /var/log/smsd.log /var/log/sms_erlog_$date.log
        shutdown -rf now
        fi