#!/bin/bash
###################################################################
# Script para verificar conexão de internet
# utilizando um modem 3G, detectando e configurando.
# Feito por Luiz Almeida
# Arcticc0@gmail.com
###################################################################
# INFORMAÇÕES DO LSUSB
# AJUSTE DE ACORDO COM A SUA CONFIGURAÇÃO
####################################################################
## CONFIGURAÇÃO PARA MODEM MF100 OU ZTE 626,628+
INF="ONDA"
VENDOR="19d2"
PRODUCT="2000"
ENDPOINT="0031"
MC="5553424312345678000000000000061b000000030000000000000000000000"
####################################################################
####################################################################
## CONFIGURAÇÃO PARA MODEM HUAWEI E1756
#INF="Huawei"
#VENDOR="12d1"
#PRODUCT="1446"
#ENDPOINT="1001"
#MC="55534243000000000000000000000011060000000000000000000000000000"
####################################################################
USBMSW="/usr/sbin/usb_modeswitch"
DISCAR="/usr/bin/wvdial"
PPP="/usr/sbin/pppd"
PING="/bin/ping"
HOST="www.google.com.br"
TIME="20s"
LOG="/var/log/modem"
die=0
while [ true ]
do
ok=0
for TIMEOUT in 1 2 3
do
`$PING -q -c 1 -W $TIMEOUT $HOST > /dev/null 2>&1`
if [ $? -eq 0 ]
then
ok=1
date >> $LOG
echo "Conectado!" >> $LOG
exit 0
fi
done
LSUSB=`lsusb |grep $INF |cut -d" " -f6`
if [ $LSUSB = $VENDOR:$PRODUCT ]
then
date >> $LOG
echo "Utilizando o usb_modeswitch" >> $LOG
`$USBMSW -v $VENDOR -p $PRODUCT -M $MC -m $ENDPOINT > /dev/null 2>&1`
echo "Esperando o modem" >> $LOG
sleep $TIME
fi
date >> $LOG
echo "Discando a conexão" >> $LOG
killall -9 $DISCAR > /dev/null 2>&1
killall -9 $PPP > /dev/null 2>&1
$DISCAR & >/dev/null 2>&1
echo "Discado e eperando a autenticação" >> $LOG
sleep $TIME
if [ $die -eq 4 ]
then
date >> $LOG
echo "Tentamos conectar 4 vezes sem sucesso. Tente conectar manualmente." >> $LOG
exit 0
else
echo Teremos mais $((4-$die)) tentativas! >> $LOG
die=$(($die+1))
fi
done
exit 0