faz o que exatamente ? Aparentemente gera um retorno positivo 0 (true) informando que ao ligar a máquina o serviço pppd foi carregado. É isto mesmo ?
Por que este comando é executado ? Qual a finalidade prática no script ?
ifconfig ppp0 down 1>>
Já o assassinato entendi corretamente
killall -9 pppd 1>>
Só não sei se o código é sempre este. Acho que a função que vai tentar matas deve pegar o número do pid do serviço.
Se entendi corretamente, matando o serviço pppd estaria pronto para tentar inicializa-lo novamente certo ?
Qual o comando que está sendo usado para inicializa-lo quando a máquina é ligada ?
Você desabilitou o carregamento do pppd usando o "sudo visudo" ? Assim não haverá pedidos de senhas e se deixar este script sendo inicializado quando a máquina for ligada ele vai fazer tudo que precisa e caso a conexão caia, vai tentar se recuperar sozinho.
Faltou você informar o código de modem para o teste de conexão do pppd. Acho que está na parte que você não enviou.
Responde aí rapá. Este vai ser um grande aprendizado pra mim também ;)
Desculpe a demora, é que estava meio apertado aqui no trabalho. :-)
vamos lá então.
O comando "pppd /dev/$TTY" tipo que faz o modem achar seu caminho novamente, deixa eu explicar, isso é um caso a parte, pois, esse meu modem dá pau e não disca mais, isso acontece do nada, mas as portas continuam montadas normalmente, geralmente a porta que disca é a /dev/ttyUSB2, então quando executo esse comando, o modem volta a funcionar (acredito que esse seja um caso a parte, acredito que seja o firmware do modem que está desatualizado), então, esse comando serve só para isso, quem não tem esse problema igual o meu deve esquecer esse comando.
O comando "ifconfig ppp0 down", é que as vezes a interface ppp0 criada fica travada ai, não sei prq, mas fica, então, para não ter erro eu assasssino ela também. :-0
O comando "killall -9 pppd" é exatamente isso, mas mato ele prq as vezes ele agarra, mas mesmo eu finalizando com o kill -9 depois de um certo tempo consigo discar e obter conexão, então por isso que aguardo um tempo verificando a execução dele, se demorar mato ele e tento discar.
Inicio ele através de um script no /etc/init.d como root, já tentei também iniciá-lo no /etc/rc.local, nesses 2 tipos de inicializações o comportamente foi o mesmo.
Acredito que eu não preciso de desabilitar ele usando o sudo visudo, pois iniciando no rc.local ele inicia como root.
Qualquer dúvida sobre o código estou à disposição, abraços.
15. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 26/04/2012 - 10:49h
lucasdona escreveu:
Desculpe a demora, é que estava meio apertado aqui no trabalho. :-)
Eu que peço desculpas rsrs. Não vi ontem a sua resposta.
vamos lá então.
O comando "pppd /dev/$TTY" tipo que faz o modem achar seu caminho novamente, deixa eu explicar, isso é um caso a parte, pois, esse meu modem dá pau e não disca mais, isso acontece do nada, mas as portas continuam montadas normalmente, geralmente a porta que disca é a /dev/ttyUSB2, então quando executo esse comando, o modem volta a funcionar (acredito que esse seja um caso a parte, acredito que seja o firmware do modem que está desatualizado), então, esse comando serve só para isso, quem não tem esse problema igual o meu deve esquecer esse comando.
Ok. Então para executar este comando não precisa de permissões sudo certo ? Podemos faze-lo pelo script também.
O comando "ifconfig ppp0 down", é que as vezes a interface ppp0 criada fica travada ai, não sei prq, mas fica, então, para não ter erro eu assasssino ela também. :-0
Ok, só preciso saber então a sequência que você faz. Se o assassinato depende do comando /dev/ttyUSB2 ou pppd /dev/$TTY para que na lógica de controle do script faça a coisa certa.
O comando "killall -9 pppd" é exatamente isso, mas mato ele prq as vezes ele agarra, mas mesmo eu finalizando com o kill -9 depois de um certo tempo consigo discar e obter conexão, então por isso que aguardo um tempo verificando a execução dele, se demorar mato ele e tento discar.
Ok, esse temporizador que vai aguardar poderá ser regulável. Se existir alguma forma de saber o momento que ele pode ser disparado seria bom.
Inicio ele através de um script no /etc/init.d como root, já tentei também iniciá-lo no /etc/rc.local, nesses 2 tipos de inicializações o comportamente foi o mesmo.
Acredito que eu não preciso de desabilitar ele usando o sudo visudo, pois iniciando no rc.local ele inicia como root.
Não sei não. O problema é você sem permissões conseguir matar um serviço que em tese foi iniciado pelo root. Acho que tem algum problema aí.
Qualquer dúvida sobre o código estou à disposição, abraços.
ok. Agora vou baixar o código completo e vou colocando as dúvidas por aqui.
16. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 26/04/2012 - 11:22h
Olá lucasdona, seria legal você colocar aqui o que retorna de alguns comandos.
É possível você fazer o processo na mão para poder reportar aqui o que acontece em termos de mensagens ?
A variável CONEXAO parece ter 3 valores possível. Você tem 3 modens 3g ? Não deveria estar dentro da variável o número do seu modem 3g ?
Execute estes comandos e me diga os retornos.
É importante você executar a bateria deles de duas formas.
1ª) Todos comandos com sua conexão funcionando.
2ª) Todos comandos quando sua conexão NÃO está funcionando.
Não precisa ficar esperando a conexão ficar fora do ar. Pode me enviar a 1ª opção antes.
$ ps auxc | grep "wvdial"
$ ps auxc | grep "pppd"
$ ifconfig ppp0
$ ps auxc | grep "avahi-daemon"
$ ps auxc | grep "TTY"
Não se preocupe com a quantidade de linhas, deve enviar o retorno de cada um inteiro.
A variável GLOBAL $LOCAL_LOG está sendo sobrescrita com dois endereços diferentes. Uma hora ela seu local e outra está pegando valores do discador. Se existe algum log do discador, poderia enviar algum pedaço dele aqui ?
A ideia é deixar uma variável de log só para este script em forma de passo a passo.
Quando puder retornar, darei continuidade. ;)
ps: Apaguei os outros tópicos que só tinham o código inicial do script para limpar a área.
17. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 26/04/2012 - 12:40h
Tentando instalar uma conexão wired para simular uma conexão...
18. Re: script pppd
lucasdonausa Linux Mint
Post recolhido
Enviado em 26/04/2012 - 15:33h
* Acredito que não seja problema com permissão, pois se ele inicia como root, então, não teria problemas ao executar um comando.
* Quanto ao log, ele só é direcionado para um local, LOCAL_LOG="/etc/discador/discador.log", só gera um log.
O que vc deve ta vendo é que ele gera um .tmp para controlar o log, pois se eu remover as 100 linhas direramente no arquivo de log dá erro, então o log tmp que é criado serve só pra isso.
* Referente as 3 conexões que eu tenho, não são 3 modens não, são 3 portas diferentes que ele é montado na inicialização, é o o caso que falei de ligar com energia e só usando bateria. Para melhor entender, vou fazer tipo uma simulação logo abaixo:
- ranquei a tomada da parede, liguei o tablet, ele monta as portas
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2. a que disca é a ttyUSB1
- pluguei o cabo na energia, liguei o tablet, ele monta as portas
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3. a que disca é a ttyUSB2
Por isso que tem a variável CONEXÃO.
* Quanto aos retornos que vc pediu, vou enviar um log aqui gerado em algum dia pra vc dar uma olhada.
na linha 73 já tá "modem não respondendo" daí quando tenta a 3a vez que não consegue conexão executa o pppd /dev/ttyUSB2, daí fica nesse loop, encerrando pppd, tentando conexão, não consegue, inicia pppd de novo, não consegue, daí fica pra sempre, mas se eu finalizo o discador, executo pppd /dev/ttyUSB2, aguardo os mesmos segundos que o script, depois tento discar, funciona, ou seja, to fazendo a mesma coisa que o script, só que ele mata o pppd disca e não consegue, eu faço exatamente a mesma coisa que ele e consigo conexão, é aí que nun entra na minha cabeça, se eu consigo ele tmb tinha que conseguir.
19. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 26/04/2012 - 17:09h
lucasdona escreveu:
* Acredito que não seja problema com permissão, pois se ele inicia como root, então, não teria problemas ao executar um comando.
* Quanto ao log, ele só é direcionado para um local, LOCAL_LOG="/etc/discador/discador.log", só gera um log.
O que vc deve ta vendo é que ele gera um .tmp para controlar o log, pois se eu remover as 100 linhas direramente no arquivo de log dá erro, então o log tmp que é criado serve só pra isso.
* Referente as 3 conexões que eu tenho, não são 3 modens não, são 3 portas diferentes que ele é montado na inicialização, é o o caso que falei de ligar com energia e só usando bateria. Para melhor entender, vou fazer tipo uma simulação logo abaixo:
- ranquei a tomada da parede, liguei o tablet, ele monta as portas
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2. a que disca é a ttyUSB1
- pluguei o cabo na energia, liguei o tablet, ele monta as portas
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3. a que disca é a ttyUSB2
Por isso que tem a variável CONEXÃO.
* Quanto aos retornos que vc pediu, vou enviar um log aqui gerado em algum dia pra vc dar uma olhada.
na linha 73 já tá "modem não respondendo" daí quando tenta a 3a vez que não consegue conexão executa o pppd /dev/ttyUSB2, daí fica nesse loop, encerrando pppd, tentando conexão, não consegue, inicia pppd de novo, não consegue, daí fica pra sempre, mas se eu finalizo o discador, executo pppd /dev/ttyUSB2, aguardo os mesmos segundos que o script, depois tento discar, funciona, ou seja, to fazendo a mesma coisa que o script, só que ele mata o pppd disca e não consegue, eu faço exatamente a mesma coisa que ele e consigo conexão, é aí que nun entra na minha cabeça, se eu consigo ele tmb tinha que conseguir.
Maravilha, agora estou entendendo legal. :)
Tentarei logo mais a noite se a bela me largar cego kkkk
20. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 26/04/2012 - 20:45h
Falta a lógica do corpo inicial do Script e o loop que vai controlar as fases.
Acho que não falta nenhuma função ou rotina repetida que precise ir para funções.
Agora preciso da lógica escrita, ex:
1 - Quando inicia a máquina ele dispara o serviço ppp
2 - Depois ele carrega o wdial...
3 - etc...
A lógica natural do processo funcionando. Depois vamos para a lógica de falha.
#!/bin/bash
# Script.......: discador3g.sh
# name.........: Roda em background ativando e desativando a conexão 3g
# Author.......: lucasdona
# Co-Authores..: Gatux
# Employees....: @foxbit3r e todos que ajudaram na solução do problema.
# charset......: UTF-8
# endofline....: Linux
# since........: 2012-04-26 13:13 (GMT -03:00)
# license......: GPL 3
# system.......: GNU bash, version 3.x
# version......: alfa 0.4
# more.........: Script vai tentar manter conexão ativa.
#-----------------------------------------------------------------------------#
#set -x # Liga Debug de tudo.
#trap read DEBUG
DEBUG=9 # 0=Inativo 1,2,3,4,5,6,7,8 e 9 ativam o debug.
###############################################################################
# CHANGE LOG
###############################################################################
#-----------------------------------------------------------------------------#
# Alfa 0.4
# ========
# - Removido funções desnecessárias.
# - Alterado funções com novos testes.
# - Falta montar o corpo inicial e o loop de testes.
#-----------------------------------------------------------------------------#
# Alfa 0.3
# ========
# - Novas funções incluídas.
# - Preparação para trabalhar como DAEMON inicializada.
# - Neste momento está fazendo apenas o teste do loop e saída via arquivo.
#-----------------------------------------------------------------------------#
# Alfa 0.2
# ========
# Iniciado reformulação do script ( Gatux )
#-----------------------------------------------------------------------------#
# Alfa 0.1
# ========
# ????-??-?? - Criado script por lucasdona
#-----------------------------------------------------------------------------#
# Área reservada para variáveis globais caso haja necessidade.
#-----------------------------------------------------------------------------#
PROGNAME=$(echo $(basename "$0") | sed 's:.sh::') # Nome do aplicativo.
CONT_PPPD=0 # Contador de tentativas.
#LOCAL_LOG="/tmp/${PROGNAME}.$$" # Arquivo temporário de log desta chamada.
LOCAL_LOG="/etc/discador/discador.log"
OLD_LOG="/etc/discador/old_log_discador.log" # Atenção para permissão no arquivo.
PPPD_FLAG=true # Não sei para que serve.
SLEEP_TIME=3 # Tempo genérico que irá aguardar.
PPPD_RETORNO=false # Variável de retorno do MODEM. true = conectado.
FILE_STOP_LOOP_DISCADOR="/tmp/end_discador3g.txt" # Tira Daemon do ar.
USER_INTERRUPT=13 # Interrupção solicitada pelo usuário.
PSAUX=0 # Usada no retorno de processos que verificam se o modem ok.
CONEC_3G_INICIAL=0 # Momento que ficou sabendo da conexão ON = date "+%s"
QT_PORTAS=3 # Usado para saber se está ou não com energia.
MAX_LOG=50000 # Quantidade máxima de linhas do arquivo de log.
#-----------------------------------------------------------------------------#
# Área reservada para todas as funções que o script irá precisar.
#-----------------------------------------------------------------------------#
function conectar3g()
{
local time_ini time_fim
# Só poderá entrar nesta função caso a conexão tenha morrido.
# Usando wait você vai conseguir pegar o tempo real que vai demorar.
# Se este processo travar tudo, retire o wait.
# Você precisa saber que se ele demora tanto deve ter travado.
# Não tenho como testar esta parte.
wait # Fica aguardando retorno em bg
time_fim=$(date "+%s") # Pega o tempo final.
time_conection=$(($time_fim-$time_ini)) # Tempo que demorou para conectar.
echo "Demorou ${time_conection} segundos para conectar no wvdial..." >> $LOCAL_LOG
}
function TestaPortas()
{
local lc_qtde_portas
# Coleta a quantidade de portas.
lc_qtde_portas=$(ls /dev/ttyU* 2>/dev/null | wc -l 2>/dev/null)
# Força reatualização da qtde de portas.
QT_PORTAS=${lc_qtde_portas}
echo $QT_PORTAS
}
function TestaConexao()
{
local lc_my_conection lc_retorna_status
# Testa retorno de ping.
# Se teste 0 = [DESCONECTADO]
# Função retorna 2 status. [CONECTADO] ou [DESCONECTADO]
lc_my_conection=$(ping -c 2 www.google.com.br | wc -l)
if [ ${lc_my_conection} -gt "0" ]; then
lc_retorna_status="[CONECTADO]"
else
lc_retorna_status="[DESCONECTADO]"
fi
echo $lc_retorna_status
}
function Desconecta3g()
{
: # Força a desconexão do modem 3g
: # Falta a lógica da desconxão.
: # O ideal é que ela execute todas as fases.
: # Igual o que é feito ao ligar a máquina, mas só que ao contrário.
}
function AguardaTimeout()
{
# Configura o tempo e intervalo em que a conexão será testada.
# Se não enviar parâmetro algum, vai usar o valor da variável pública.
# Geralmente vai receber solicitações das funções:
# Conectado, Executando, TestaPPPd, etc...
lc_sleep_time=${1:-"${SLEEP_TIME}"} # Hoje está em 3 segundos.
sleep ${lc_sleep_time}
}
function Conectado()
{
: # Recebe ok que tudo está bem com a conexão.
: # Vai passar por esta função sempre que estiver ok para controlar
: # futuros timeouts de testes.
}
function executando()
{
: # Controla o momento em que está aguardando a finalização dos timeouts.
: # Será neste local que vamos tentar a conexão passando parâmetros.
#
}
function TestaPPPd()
{
local lc_tty lc_tty_retorno
echo "usando porta:" $TTY >> $LOCAL_LOG
# Testando retorno do $TTY
lc_tty=$(pppd /dev/$TTY)
#Aqui tenta resolver meu problema de "modem não respondendo"
# fazendo isso funciona novamente.
# Tenho dúvidas se este processo é eficaz.
if [ ${lc_tty} ]; then
echo "pppd tty iniciado com sucesso" >> $LOCAL_LOG
lc_tty_retorno="[OK]"
else
echo "erro ao iniciar pppd /dev/tty, reiniciar o sistema" >> $LOCAL_LOG
lc_tty_retorno="[OFF]"
fi
echo ${lc_tty_retorno}
function Kill3g()
{
local lc_conection="$1"
# param1 = recebe o nome da conexão que deseja matar.
# Precisa estar rodando em root ou com sudo.
if [ ${lc_conection} == "wvdial" ]; then
echo "Matando processo wvdial" >> $LOCAL_LOG
killall wvdial >> $LOCAL_LOG 2>&1
fi
if [ ${lc_conection} == "pppd" ]; then
echo "Matando processo pppd" >> $LOCAL_LOG
killall pppd 1>> $LOCAL_LOG 2>&1
fi
if [ ${lc_conection} == "avahi-daemon" ]; then
echo "Matando avahi-daemon" >> $LOCAL_LOG
killall -9 avahi-daemon 1>> $LOCAL_LOG 2>&1 #andei matando esse processo tmb, junto com o pppd, daí conectava
fi
if [ ${lc_conection} == "ppp0" ]; then
echo "matando ppp0" >> $LOCAL_LOG
ifconfig ppp0 down 1>> $LOCAL_LOG 2>&1
fi
}
function help_me()
{
: # Envia um choque no note caso a conexão tenha morrido. kkkk brincadeira.
}
function ExecPSaux()
{
# Lida com o carregamento e filtro dos parâmetros dos processos.
local lc_name_processo lc_psaux
# Note que estou usando um processo qualquer. Não consigo simular o seu.
# Geralmente vai usar o nome do serviço, ex: wvdial
lc_psaux=$(ps auxc | grep -i "${lc_name_processo}" | wc -l )
# Retorna 0(zero) se não localizou o processo ativo.
# Não consigo testar esta parte porque não tenho o processo rodando.
if [ $lc_psaux == "1" ]; then
PSAUX=$lc_psaux # Retorno para ser usado no teste de atividade.
fi
# Debug 3 "Valor do lc_psaux: $lc_psaux [F:$FUNCNAME L:$LINENO]"
}
#gera um log para ver o comportamento do discador
function gerar_log()
{
# Toda vez que ele entra no discador ele deixa o arquivo com 100 registros ?
cp /etc/discador/discador.log /etc/discador/discador.log.tmp
sed -i '1,100d' /etc/discador/discador.log.tmp
cat /etc/discador/discador.log.tmp > /etc/discador/discador.log
}
#-----------------------------------------------------------------------------#
# INÍCIO >>> function Debug()
# PARAM:
# 1 - Nível de erro.
# 2 - Grava log ou mensagens para debug (precisa de ajustes)
#-----------------------------------------------------------------------------#
function Debug()
{
#-------------------------------------------------------------------------#
# Só vai mostrar o Debug se for maior que 0.
# Se no programa principal deixar o DEBUG com 1, mensagem de Debug que
# forem do grupo 2 não serão mostradas.
# Caso queira mesmo ver todas as mensagens, configure o DEBUG=9
#-------------------------------------------------------------------------#
DEBUG=${DEBUG:-0} # Caso não exista a variável.
[ "$1" -le ${DEBUG} ] || return
local prefixo arquivar
case "$1" in
1) prefixo="{TEXTO}33[33m-- $*{TEXTO}33[m";;
2) prefixo="{TEXTO}33[32m---- $*{TEXTO}33[m";;
3) prefixo="{TEXTO}33[31m------ $*{TEXTO}33[m";;
4) prefixo="{TEXTO}33[34m------ $*{TEXTO}33[m";;
5) prefixo="{TEXTO}33[41;33;1m---------- $*{TEXTO}33[m";;
*) echo -e "Mensagem não categorizada: {TEXTO}33[41;33;1m$*{TEXTO}33[m"; return;;
esac
shift
if [ "$1" == "DEBUG-" ]; then
set -x # Liga Debug de tudo.
trap read DEBUG # Aguarda comando do usuário [ENTER] para prosseguir.
shift
fi
if [ "$1" == "DEBUG+" ]; then
set +x # Desliga Debug de tudo.
trap "" DEBUG # Desativa necessidade do [ENTER] para prosseguir.
shift
fi
echo -e "$prefixo"
# Recebe parâmetros com os erros.
# 1 - Nível do erro.
# 1 - Mensagens genéricas de localização ("Estou neste local")
# 2 - Mensagens para localizar fluxo ("Entrei no loop")
# 3 - Mensagens com conteúdo de variáveis importantes.
# 4 - Mensagens com conteúdo de variáveis secundárias.
# 5 - Mensagens de conteúdo CRÍTICO e possíveis erros fatais.
# 2 - A sua mensagem digitada na linha do script.
# Você pode digitar várias mensagens.
# Esteja ciente que a saída do Debug irá mostrar todos juntas.
}
#-----------------------------------------------------------------------------#
#FIM >>> function Debug() RETORNA: NADA.
#-----------------------------------------------------------------------------#
function FN_control_c()
{
DEBUG=9
set +x
clear
echo
echo "#################################################"
echo "## Encerrando o DAEMON $(basename "$0") !!!! "
echo "#################################################"
echo
# Preciso gerar o arquivo de trava só para os serviços rodando.
DEBUG=0 # Se quiser saber o que está sendo encerrado deixe com 9.
# Se quiser apagar arquivos, aqui deve receber a função ou comandos.
if [ -f ${FILE_STOP_LOOP_DISCADOR} ]; then
rm ${FILE_STOP_LOOP_DISCADOR}
fi
exit 0
}
#-----------------------------------------------------------------------------#
# FIM da Área reservada às funções do script.
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
# Quando quiser encerrar o programa, pressione CTRL+C
#-----------------------------------------------------------------------------#
trap FN_control_c $USER_INTERRUPT TERM INT HUP SIGINT SIGTERM
#-----------------------------------------------------------------------------#
# Não está funcionando. Funções estão quase 100% preparadas.
# Deveremos ter 2 processos em while.
# Abaixo apenas uns exemplos de uso.
# Preciso agora da lógica, sequência escrita.
# Qual a primeira coisa a ser feita ? Qual comando ?
# Está faltando alguma função que ainda não está lá em cima ?
##############################################################################
QT_PORTAS=$(TestaPortas) # Retorna as portas.
Minha_Conexao=$(TestaConexao) # Recebe retorno positivo ou negativo.
1- Renovar arquivo de log.
2- Medir tempo médio que costuma perder a conexão.
3- Cutucar a conexão para evitar que fique Down por inatividade.
4- Viva o Linux kkk
[quote]
REFORÇANDO:
===========
na linha 73 já tá "modem não respondendo" daí quando tenta a 3a vez que não consegue conexão executa o pppd /dev/ttyUSB2, daí fica nesse loop, encerrando pppd, tentando conexão, não consegue, inicia pppd de novo, não consegue, daí fica pra sempre, mas se eu finalizo o discador, executo pppd /dev/ttyUSB2, aguardo os mesmos segundos que o script, depois tento discar, funciona, ou seja, to fazendo a mesma coisa que o script, só que ele mata o pppd disca e não consegue, eu faço exatamente a mesma coisa que ele e consigo conexão, é aí que nun entra na minha cabeça, se eu consigo ele tmb tinha que conseguir.
Preciso saber todas as fases do discador. Conexão e desconexão. Quais scripts fazem esta tarefa e seus comandos.
21. Re: script pppd
lucasdonausa Linux Mint
Post recolhido
Enviado em 02/05/2012 - 09:11h
Acho que é problema com o próprio modem, pois, nem resetar ele por comando AT eu consigo. Acho que vou entrar em contato com o fabricante e ver alguma coisa, se tem algum firmware de atualização ou algo parecido.
22. Re: script pppd
AprendiNoLinuxusa Ubuntu
Post recolhido
Enviado em 02/05/2012 - 09:43h
lucasdona escreveu:
Acho que é problema com o próprio modem, pois, nem resetar ele por comando AT eu consigo. Acho que vou entrar em contato com o fabricante e ver alguma coisa, se tem algum firmware de atualização ou algo parecido.
ok. Me avisa então para ver se vamos continuar desenvolvendo o script ou não. ;)
Tá na ponta da agulha é só vc me retornar o solicitado.
Usamos cookies essenciais para manter o site funcionando e Google Analytics para métricas de audiência. Cookies de anúncios só serão carregados se você permitir.