Infra - Linux
Como Fazer o seu servidor Linux enviar avisos em seu celular Claro sem custo
Este documento permite que o servidor linux envie torpedos para celulares da operadora claro. Assim permitindo a notificação no celular do administrador do sistema sobre o status de determinadas tarefa. Agora o melhor de tudo, é que este serviço é gratuito!
por Alessandro de Oliveira FariaINTRODUÇÃO:
Ao acessar a página de envio de TorpedoWeb da Claro, constatei que o serviço é gratuito. Com isto imaginei em criar um mecanismo onde os campos da página seriam preenchido e o botão submit fosse acionado. Foi neste momento em que tive a idéia de montar a string http gerada pelo botão submit. Neste tutorial, faremos o envio em shell-stript e também em C++. Em ambos os casos, chamaremos o navegador em modo texto (lynx) usando como endereço a string criada pelo nosso programa.
FUNCIONAMENTO:
Ao acessar http://www2.claro.com.br/torpedoweb/popuph.htm, teremos a tela abaixo:
Para enviar a mensagem, devemos preencher os campos obrigatório: DDD e Numero do Telefone destinatário, o nome do remetente e a mensagem. Reparem que o numero de caracteres disponíveis vão decrementando durante a digitação. Veja o exemplo abaixo:
Quando pressionamos o botão enviar, a seguinte string dever ser gerada para o browser:
http://www2.claro.com.br/torpedoweb/popup_senderJava.asp?ddd_para=17&telefone_para=91138154&nome_de=Cabelo&
ddd_de=&telefone_de=&msg=Prezado+FABIO:+Viva+o+Linux!&caract=98
Para enviar mensagens na linha de comando, basta executar o comando abaixo:
[root@p233 /]# lynx -dump -accept_all_cookies “http://www2.claro.com.br/torpedoweb/popup_senderJava.asp?ddd_para=17&telefone_para=91138154&nome_de=Cabelo &ddd_de=&telefone_de=&msg=Prezado+FABIO:+Viva+o+Linux!&caract=98”
CRIANDO O PROGRAMA EM C++:
Este programa gera a string a partir dos parametros recebidos. E executa o navegador lynx através do comando system. O motivo de desevolver isto em C, é a possibilidade de implementarmos mensagem em rotina e/ou programas já prontos. Por exemplo: o meu servidor de banco de dados firebird foi recompilado para enviar torpedos ao meu celular quando houver mais de 3 tentativas de login como SYSDBA sem sucesso.
Segue logo abaixo o codigo em C++ para enviar o torpedo:
#include <iostream> #include <fstream> #include <strstream> #include <string> #include <sys/io.h> using namespace std; extern char **environ; void executa(string lComando) { system(lComando.c_str()); } string IntToString(int Cnumero) { strstream xx; xx<<Cnumero; xx<< std::ends; return xx.str(); } string Claro(string mDDD,string mNumero,string mNome,string mMSG) { string mRet; int i,limite,usado; limite=135; usado = mNome.size()+mMSG.size(); std::cout<<"Caract:"<<usado<<std::endl; limite=limite-usado; mRet="lynx -dump -accept_all_cookies \42"; mRet=mRet+"http://www2.claro.com.br/torpedoweb/popup_senderJava.asp?ddd_para="; mRet=mRet+mDDD+"&telefone_para="+mNumero+"&nome_de="+mNome; mRet=mRet+"&ddd_de=&telefone_de=&msg="+mMSG+"&caract="+IntToString(limite)+"\42"; return mRet; } int main( int argc, char** argv) { string lDDD,lNumero,lNome, lMSG; int i; std::cout << " _ _ ___ _____ _ _____ ___ ___ _ _ ___ _ ___ ___ ___ _ " << std::endl; std::cout << "| \\| | __|_ _(_) |_ _| __/ __| \\| |/ _ \\| | / _ \\ / __|_ _| /_\\ " << std::endl; std::cout << "| .` | _| | | | | | | | _| (__| .` | (_) | |_| (_) | (_ || | / _ \\ " << std::endl; std::cout << "|_|\\_|___| |_| |_| |_| |___\\___|_|\\_|\\___/|____\\___/ \\___|___/_/ \\_\\" << std::endl; std::cout<<std::endl; lDDD=argv[1]; std::cout<<"DDD...:"<<lDDD<<std::endl; lNumero=argv[2]; std::cout<<"NUMERO:"<<lNumero<<std::endl; lNome=argv[3]; std::cout<<"Nome..:"<<lNome<<std::endl; replace(lNome.begin(),lNome.end()," ","+"); lMSG=argv[4]; std::cout<<"MSG...:"<<lMSG<<std::endl; replace(lMSG.begin(),lMSG.end()," ","+"); executa(Claro(lDDD,lNumero,lNome,lMSG)); return 0; }
Para compilar este programina, siga os seguinte passo:
[root@p233 torpedo]# g++ claro.cpp -o torpedoClaro -Wno-deprecated
Com o comando acima, acabamos de gera um binario com o nome torpedoClaro. Para enviar a mensagem, devemos digita como parâmetros o DDD, Numero Destino, Rementete a Mensagem. Veja o exemplo:
[root@p233 torpedo]# ./torpedoClaro 17 91138154 "Serv.Proxy" "AVG: Nova atualizacao disponível." _ _ ___ _____ _ _____ ___ ___ _ _ ___ _ ___ ___ ___ _ | \| | __|_ _(_) |_ _| __/ __| \| |/ _ \| | / _ \ / __|_ _| /_| .` | _| | | | | | | | _| (__| .` | (_) | |_| (_) | (_ || | / _ |_|\_|___| |_| |_| |_| |___\___|_|\_|\___/|____\___/ \___|___/_/ \_ DDD...:17 NUMERO:91138154 Nome..:Serv.Proxy MSG...:AVG: Nova atualizacao disponível. Caract:43 Envio Ok. fl_enviado=True 4/24/2004 3:00:04 PM,True Variáveis limpas [root@p233 torpedo]#
Vale a pena ressaltar, que existem maneiras mais eficientes de elaborar o programa acima. Portanto este exemplo é apenas para fundamentar o conceito/funcionamento do envio.
Agora é sua imaginação que manda, podemos incorporar esta rotina em um programa. Como agenda mensagem no crontab e também incorpora-lo em um script.
CRIANDO O PROGRAMA EM SHELL-SCRIPT:
Para quem não tem o compilado C++ instalado ou não é chegado em desenvolvimento em C++, segue abaixo a versão em Shell-Script.
Criando o script:
[root@p233 torpedo]# vi torpedoClaro if [ "$4" ] ; then ddd="$1" numero="$2" remetente=`echo "$3"| sed "s| |+|g;s|&|%26|g"` msg=`echo "$4"| sed "s| |+|g;s|&|%26|g"` echo "DDD......: $ddd" echo "Celular..: $numero" echo "Remetente: $remetente" echo "MSG......: $msg" echo "Status...: Enviando mensagem..." URL="http://www2.claro.com.br/torpedoweb/popup_senderJava.asp" parametro= `echo "?ddd_para=$ddd&telefone_para=$numero&nome_de=$remetente&ddd_de=& telefone_de=&msg=$msg&caract=0"` lynx -dump -accept_all_cookies "$URL$parametro" else echo "uso: torpedoClaro ddd numero-destino nome-remetente mensagem" fi
Pronto o mesmo programa, só que em Shell, para testa-lo digite:
[root@p233 torpedo]# torpedoClaro uso: torpedoClaro ddd numero-destino nome-remetente mensagem [root@p233 torpedo]# torpedoClaro 17 91138154 "Serv.Proxy" "AVG: Nova atualização disponível." DDD......: 17 Celular..: 91138154 Remetente: Serv.Proxy MSG......: AVG:+Nova+atualização+disponível. Status...: Enviando mensagem... Envio Ok. fl_enviado=True 4/24/2004 3:10:27 PM,True Variáveis limpas [root@p233 torpedo]#
Para economizar tempo, disponibilizeis os 2 fontes para download:
[root@p233 torpedo]# wget http://www.netitec.com.br/download/torpedoClaro
[root@p233 torpedo]# wget http://www.netitec.com.br/download/claro.cpp
O funcionamento é bem simples mas de grande utilidade. Acho que as operadoras Tim e Oi possuem este recurso de torpedoWeb. Com as devida modificações deve funcionar.
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware