[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] envio de SMS(TESS)- integracao java/bash
From: |
Herb Penguin |
Subject: |
Re: [shell-script] envio de SMS(TESS)- integracao java/bash |
Date: |
Thu, 5 Sep 2002 20:34:55 -0200 (FNT) |
Hey!
Bom você pode usar o netcat para isso...
Um bom exemplo que vi foi o "Torpedo" criado pelo Meleu e pode ser
perfeitamente adaptado para o que você deseja. So um pouquinho de
esforço...
Abraços
Herb Penguin
=======================================================================
#!/bin/bash
#
# ******************************************************************
# * Script para enviar Mensagens de Texto para telefones celulares *
# * (Movistar Torpedo) *
# ******************************************************************
# http://meleu.da.ru
# meleu <address@hidden>
#
# -> ATENÇÃO!: este script usa o netcat, se você não tem executável
# o script não funcionará. O netcat pode ser adquirido
# em http://www.atstake.com/research/tools
#
# -> ATENÇÃO!: este script só envia mensagens para celulares que têm
# como operadora a Telefonica Celular (RJ, ES e RS).
#
#
# Algumas explicações sobre o script:
#
# + Quer saber mais sobre getopts? manpage do bash;
#
# + A mensagem não pode conter caracter nova linha;
#
# + Use este script com o parâmetro -h que pode ser bem esclarecedor;
#
# + A linha de comando "nc -w 3 ..." faz o netcat esperar por 3
# segundos depois que a entrada padrão é fechada (quando é enviado
# um EOF). Mais informações sobre o uso do netcat no README que vem
# no pacote dele (ver URL acima);
#
# + Se você entrar com dados inválidos pode acontecer coisas esquisitas.
# Eu não fiz nada pra verificar a validade dos dados. Portanto se quer
# que isto funcione direito entre com dados válidos.
#
# + OBSERVAÇÕES SOBRE A AGENDA:
# -> O nome padrão é "agenda.tel" e deve estar no mesmo diretório
# do script, se quiser que seja diferente mude a variável FILE;
# -> Linhas QUE COMEÇAM com o caractere '#' são consideradas
# comentários, linhas que tenham o caractere '#' em qualquer
# posição que não seja a primeira da linha NÃO SÃO CONSIDERADAS
# COMENTÁRIOS;
# -> A agenda é composta de 3 campos separados por TAB, na ordem
# Nome, Prefixo e Telefone
# -> "Nome" pode conter espaços, mas se quiser passar um nome com
# espaços como parâmetro você deve usar aspas,
# ex.: -a "nome com espaco";
# -> Em caso de nomes iguais, a primeira ocorrência encontrada
# no arquivo é que será usada.
# -> Copie o trecho abaixo nas áreas indicadas e cole em um
# arquivo e nomeie-o como "agenda.tel" no mesmo diretório onde
# você irá usar o script (OS CARACTERES '#' FAZEM PARTE DO TRECHO!)
#
# -----[ COMEÇA AQUI ]----- #
#######################
# Agenda de telefones #
#######################
#
# -> Atenção!: Separe os campos com TAB sempre!
#
# Use da seguinte forma:
# Nome PREFIXO TELEFONE
#
# Exemplo:
# lampiao 12 12345678
# maria bonita 87 87654321
# -----[ TERMINA AQUI ]----- #
#
#
# Agradecimentos:
# -> Telefonica Celular: por permitir o envio de Mensagens de Texto pela
# Web totalmente grátis;
# -> Pablo <address@hidden>: por me mostrar como é o pacote de
# envio de Mensagens de Texto pela Web;
# -> Minduin, K-rol e Dotô: por aceitarem usar seus telefones como
# cobaias; ;-)
# -> Uns caras do #debian-br (irc.linux.org): por sugerirem que eu
# fizesse este script lendo parâmetros na linha de comando, e isto
# me levou a conhecer o comando "getopts", muito útil por sinal!
#
#
# Espero que lhe seja útil este script. Pra mim é bastante útil, pois
# na minha casa só tem uma linha telefônica e quando quero mandar uma
# mensagem pra alguém (que tenha celular com suporte a Mensagens de Texto)
# é só mandar. :-)
#
# Aproveite!
#
FILE='agenda.tel'
while getopts 'P:T:n:p:t:m:a:lh' OPCAO; do
case $OPCAO in
P) DPRE="$OPTARG" ;;
T) DTEL="$OPTARG" ;;
n) NOME="$OPTARG" ;;
p) RPRE="$OPTARG" ;;
t) RTEL="$OPTARG" ;;
m) MSG="$OPTARG" ;;
a) AGENDA=$(grep -v "^#" $FILE |grep -i "$OPTARG") || {
echo "Nenhuma entrada para \"$OPTARG\" em $FILE !"
exit 1
}
# Uso/desuso de aspas faz muita diferença! ;-)
PRETEL=$(echo "$AGENDA" |cut -s -f2-3)
DPRE=$(echo $PRETEL |cut -d' ' -f1)
DTEL=$(echo $PRETEL |cut -d' ' -f2)
;;
l) echo "
NOME PRE TELEFONE
------------------------"
egrep -v "^#|^$" $FILE
exit ;;
h) echo "
Uso: `basename $0` [opções]
As opções podem ser:
-P número número do prefixo do destinatário
-T número número do telefone do destinatário
-n string nome do remetente
-p número número do prefixo do remetente
-t número número do telefone do remetente
-m mensagem mensagem que será enviada, deve ter no máximo 150 caracteres
-a \"nome\" envia mensagem para \"nome\" (telefones em $FILE)
-h imprime esta mensagem e sai
"
exit ;;
*) exit 1 ;;
esac
done
[ -z "$DPRE" ] && read -p "Prefixo do destinatário: " DPRE
[ -z "$DTEL" ] && read -p "Telefone do destinatário: " DTEL
[ -z "$NOME" ] && read -p "Nome do remetente: " NOME
[ -z "$RPRE" ] && read -p "Prefixo do remetente: " RPRE
[ -z "$RTEL" ] && read -p "Telefone do remetente: " RTEL
[ -z "$MSG" ] && read -p "MENSAGEM (150 char's): " MSG
LISTA=$DPRE$DTEL
[ "$LISTA" ] || {
echo "Você precisa definir o telefone do destinatário!" ;
exit 1 ;
}
# --[ Escrevendo o pacote ]-- #
PACOTE="ListaTelefones=$LISTA\
%3B&TelDest=&FormSubmetido=0&\
OperadoraDes=$DPRE\
&NumTelefone=$DTEL\
&NomeOri=$NOME\
&OperadoraOri=$RPRE\
&TelefoneOri=$RTEL\
&mensagem=$MSG\
&Enviar.x=16&Enviar.y=5"
# --[ Fim do pacote ]-- #
# A variável LEN armazenará o tamanho do pacote.
LEN=$(echo `echo $PACOTE | wc -c`)
echo -e "\nEnviando mensagem..."
# --[ Início do netcat ]-- #
nc -w 3 www.movistaraviso.com.br 80 << _EOF_
POST /torpedo/enviaSms.cfm HTTP/1.0
Referer:
http://www.movistaraviso.com.br/torpedo/torpedo.cfm?id=4631460146&cod=156
HTTP/1.0
Connection: Keep-Alive
Host: www.movistaraviso.com.br
Cookie: CFID=140226; CFTOKEN=16281260
Content-type: application/x-www-form-urlencoded
Content-length: $LEN
$PACOTE
_EOF_
# --[ Fim do netcat ]-- #
# Verificando se o netcat retornou um erro ou não.
if [ $? -eq 0 ]; then
echo -e "\n\nO netcat não retornou nenhum erro\n"
else
echo -e "\n\n* * * Ocorreu um erro no netcat * * *\n"
fi
# - = < EOF > = - #
============= FIM DO SCRIPT =========================
On Wed, 4 Sep 2002, Andreyev Dia de Melo wrote:
> Fala Zeh!!
>
> nao serve...preciso de mandar por SMS(a TESS cobra
> pra enviar por e-m de celulares pre-pagos) e isso
> serah usado para receber alertas de servicos
> indisponiveis e os celulares seram os mais baratos
> possiveis(ou seja, TESS)...
>
> Alguma ideia?
> Tks!
> []s
>
>
> --
> --------------------------------------
> Andreyev Dias de Melo
> CPqD Telecom & IT Solutions
> Gerência de Infraestrutura e Produção
> Fone.: + 55 19 3705-6917
> Fax : + 55 19 3705-6113
> Cel. : + 55 19 9116-4539
> e-mail: address@hidden
> http://www.cpqd.com.br
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!.
>