shell-script-pt
[Top][All Lists]
Advanced

[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!.
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]