Claro 3g Sony Ericsson md300 script conexao REVISAO 2
Publicado por Daniel Roque 02/05/2009
[ Hits: 10.099 ]
Homepage: None
Caros colegas, com a ajuda do amigo NewWave eu precebi que na "Revisão um", coloquei para download uma versão que difere da versão que está para visualização, a correta.
Peço perdão pelo erro, e disponibilizo aqui a versão correta, já com algumas modificações que espero que sane alguns problemas.
Agradeço às dicas e os testes feito por NewWave.
Boa Sorte
#!/bin/bash
#
# 8-2-2009
#
# claro-3g MD300
#
# Este script foi testado com o modem MD300 Sony Ericsson
#
# Por Daniel Roque
# 2006roque@gmail.com
#
# Atencao!
#
# Use o escript por sua conta e risco
# este script nao vem com nenhuma garantia
#
#
#
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
alias showdate='date -d now "+%Y-%m-%d %H:%M:%S claro-3g -->"'
########## VARIAVEIS #############
REDEINT='192.168.0.0/24' # rede interna, coloque o valor correto caso queira rotear conexao
TENTATIVAS='5' # numero de tentativas antes de desistir, nao deixe em branco
DEVID="0fce:d0cf" # Para tentar outros modens utilize o lsusb e descubtra o devid do mesmo e substitua o valor
ESPERA="20" # temo que se deve esperar pelo handshake com o servidor, antes de testar se conectou
CONT='3' # ping count, mantenha um valor entre 1 e 9, utilize maior para sinal mais fraco
DESTINO='200.98.249.120' # host de destinho para teste, importante por um ip que responda a ping
DNS='200.169.117.22' # dns padrao da claro, mude apenas se souber o que esta fazendo
##################################
versao='0.1.2'
ultimaatualizacao='Qua Mar 25 11:20:51 UTC 2009'
checkdep(){
rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name wvdial`
if [ "$rslt" == '' ];
then
echo "Claro-3g --> ERRO: wvdial nao encontrado, instale-o
([debian|ubuntu|big|famelix] -> apt-get install wvdial)"
cmd='exit 3'
fi
rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name udevd`
if [ "$rslt" == '' ];
then
echo "
Claro-3g --> ERRO: udev nao encontrado, instale-o
([debian|ubuntu|big|famelix] -> apt-get install udev)"
cmd='exit 3'
fi
rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name udevd`
if [ "$rslt" == '' ];
then
echo "
Claro-3g --> ERRO: udev nao encontrado, instale-o
([debian|ubuntu|big|famelix] -> apt-get install udev)"
cmd='exit 3'
fi
rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name named`
rslt=`find /usr/bin/ /sbin/ /bin/ /usr/local/bin/ -name dnsmasq`
if [ "$rslt" == '' ];
then
echo "Claro-3g --> AVISO: algumas vezes o dns destes modens demoram muito para responder,
eu aconselhor utilizar um dns em sua maquina.
([debian|ubuntu|big|famelix] -> apt-get install bind)
Caso você opte por utilizar um dns em sua maquina, dentro deste script,
remova o # que precede a linha #nameserver 127.0.0.1 e rode o install
novamente."
fi
$cmd
}
ppp_option(){
sed '{s/\(^.*asyncmap.*\)/#\1/
s/\(^.*mru.*\)/#\1/
s/\(^.*refuse-chap.*\)/#\1/ }' -i /etc/ppp/options
}
install(){
quem=`whoami`
echo 'Claro-3g, revisao 2 de 08-02-2009
Por Daniel Roque, 2006roque@gmail.com
Este script vem com nenhuma garantia, utilize-o por sua conta e RISCO!
Deseja continuar (s/n):n'
read resp
resp=`echo $resp|sed 's/[sSyY]/s/g'`
if [ "$resp" != 's' ];
then
echo 'saindo sem fazer nada.'
exit 1
fi
checkdep;
if [ "$quem" != 'root' ];
then
echo "
Claro-3g --> Voce precisa dos poderes de root para executar este script"
exit 4
fi
rm /etc/init.d/claro-3g 2>/dev/null
cp claro-3g /etc/init.d/ 2>/dev/null
num='2
3
4
5'
echo "
Claro-3g --> Desja criar um link para iniciar automaticamente quando pc e iniciado?(s/n):s"
read resp
resp=`echo $resp|sed 's/[nN]/n/g'`
if [ "$resp" != 'n' ];
then
echo "
Claro-3g --> Criando links de inicializacao"
for i in `echo $num`
do
cd /etc/rc$i.d/
echo "/etc/rc$i.d/S99claro-3g"
ln -s ../init.d/claro-3g S99claro-3g 2>/dev/null
done
else
echo "
Claro-3g --> Removendo links de inicializacao, caso exista"
for i in `echo $num`
do
echo "/etc/rc$i.d/S99claro-3g"
rm -f /etc/rc$i.d/S99claro-3g 2>/dev/null
done
fi
echo "
Claro-3g --> Configurando ppp"
ppp_option;
echo "
Claro-3g --> Utilize /etc/init.d/claro-3g start, ou conecte o modem e reinicie o pc
Boa Sorte!"
}
dodns(){
#altere as linhas abaixo caso tenha um dns e dominio local
echo "#domain casa.local
#search casa.local
#nameserver 127.0.0.1
nameserver $DNS
nameserver 200.169.119.22">/etc/resolv.conf
}
udevrules(){
if [ ! -e '/etc/udev/rules.d/50-md300modem.rules' ];
then
echo "Claro-3g -->Gerando regras para udev e reiniciando udev"
aspas="'"
echo '#claro-3g script
ACTION!="add", GOTO="3G_End"
BUS=="usb", SYSFS{idProduct}=="d0cf", SYSFS{idVendor}=="0fce", NAME="modem" PROGRAM="/bin/sh -c '"'"'echo 3 > /sys/%p/device/bConfigurationValue'"'"'
LABEL="3G_End"' >/etc/udev/rules.d/50-md300modem.rules
fi
/etc/init.d/hal restart
/etc/init.d/udev restart
}
wvdialconf(){
oldconf=`cat /etc/wvdial.conf|sed 's/^/#/g'`
echo '#claro-3g - nao modifique esta linha
#
# Por Daniel Roque
# 2006roque@gmail.com
#
# Atencao!
#
# Use o escript claro-3g por sua conta e risco
# este script não vem com nenhuma garantia
#
#
[Dialer Defaults]
Modem = /dev/ttyACM0
Baud = 460800
Init1 = ATZ
Init2 = AT+cfun=1
Init3 = AT+CGDCONT=1,"IP","bandalarga.claro.com.br"
Area Code =
Automatic Reconnect = yes
Phone = *99***1#
Username = claro
Password = claro
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 0
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 0
Modem Type = Analog Modem
New PPPD = yes
########## ABAIXO ESTA O CONTEUDO DO VELHO wvdial.conf
########## delete as linhas acima e remova o primeiro #
########## de cada linha para voltar a conf antiga'"
$oldconf" >/etc/wvdial.conf
}
xau_lock(){
rm -f /var/run/claro-3g.pid 2>/dev/null
}
kill_if_running(){
if [ -e /var/run/claro-3g.pid ];
then
echo "Claro-3g -->Parando script existente e aparentemente rodando"
pid=`cat /var/run/claro-3g.pid`
kill -9 $pid 2>/dev/null
xau_lock;
echo "Claro-3g -->Feito!"
fi
}
start(){
echo "CLARO-3G - versao $versao de $ultimaatualizacao"
kill_if_running;
echo "$$" >/var/run/claro-3g.pid
checkdep;
#checando existencia do modem
rslt=`/usr/bin/lsusb |sed -n "/$DEVID/p"`
if [ "$rslt" == '' ];
then
echo "Claro-3g -->Modem nao encontrado!"
xau_lock;
exit 2
fi
echo "Claro-3g -->Modem encontrado"
#setando regras para o modem caso utilize outro modem as regras podem mudar
udevrules;
rslt=`cat /etc/wvdial.conf |sed -n '1p'|sed -n '/claro-3g/p'`
#checando conf do wvdial
if [ "$rslt" == '' ];
then
echo "Claro-3g -->configurando o wvdial.conf"
wvdialconf;
fi
#verificando se ja esta conectado
/sbin/ifconfig ppp0
if [ "$?" == 0 ];
then
ping -c $CONT $DESTINO|sed -n '/[123456789] received/p' 2> /dev/null
rslt="$?"
else
rslt=1
fi
#tentando por 5 vezes conectar
tries='1'
while [ "$rslt" != 0 ] && [ "$tries" -lt $TENTATIVAS ];
do
/etc/init.d/udev stop 2>/dev/null
/etc/init.d/udev start 2>/dev/null
killall -s KILL wvdial 2>/dev/null
killall -s KILL pppd 2>/dev/null
wvdial 2>/dev/null &
echo "Claro-3g -->Tentativa $tries de $TENTATIVAS."
echo "Claro-3g -->Tentando conectar em $ESPERA segundos"
sleep $ESPERA
rmdefroute=`route -n|sed -n 's/ //g;s/ //g;s/\(0.0.0.0\)\(.*\)\(0.0.0.0.*\)/route del default gw \2/p'`
$rmdefroute
route add default gw 10.64.64.64
ping -c $CONT $DESTINO|sed -n '/[123456789] received/p' 2> /dev/null
rslt="$?"
tries=`expr "$tries" + 1`
done
echo "Claro-3g -->Conectado!"
#rotenado conexao para a rede internar, altere a var REDEINT para o valor local da sua rede
echo "Claro-3g -->rotenado conexao para a rede $REDEINT, altere a variavel REDEINT dentro do script caso isto nao esteja certo."
/sbin/iptables -t nat -A POSTROUTING -s $REDEINT -j MASQUERADE
echo 1 >/proc/sys/net/ipv4/ip_forward
dodns;
}
stop(){
echo "Claro-3g -->Parar"
kill_if_running;
killall -s KILL wvdial 2>/dev/null
killall -s KILL pppd 2>/dev/null
iptables -t nat -D POSTROUTING -s $REDEINT -j MASQUERADE 2>/dev/null
echo 0 >/proc/sys/net/ipv4/ip_forward
}
case $1 in
start)
start;
;;
stop)
stop;
;;
restart)
stop;start
;;
install)
install;
;;
*)
echo 'use claro-3g (start|stop|restart|install)'
exit 1
;;
esac
exit 0
Adicionando novo usuário manualmente
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS
script para travar usuario discado
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









