Notificações Zabbix via WhatsApp (2.4 e 3.0) – UPDATE

275 Comments

Hoje em dia é muito difícil alguém que não mexa com Whatsapp certo? Quase todo mundo tem um Smartphone, por mais simples que seja, com o aplicativo instalado. E nada melhor do que estar conversando com seu grupo de amigos e receber uma mensagem do Zabbix, avisando que seu servidor caiu!!!

ATENÇÃO:

Infelizmente, este post foi bloqueado para comentários e também foi descontinuado. Motivo? Simples: O Whatsapp não possui uma API aberta e monitora para que aplicativo não tenha uso comercial. Constantes mudanças na forma de comunicação, a própria natureza do Yowsup, que tenta burlar o Whatsapp se passando por um celular, entre outros motivos, tornam a solução totalmente instável e obviamente não recomendada para ambientes de monitoramento de redes. Você não quer o risco de ter seu número bloqueado e descobrir apenas quando o Zabbix não te mandar a notificação que seu banco de dados caiu não é mesmo?

De qualquer forma, deixo o Post disponível para consultas, caso você queira se aventurar, além do endereço oficial do pacote Yowsup no GitHub:

https://github.com/tgalal/yowsup

Como solução “alternativa”, entre aspas, pois deve ser considerada a solução principal, eu sugiro a utilização do Telegram. Ele tem uma API aberta e fácil de se trabalhar, além de oferecer diversos recursos para desenvolvedores.

Na Zabbix Conference 2016, o Daniel Nasiloski, da Unirede, apresentou uma palestra sensacional sobre a integração Zabbix + Telegram, onde ele conseguiu apresentar ao vivo o envio de notificações e também a interação com o sistema, apenas respondendo via Telegram. Creio que o trabalho dele logo estará disponível no GitHub, então procurem a respeito, porque é possível!

Sucesso a todos! Abraço!

Brincadeiras a parte, essa é uma função bem interessante e pode ser um recurso a mais na hora de avisar os administradores sobre algum problema. Nesse artigo, vou mostrar como instalar e configurar o Yowsup, aplicativo para envio de mensagens Whatsapp.

Para o nosso exemplo, vou utilizar o CentOS 7, a mesma versão que uso em todos os artigos. Se você utiliza uma distro diferente, basta instalar as dependências (muitas vezes com o mesmo nome) e tudo deve funcionar normalmente. Se tiver algum problema, deixe seu comentário.

Instalando as dependências:

Para que o Yowsup funcione, alguns pacotes precisam ser instalados. Vamos ao comando:

# yum install python python-libs python-argparse python-dateutil python-py python-devel libjpeg-turbo libjpeg-turbo-devel -y

Baixando e instalando o Yowsup:

Vamos criar uma pasta para baixar o Yowsup:

# mkdir yowsup

# cd yowsup

# wget http://www.blogdomedeiros.com.br/wp-content/uploads/2015/06/yowsup-master.zip

Descompactamos o arquivo:

# unzip master.zip

# cd yowsup-master

Instalando o Yowsup:

Dentro da pasta descompactada, basta rodar o script de instalação com o argumento “install”:

# ./setup.py install

Ele vai compilar, baixar alguns pacotes e o ambiente vai estar pronto, inclusive com os executáveis nas respectivas pastas bin!

Ativando o Yowsup:

Como todos sabem (ou deveriam saber) o Whatsapp precisa de um número de telefone válido para o envio de mensagens. Eu recomendo você reservar um chip exclusivo para o seu Zabbix. No meu ambiente, tenho um modem 3G com chip, que utilizo para envio de SMS. No meu caso, estou utilizando o mesmo número do chip.

PS: Voce não precisa deixar nada conectado no seu servidor Zabbix. O Yowsup utiliza uma API para o envio das mensagens, basta só ativar o número.

Primeiro, vamos criar um arquivo de configuração que o Yowsup irá utilizar para ativar o número e enviar as mensagens. Vou deixar esse arquivo dentro da pasta onde o Zabbix está instalado:

# vi /etc/zabbix/zap.conf

cc=55                                   #Código do país
phone=551199990000   #Número de telefone com código de país e ddd
id=Zabbix Medeiros       #Invente uma ID
password=

A senha vamos deixar em branco por enquanto, pois vamos recebê-la quando ativarmos o Yowsup.

Agora vamos rodar o comando para solicitar o código de ativação. A mensagem que será retornada, está logo abaixo:

# yowsup-cli registration -r sms -c /etc/zabbix/zap.config

INFO:yowsup.common.http.warequest:{“status”:”sent”,”length”:6,”method”:”sms”,”retry_after”:1805}

status: sent
retry_after: 1805
length: 6
method: sms

Nesse momento, você recebeu um SMS no número, óbvio que você tem que ter o chip instalado em um celular para recebê-lo. Essa mensagem pode demorar até 20 minutos para chegar, então paciência.

Agora vamos utilizar o código recebido para ativar o número (o 001-001 é apenas um exemplo):

# yowsup-cli registration -R 001-001 -c /etc/zabbix/zap.config

INFO:yowsup.common.http.warequest:{“status”:”ok”,”login”:”554891308167″,”pw”:”29gnQdVaWtg8MJGnN95zj4Md7Ko=”,”type”:”new”,”expiration”:1466600857
,”kind”:”free”,”price”:”US$0.99″,”cost”:”0.99″,”currency”:”USD”,”price_expiration”:1438164915}

status: ok
kind: free
pw: 29gnQdVaWtg8MJGnN95z34Md7Ko=
price: US$0.99
price_expiration: 1438164915
currency: USD
cost: 0.99
expiration: 1466600857
login: 551199990000
type: new

Você agora recebeu as informações do Yowsup, com uma senha. Vamos copiar essa senha e inserir ela no arquivo /etc/zabbix/zap.config que criamos anteriormente:

# vi /etc/zabbix/zap.config

cc=55                                   #Código do país
phone=551199990000   #Número de telefone com código de país e ddd
id=Zabbix Medeiros       #Invente uma ID
password=29gnQdVaWtg8MJGnN95z34Md7Ko=

Salve o arquivo e pronto!

Instalando o python-axolotl:

Esse pacote é necessário desde o dia 31/03/2016, quando houveram alterações nos servidores do Whatsapp. Se você não instalar esse pacote, vai enfrentar o erro de not-authorized. Mãos a obra!

Crie uma nova pasta e baixe o pacote:

# mkdir axolotl

# cd axolotl

# wget https://github.com/tgalal/python-axolotl/archive/master.zip

Descompacte e entre na pasta:

# unzip master.zip

# cd python-axolotl

E rode o arquivo de instalação:

# python setup.py install

Testando o envio de mensagens:

Agora vamos enviar uma mensagem Whatsapp pela linha de comando. A sintaxe é essa:

# yowsup-cli demos -s NUMERO_DESTINO “MENSAGEM” -c ARQUIVO_CONFIG

Então vou enviar uma mensagem para o número fictício 554890001111 usando o nosso arquivo de configuração:

# yowsup-cli demos -s 554890001111 “Teste do Yowsup” -c /etc/zabbix/zap.config

Fiz o teste, meu celular piscou… e:

image

Diferenças entre o Zabbix 2.4 e 3.0

Na versão 2.4, o Zabbix enviava três parametros fixos para o script (Destino, Título e Mensagem), onde nós utilizavamos $1, $2 e $3. No Zabbix 3.0 podemos definir quais e quantos parametros utilizar, o que facilitou bastante. Abaixo seguem exemplos de script para as duas versões.

Por padrão, o Zabbix procura os scripts personalizados na pasta alertscripts. Essa pasta pode variar de caminho, dependendo do modo como você instalou (pacotes ou fontes) e da distribuição. Pra ter certeza, vamos fazer uma busca pela pasta:

# find / -name alertscripts

/usr/lib/zabbix/alertscripts

Criando o Script para o Zabbix 2.4:

Vamos criar o script dentro da pasta:

# vi /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh

… e preencher o seguinte conteúdo:

#!/bin/sh

sudo yowsup-cli demos -s $1 “$3” -c /etc/zabbix/zap.config

Ou caso você prefira um script mais mais elaborado, com registro de logs, crie o arquivo para os logs e dê as permissões:

# touch /var/log/whatsapp.log

# chown zabbix:zabbix /var/log/zabbix/whatsapp.log

E crie o script com o seguinte conteúdo:

#!/bin/bash
#
# Script para o YowSup para enviar mensagens via WhatsApp
LOGFILE=”/var/log/zabbix/whatsapp.log”
DEST=”$1″
SUB=”$2″
MSG=”$3″
YCONF=”/etc/zabbix/zap.config”
sudo yowsup-cli demos -c $YCONF -s “${DEST}” “${MSG}”
HORA=$(date +%d-%m-%Y-%H:%M:%S)
echo “$HORA – To: ‘${DEST}’ Text: ‘${MSG}'” >> ${LOGFILE}

Para finalizar, concedemos as permissões de execução:

# chmod +x /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh

Lembrando que o Zabbix 2.4 envia as seguintes variáveis ao script:

$1 -> Destino
$2 -> Assunto
$3 -> Mensagem

Como não usamos assunto em mensagens de Whatsapp, vamos utilizar apenas $1 e $3.

Vamos testar nosso script pra ver se ele executa da forma correta:

# cd /usr/lib/zabbix/alertscripts

# ./whatsapp_zabbix.sh 554890001111 ” ” “Mensagem de Teste do Script”

Perceba que omitimos a variável $2 utilizando aspas vazias. Você deve receber outra mensagem de teste 🙂

Configurando a mídia no Zabbix 2.4:

Em meu laboratório, já tenho o Zabbix configurado, monitorando um servidor que roda um serviço WEB (HTTPD). Também já tenho uma trigger, que dispara quando esse serviço cai, gerando um alerta no Dashboard.

O que eu quero fazer é criar uma ação, para quando esse trigger disparar, chamar o script e enviar uma mensagem no meu Whatsapp, avisando sobre o ocorrido. Mãos à obra!

Passo 1: Configurar o script:

Acesse o menu “Administração > Tipos de Mídia” e preencha dessa forma:

whats1

Clique em Adicionar.

Criando o Script para o Zabbix 3.0:

No caso do Zabbix 3.0, podemos criar o script:

# /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh

E preencher com o seguinte conteúdo:

#!/bin/bash
#
# Script para o YowSup para enviar mensagens via WhatsApp

LOGFILE=”/var/log/zabbix/whatsapp.log”
YCONF=”/etc/zabbix/zap.conf”

sudo yowsup-cli demos -c $YCONF -s “$1” “$2”
HORA=$(date +%d-%m-%Y-%H:%M:%S)
echo “$HORA – To: ‘$1’ Text: ‘$2′” >> ${LOGFILE}

Para finalizar, concedemos as permissões de execução:

# chmod +x /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh

Permissões ao usuário Zabbix:

Precisamos editar o arquivo sudoers, para que o usuário Zabbix possa rodar o script. Para isso:

Edite o arquivo /etc/sudoers ou use o comando visudo:

# visudo

Adicione o seguinte conteúdo:

# Permite o usuário zabbix rodar comandos sem solicitar senha

zabbix ALL=(ALL) NOPASSWD:/usr/bin/yowsup-cli

Defaults:zabbix !requiretty

Configurando a mídia no Zabbix 3.0:

No Zabbix 3.0 só há uma diferença entre a versão 2.4. Na versão mais recente é possível escolher os parâmetros que serão passados ao Script.

Você pode usar algumas macros:

{ALERT.SENDTO} -> O destinatário da mensagem;
{ALERT.SUBJECT} -> O assunto da mensagem;
{ALERT.MESSAGE} -> A mensagem da mensagem ;).

Acesse o menu “Administração” > “Tipos de Mídia”;

Clique no botão “Criar tipo de mídia” e preencha como abaixo:

wats2

 

Percebam que no caso do Zabbix 3.0, dizemos que o $1 é o destino e $2 é a mensagem.

Configurar mídia do usuário:

Também é muito similar nas duas versões:

Acesse o menu “Administração > Usuários”;

Do lado direito no menu drop-down, selecione “Usuários”;

Selecione o usuário desejado e depois a guia “Mídia”;

Clique em “Adicionar” e preencha:

whats2

Clique em “Adicionar” e depois em “Atualizar”.

Configurando a Ação no Zabbix 2.4 / 3.0:

Não há grandes diferenças nas telas de criação de ações entre a versão 2.4 e 3.0. Como já informei, já possuo um host monitorado, um item monitorado e um trigger, que dispara quando o serviço Web HTTPD na porta 80 deixa de funcionar. Caso tenha dúvidas em um desses passos, você pode ler outro artigos aqui no Blog para entender como cada um desses passos funciona.

Para configurar a ação, acesse o menu “Configuração > Ações”;

Clique no botão “Criar ação”;

Configure um nome, um assunto e a mensagem. Como é uma mensagem de Whatsapp, não vou preencher o assunto. Meu exemplo fica dessa forma:

whats3

Perceba que utilizei as variáveis do Zabbix, criando uma mensagem simples. Use sua criatividade 😉

Perceba também que marquei a caixa “Mensagem de recuperação”. Dessa forma o Zabbix envia uma nova mensagem quando o Status voltar para “OK”.

Agora vamos especificar uma condição. Eu apaguei as pré-definidas e criei apenas uma, escolhendo meu Trigger:

whats4

Agora acessamos a guia “Ações”;

Clicamos em “Nova” e preenchemos:

whats5

Pontos importantes sobre essa tela:

  • Em “Detalhes da Operação”, configurei apenas um passo (1 para 1). É possível “escalar” a ação, assunto para um próximo artigo;
  • Em “Tipo da Operação” escolhi “Enviar Mensagem”. Podemos executar comandos remotos como uma ação também;
  • Selecionei apenas “Enviar para Usuários”. É possível configurar o envio de mensagens para um grupo;
  • Em “Enviar apenas para”, usei a mídia “Whatsapp Zabbix”. Podemos mandar mensagens para várias mídias ao mesmo tempo;
  • E marcando a caixa “Mensagem Padrão”, ele usa a mensagem que configuramos na primeira guia. Podemos personalizar mensagens para cada mídia.

Clique em “Adicionar” e depois em “Adicionar” novamente.

Sua tela de ações deve estar assim:

whats6

 Testando a solução:

Agora vamos ferrar com nossa rede 🙂 (ambiente de testes hein.. por favor!)…

Vou parar o serviço Web do meu servidor monitorado, para forçar o disparo do Trigger e da ação. Meu Dashboard ficou assim:

whats7

Veja que no quadro “Últimos 20 incidentes” do lado direito na coluna “Ações” ele já disparou a ação de envio da mensagem!

Para conferir você pode acessar o menu “Administração > Auditoria” e no dropdown do lado direito, selecionar “Auditoria de Ações”:

whats8

E no celular, lá está o aviso!

image2

Quando o serviço ‘subir’ novamente, você deve receber a mensagem de recuperação com o STATUS de OK.

Bônus: Mensagens para um grupo do Whatsapp

Essa dúvida surgiu, mais umas pesquisas e aqui vai a solução:

1. Com um celular, crie o grupo no Whatsapp, adicionando os número que você deseja, mais o número  do Whats do Zabbix;

2. Agora vamos entrar em modo de escuta e debug no Yowsup para acharmos o ID do grupo criado:

# yowsup-cli demos -e -d -c /etc/zabbix/zap.config

3. Ele vai entrar em modo de escuta e escrever alguns logs. Quando ele parar, envie uma mensagem pelo celular ao grupo. Você vai receber um retorno parecido com esse:

DEBUG:yowsup.layers.logger.layer:rx:
<message participant=”554888287540@s.whatsapp.net” notify=”Medeiros” phash=”1:ct3EQyQJ” from=”554890001111-1435091727@g.us” offline=”0″ type=”text” id=”1435092427-8″ t=”1435092833″>
<body>
Teste
HEX:5669727573f09f9988
</body>
</message>

4. O conteúdo do campo “from” (554899025612-1435091727@g.us) é o ID do nosso grupo. Sabendo disso, vamos enviar uma mensagem ao grupo:

# yowsup-cli demos -s 554890001111-1435091727@g.us “Teste de grupo” -c /etc/zabbix/zap.config

5. Pronto. A mensagem já deve aparecer no grupo do Whats criado.

Como lição de casa, configure no Zabbix o envio de mensagem para o grupo. Não tem segredo, é só substituir o número do celular pelo ID do grupo. O mais difícil já foi feito! 😛

Conclusão:

Esse tutorial foi um pouco grande, mas acho que deu pra iluminar um pouco como funciona a integração Whatsapp + Zabbix. Também aprendemos como enviar mensagens para um grupo. Espero sinceramente que esse tutorial seja de grande valia para os profissionais e estudantes da ferramente Zabbix!

Dúvidas? Sugestões? Críticas? Entre em contato!

Um abraço forte e até a próxima!

Profissional com mais de 10 anos de experiência em redes, infra estrutura, ambientes Windows e Linux. Atualmente trabalha com tecnologias open source para monitoramento, backup, virtualização e segurança da informação.

Sobre o blog M2 Networks

Esse blog é mantido para ajudar profissionais de TI e clientes que querem conhecer melhor as ferramentas utilizadas pela M2 Networks.

Consulte-nos

Gostou do artigo e quer saber mais como podemos ajudar a manter a tecnologia alinhada ao seu negócio? Entre em contato e solicite a presença de um especialista.

Assine nossa newsletter

Mais artigos

Todos os posts
275 Comments
  1. Marcelo quando eu vou reinstalar os pacotes do yowsup com as atualizações
    da o seguinte erro
    [root@ip-177 master]# ./setup.py install
    -bash: ./setup.py: Permissão negada

    • faça o seguinte, de permissão no arquivo setup.py utilizando na pasta onde ele está:

      chmod 777 setup.py

  2. Gente!! consegui fazer funcionar no Ubuntu 14.02! ^^

    usem esse pacote do Yomsup!

    sudo wget https://github.com/tgalal/yowsup/archive/master.zip

    pra mim funcionou bonitão!!

    • Jefte
    • 31 de março de 2016

    Instalei o pacote axolotl – e continuo com o mesmo erro , será meu numero como spam ? refiz o registro , obtiver uma nova key , e ainda sim continua erro de Autenticacao !

    • Oi Jefte.

      Por favor, reinstale o Yowsup e use o pacote dos links do artigo. Eu atualizei os mesmos.

    • Rafael
    • 31 de março de 2016

    Bom dia Marcelo, primeiro parabéns pelo blog tem sido muito útil, eu já tinha instalado python-axolotl e mesmo assim estava com erro de Authentication Error: not-authorized, refiz todo o processo e mesmo assim continua com o erro, alguma sugestão?

    desde já obrigado pela atenção

    • Oi Rafael.

      Refaça a instalação com o pacote que eu disponibilizei no blog.. eu alterei os links de download. Adicionalmente, faça a ativação novamente.

        • Rafael
        • 31 de março de 2016

        refiz todo o processo baixando com o novo link, mudei o numero e persiste o erro, se o amigo tiver mais algum sugestão fico grato

      • Boa Tarde!

        Cara muito bom o tutorial!

        Segui o que vc falou a pouco mas continua dando o erro! Alguma ideia?

        “Authentication Error: not-authorized”

        • Deu algum erro na instalação do patch? Aqui funcionou de boa! Qual distro vc tá usando?

          • rsrs até formatei e tentei instalar o Yowsup mas retorna com o mesmo erro 🙁 alguma ideia?

            root@zabbix:/tmp/yowsup/yowsup-master# yowsup-cli demos -s 5511XXXXXXXX “Teste do Yowsup” -c /etc/zabbix/zap.config
            Authentication Error: not-authorized

          • deu nenhum erro! eu uso o Ubuntu server mais novo!

          • Os meus testes eu fiz no CentOS desse ultimo patch! Pode ser que no Ubuntu falte mais alguma coisa!

    • Carlos Gonçalves
    • 31 de março de 2016

    Olá Medeiros,

    Percebi agora que minhas mensagens pararam de ser enviadas dia 22/03 com o erro not-authorized

    Obrigado pelo apoio prestado a comunidade!

    • Olá Carlos.

      Já pesquisei e encontrei a solução. Fiz um update no artigo!

      Abraços

    • José Nilton
    • 29 de março de 2016

    Boa noite Marcelo,
    Já utilizei a opção -M mas continuo tendo o mesmo retorno: de “Não autorizado”.
    Já verifiquei e o número não está bloqueado no WhatsApp.
    O que pode ser?

    • Olá José Nilton
      Já pesquisei e encontrei a solução. Fiz um update no artigo!

      Abraços

  3. Alguém ai ja esta com funcionamento do yowsup?
    yowsup-cli v2.0.13
    Using yowsup v2.4.48

    • Olá Fernando
      Já pesquisei e encontrei a solução. Fiz um update no artigo!

      Abraços

    • Eduardo Azevedo
    • 29 de março de 2016

    Marcelo parabéns pelo site!!!! estou usando o ubuntu 14.04 e ainda persiste o erro de envio dando : Authentication Error: not-authorized , ate eu usando o -M tambem da o erro,alguma idéia do que seja? obrigado.

    • Olá Eduardo

      Já pesquisei e encontrei a solução. Fiz um update no artigo!

      Abraços

    • Igor Confetti
    • 24 de março de 2016

    Marcelo, Bom dia!
    Creio que tenho a solução para o erro, tem que mudar uns protocolos de autenticação no código, por favor me contate por email que lhe passo meu skype, caso queira, claro!
    igor_confetti@hotmail.com

  4. Marcelo bom dia,

    Estou tentando enviar msg via whatsapp e está me retornando o seguinte erro

    Authentication Error: not-authorized

    Verifiquei que eu não tinha adicionado o número aos meus contatos, o mesmo pode ter entrado como SPAM ?
    Qual seria a solução para esse problema ?

    Att.

      • Marcelo A
      • 28 de março de 2016

      Boa noite, André.

      Chegou a dar uma olhada na página do github? Tem muita gente com vários problemas lá que acho que conseguirão te ajudar mais facilmente. (https://github.com/tgalal/yowsup/issues)

      Estava com o mesmo problema, tive que solicitar um novo código e depois utilizar uma nova versão do yowsup.

      Não testei a do Medeiros, usei esta daqui e acabei de resolver o meu problema:
      https://github.com/jlguardi/yowsup/archive/master.zip

      Sds

      • Olá Marcelo, obrigado pelo retorno

        Já pesquisei e encontrei a solução. Fiz um update no artigo!

        Abraços

    • Daniel Neumann
    • 23 de março de 2016

    Bom dia!

    Estou configurando, mas esbarei em um problema que o Zabbix notifica que enviou corretamente, gera o log de envio, mas não chega a mensagem, hoje pela manhã dando continuidade para tentar descobrir o que estava acontecendo deparei com outro problema “Authentication Error: not-authorized”, já refiz o registro, atualizei o PW, mas mesmo assim continua retornando a mensagem de não autorizado, ontem estava normal, consiga enviar via terminal, alguém está com esse mesmo problema?

    • Olá Daniel, tudo bem?

      Tente enviar com a opção -M que desabilita a encriptação. Se persistir o erro é porque seu número foi bloqueado, aí você precisa aguardar 60 dias ou trocar de número. Uma coisa que você pode fazer é adicionar os contatos no Whatsapp para que ele não identifique suas mensagens como SPAM.

        • Daniel Neumann
        • 24 de março de 2016

        Muito Obrigado pelo retorno.

        • Igor Confetti
        • 23 de março de 2016

        Tenho o mesmo problema amigo, começou ontem, testei em tudo, até o meu código C# que fiz parou, creio que algo nos servidores mudaram.

        • Já fiz o update no artigo. Aguardem novas atualizações.

        • Igor Confetti
        • 23 de março de 2016

        Tenho o mesmo problema, começou ontem isso.

        • Já fiz o update no artigo. Aguardem novas atualizações.

        • William De Souza
        • 23 de março de 2016

        Acho que foi geral, na pagina do desenvolvedor tem muitas pessoas reclamando deste erro…

        • Já fiz o update no artigo. Aguardem novas atualizações.

        • davyd
        • 23 de março de 2016

        também estou com o mesmo problema, grande Medeiros nos ajude
        ao executar o comando “yowsup-cli demos -M -s 55xxxxxxxxxx “teste” -c /etc/zap.conf” trás a saída “Authentication Error: not-authorized”, estou usando ubuntu server 14.04 e ja atualizei tudo seguindo este tutorial, tentei uma 4 vezes com números nunca registrado e também já adicionei nos contatos para não identificar como spam

          • Whaters
          • 23 de março de 2016

          Quando envio msg , mesmo com numero novo Authentication Error: not-authorized mesmo problema !

          • Já fiz o update no artigo. Aguardem novas atualizações.

    • Louzeiro
    • 22 de março de 2016

    Olá, por gentileza help me.
    Estou usando o ubuntu, fiz todo o passo a passo de instalação e configuração, porém quando eu solicito o código de registro aparecem as mensagens abaixo:

    Traceback (most recent call last):
    File “/usr/local/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4.48’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 528, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 1401, in run_script
    exec(script_code, namespace, namespace)
    File “/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 158, in process

    File “/usr/local/lib/python2.7/dist-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 176, in handleRequestCode

    File “build/bdist.linux-x86_64/egg/yowsup/registration/coderequest.py”, line 46, in send
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 73, in send
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 111, in sendGetRequest
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 167, in sendRequest
    File “/usr/lib/python2.7/httplib.py”, line 979, in request
    self._send_request(method, url, body, headers)
    File “/usr/lib/python2.7/httplib.py”, line 1013, in _send_request
    self.endheaders(body)
    File “/usr/lib/python2.7/httplib.py”, line 975, in endheaders
    self._send_output(message_body)
    File “/usr/lib/python2.7/httplib.py”, line 835, in _send_output
    self.send(msg)
    File “/usr/lib/python2.7/httplib.py”, line 797, in send
    self.connect()
    File “/usr/lib/python2.7/httplib.py”, line 1178, in connect
    self.timeout, self.source_address)
    File “/usr/lib/python2.7/socket.py”, line 571, in create_connection
    raise err
    socket.error: [Errno 110] Connection timed out

    • Tudo bem?
      Esse tutorial é para CentOS. Para intalação em Debian e seus derivados, siga os passos desse artigo: http://www.blogdomedeiros.com.br/yowsup-whatsapp-no-debian-8/

      Boa sorte!

        • Louzeiro
        • 23 de março de 2016

        olá Marcelo, obg pelo retorno.
        Configurei conforme o link que vc indicou, deu certo :), recebi o Whatsapp code, cadastrei, porém na hora de enviar a mensagem deu Authentication Error: not-authorized
        Vc já disse que deu update no artigo, estou aguardando a atualização.
        Valeu man, ótimo trabalho.

  5. Marcelo boa tarde,

    Muito obrigado pela ajuda, notificações whatsapp funcionando.

    Att.
    André Luiz.

    • Show de bola André!

      Obrigado pelo feedback!

    • Hugo Thomaz
    • 19 de março de 2016

    Marcelo, sou novo no ambiente de monitoração com o zabbix, me tira uma dúvida, para eu deixa as messagem do whatszaap funcionando, preciso deixa um modem 3g funcionando no servidor do zabbix? Se sim, você tem algum tutorial?

    • Olá Hugo,

      Não é necessário. É uma API que usa a Internet para o envio de mensagens.

      Abraços

  6. Marcelo funcionou muito obrigado com coloquei também no /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh depois do demons antes do -s assim:

    #!/bin/sh

    sudo yowsup-cli demos -M -s $1 “$3” -c /etc/zabbix/zap.conf

    100% testado.

    • Show de bola Lucas!!!

      A opção -M tira a encriptação que pode dar pau em alguns ambientes! Valeu pelo feedback cara! Abraços e boa sorte aí!

  7. quando eu tento enviar msg para grupo fica assim…

    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    AttributeError: ‘NoneType’ object has no attribute ‘getChild’
    [root@ip-177 yowsup-master]# yowsup-cli demos -s 558181809268-1458302727@g.us “Teste de grupo” -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4.48’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 540, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 1462, in run_script
    exec_(script_code, namespace, namespace)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 41, in exec_
    exec(“””exec code in globs, locs”””)
    File “”, line 1, in
    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 280, in startSendClient

    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py”, line 54, in start
    File “build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py”, line 195, in loop
    File “/usr/lib64/python2.7/asyncore.py”, line 216, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.7/asyncore.py”, line 156, in poll
    read(obj)
    File “/usr/lib64/python2.7/asyncore.py”, line 87, in read
    obj.handle_error()
    File “/usr/lib64/python2.7/asyncore.py”, line 83, in read
    obj.handle_read_event()
    File “/usr/lib64/python2.7/asyncore.py”, line 449, in handle_read_event
    self.handle_read()
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 86, in handle_read
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 94, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 115, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 175, in
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    AttributeError: ‘NoneType’ object has no attribute ‘getChild’
    [root@ip-177 yowsup-master]# clear
    [root@ip-177 yowsup-master]#
    [root@ip-177 yowsup-master]# File “/usr/lib64/python2.7/asyncore.py”, line 449, in handle_read_event
    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 115, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 175, in
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    AttributeError: ‘NoneType’ object has no attribute ‘getChild’
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# self.handle_read()
    > File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 86, in handle_read
    -bash: erro de sintaxe próximo do `token’ não esperado `File’
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 94, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 115, in receive
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 175, in
    -bash: erro de sintaxe próximo do `token’ não esperado `newline’
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    -bash: File: comando não encontrado
    [root@ip-177 yowsup-master]# AttributeError: ‘NoneType’ object has no attribute ‘getChild’
    -bash: AttributeError:: comando não encontrado

    • Kelvin
    • 18 de março de 2016

    Segue apos utilizar o -M no comando

    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4.48’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 540, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 1462, in run_script
    exec_(script_code, namespace, namespace)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 41, in exec_
    exec(“””exec code in globs, locs”””)
    File “”, line 1, in
    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 280, in startSendClient

    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py”, line 54, in start
    File “build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py”, line 195, in loop
    File “/usr/lib64/python2.7/asyncore.py”, line 216, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.7/asyncore.py”, line 156, in poll
    read(obj)
    File “/usr/lib64/python2.7/asyncore.py”, line 87, in read
    obj.handle_error()
    File “/usr/lib64/python2.7/asyncore.py”, line 83, in read
    obj.handle_read_event()
    File “/usr/lib64/python2.7/asyncore.py”, line 446, in handle_read_event
    self.handle_connect_event()
    File “/usr/lib64/python2.7/asyncore.py”, line 454, in handle_connect_event
    raise socket.error(err, _strerror(err))
    socket.error: [Errno 111] Connection refused

    • Isso é no envio da mensagem? Qual distro você tá usando?

    • Kelvin
    • 18 de março de 2016

    Bom dia, Marcelo.

    Apos a atualização apresentou o erro abaixo, já atualizei todos os pacotes e mesmo assim ainda ocorre o erro, CentOS 7, Yowsup2.4.48, Pyhton2.7

    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4.48’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 540, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 1462, in run_script
    exec_(script_code, namespace, namespace)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 41, in exec_
    exec(“””exec code in globs, locs”””)
    File “”, line 1, in
    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 280, in startSendClient

    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py”, line 54, in start
    File “build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py”, line 195, in loop
    File “/usr/lib64/python2.7/asyncore.py”, line 216, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.7/asyncore.py”, line 156, in poll
    read(obj)
    File “/usr/lib64/python2.7/asyncore.py”, line 87, in read
    obj.handle_error()
    File “/usr/lib64/python2.7/asyncore.py”, line 83, in read
    obj.handle_read_event()
    File “/usr/lib64/python2.7/asyncore.py”, line 449, in handle_read_event
    self.handle_read()
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 86, in handle_read
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 94, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 115, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 175, in
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    AttributeError: ‘NoneType’ object has no attribute ‘getChild’

    • Olá! Tente desabilitar a encriptação utilizando o parametro -M no comando!

  8. Marcelo,

    Fiz toda instalação perfeitamente e registrei o numero perfeitamente.

    Porém quando vou enviar uma mensagem de teste me deparo com a seguinte mensagem.

    Authentication Error: not-authorized

    Já registrei novamente o numero para gerar uma outra senha e continua dando erro.

    Segue ativação do numero e meu conf


    root@SRVSCPMON:/etc/zabbix# yowsup-cli registration -R 886-687 -c /etc/zabbix/zap.conf
    INFO:yowsup.common.http.warequest:{"status":"ok","login":"559284161300","type":"existing","pw":"mc8YdCNNShY5btaEmppm3O1DiMg=","expiration":4444444444.0,"kind":"free","price":"US$0.99","cost":"0.99","currency":"USD","price_expiration":1461005924}

    status: ok
    kind: free
    pw: mc8YdCNNShY5btaEmppm3O1DiMg=
    price: US$0.99
    price_expiration: 1461005924
    currency: USD
    cost: 0.99
    expiration: 4444444444.0
    login: 559284161300
    type: existing
    root@SRVSCPMON:/etc/zabbix#


    cc=55 #Código do país
    phone=5592984161300 #Número de telefone com código de país e ddd
    id=ZabbixServer #Invente uma ID
    password=mc8YdCNNShY5btaEmppm3O1DiMg=

    O que pode está acontecendo??

    • Olá! Tente desabilitar a encriptação utilizando o parametro -M no comando!

    • Rafael
    • 17 de março de 2016

    Boa tarde.

    Realizei o procedimento com o script atualizado e consegui passar do erro de old_verison para registrar o numero. Agora ao enviar o teste para receber a mensagem. Estou com o seguinte erro.

    – Comando

    # yowsup-cli demos -s 55XXXXXXXXXXX ‘Teste do Yowsup’ -c /root/yowsup/yowsup-master/whatsapp.conf

    – Erro

    INFO:yowsup.layers.axolotl.layer:Axolotl layer is generating keys
    Traceback (most recent call last):
    File “/opt/rh/python27/root/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4.48’, ‘yowsup-cli’)
    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/pkg_resources.py”, line 540, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/pkg_resources.py”, line 1462, in run_script
    exec_(script_code, namespace, namespace)
    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/pkg_resources.py”, line 41, in exec_
    exec(“””exec code in globs, locs”””)
    File “”, line 1, in
    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process

    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/yowsup2-2.4.48-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 280, in startSendClient

    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py”, line 54, in start
    File “build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py”, line 195, in loop
    File “/opt/rh/python27/root/usr/lib64/python2.7/asyncore.py”, line 216, in loop
    poll_fun(timeout, map)
    File “/opt/rh/python27/root/usr/lib64/python2.7/asyncore.py”, line 156, in poll
    read(obj)
    File “/opt/rh/python27/root/usr/lib64/python2.7/asyncore.py”, line 87, in read
    obj.handle_error()
    File “/opt/rh/python27/root/usr/lib64/python2.7/asyncore.py”, line 83, in read
    obj.handle_read_event()
    File “/opt/rh/python27/root/usr/lib64/python2.7/asyncore.py”, line 449, in handle_read_event
    self.handle_read()
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 86, in handle_read
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 94, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 115, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 175, in
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 354, in onGetKeysResult
    File “/opt/rh/python27/root/usr/lib/python2.7/site-packages/python_axolotl-0.1.7-py2.7.egg/axolotl/sessionbuilder.py”, line 157, in processPreKeyBundle
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/store/sqlite/liteaxolotlstore.py”, line 17, in getIdentityKeyPair
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/store/sqlite/liteidentitykeystore.py”, line 31, in getIdentityKeyPair
    TypeError: ‘NoneType’ object is not iterable

    • Olá! Tente desabilitar a encriptação utilizando o parametro -M no comando!

    • Robson Luz
    • 16 de março de 2016

    Marcelo, tudo bem?
    Instalei a última versão do Yowsup, conforme esse artigo seu http://www.blogdomedeiros.com.br/yowsup-whatsapp-no-centos-6/, mas ainda estou recebendo a mensagem
    Status: Fail
    Reason: Old_Version
    Sabe como proceder?
    Agradeço desde já!

    • Olá Robson, tente usar o pacote disponibilizado no blog.

  9. Marcelo boa tarde,

    Estou com o mesmo problema do amigo Ricardo Mendes, já realizei esta integração outras vezes com sucesso, mas agora recebo o erro abaixo estou efetuando o download do yowsup no seguinte endereço. https://github.com/tgalal/yowsup, minha dúvida é teria outro lugar onde poderia baixar o yowsup atualizado ?
    Versão do yowsup é: yowsup-2.4.48

    INFO:yowsup.common.http.warequest:{“status”:”fail”,”reason”:”old_version”}

    status: fail
    reason: old_version

    Atenciosamente.
    André Luiz.

    • Olá Andre. Já atualizei o post com o arquivo corrigido!

    • Ricardo Mendes
    • 16 de março de 2016

    Marcelo excelente trabalho, essa ferramenta funciona ainda? Digo isso pois estou tentando receber o código de ativação, retorna a mensagem de versão antiga “old_version””
    Distro= CentOS 6.2

    yowsup-cli v2.0.9
    Using yowsup v2.2.79

    Obrigado.

    • Olá Ricardo. Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

    • Olá Ricardo tudo bem?

      Funciona sim, mas tem que baixar o pacote do Yowsup mais recente.

        • Robson Luz
        • 16 de março de 2016

        Marcelo, como faço pra atualizar o Yowsup?

    • souza
    • 15 de março de 2016

    Boa noite,

    Quando envio mensagem para um número, a mensagem é enviada normalmente. Mas quando envio para um grupo exibe o erro abaixo. CentOS 7

    Traceback (most recent call last):
    File “/opt/yowsup-master/yowsup-cli”, line 323, in
    if not parser.process():
    File “/opt/yowsup-master/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/opt/yowsup-master/yowsup-cli”, line 280, in startSendClient
    stack.start()
    File “/opt/yowsup-master/yowsup/demos/sendclient/stack.py”, line 54, in start
    self.stack.loop()
    File “/opt/yowsup-master/yowsup/stacks/yowstack.py”, line 195, in loop
    asyncore.loop(*args, **kwargs)
    File “/usr/lib64/python2.7/asyncore.py”, line 216, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.7/asyncore.py”, line 156, in poll
    read(obj)
    File “/usr/lib64/python2.7/asyncore.py”, line 87, in read
    obj.handle_error()
    File “/usr/lib64/python2.7/asyncore.py”, line 83, in read
    obj.handle_read_event()
    File “/usr/lib64/python2.7/asyncore.py”, line 449, in handle_read_event
    self.handle_read()
    File “/opt/yowsup-master/yowsup/layers/network/layer.py”, line 86, in handle_read
    self.receive(data)
    File “/opt/yowsup-master/yowsup/layers/network/layer.py”, line 94, in receive
    self.toUpper(data)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 59, in toUpper
    self.__upper.receive(data)
    File “/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    self.processReceived()
    File “/opt/yowsup-master/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    self.toUpper(oneMessageData)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 59, in toUpper
    self.__upper.receive(data)
    File “/opt/yowsup-master/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    self.toUpper(payload)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 59, in toUpper
    self.__upper.receive(data)
    File “/opt/yowsup-master/yowsup/layers/coder/layer.py”, line 35, in receive
    self.toUpper(node)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 59, in toUpper
    self.__upper.receive(data)
    File “/opt/yowsup-master/yowsup/layers/logger/layer.py”, line 14, in receive
    self.toUpper(data)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 59, in toUpper
    self.__upper.receive(data)
    File “/opt/yowsup-master/yowsup/layers/axolotl/layer.py”, line 115, in receive
    if not self.processIqRegistry(protocolTreeNode):
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 136, in processIqRegistry
    successClbk(protocolTreeNode, originalIq)
    File “/opt/yowsup-master/yowsup/layers/axolotl/layer.py”, line 175, in
    self._sendIq(entity, lambda a, b: self.onGetKeysResult(a, b, self.processPendingMessages), self.onGetKeysError)
    File “/opt/yowsup-master/yowsup/layers/axolotl/layer.py”, line 339, in onGetKeysResult
    entity = ResultGetKeysIqProtocolEntity.fromProtocolTreeNode(resultNode)
    File “/opt/yowsup-master/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 87, in fromProtocolTreeNode
    preKeyId = ResultGetKeysIqProtocolEntity._bytesToInt(preKeyNode.getChild(“id”).getData())
    AttributeError: ‘NoneType’ object has no attribute ‘getChild’

    • Olá! Tente desabilitar a encriptação utilizando o parametro -M no comando!

        • Souza
        • 19 de março de 2016

        Obrigado Marcelo, Resolvido!!!

    • Carlos Santos
    • 15 de março de 2016

    yowsup.common.http.warequest:{“status”:”fail”,”reason”:”old_version”}

    status: fail
    reason: old_version

    nao consigo registrar !!!

    • Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

    • Diego Henrique
    • 15 de março de 2016

    Marcelo Medeiros estou tendo o mesmo problema relatado pelo Daniel.

    INFO:yowsup.common.http.warequest:{“status”:”fail”,”reason”:”old_version”}

    status: fail
    reason: old_version

    Existe alguma solução para isso?

    • Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

    • Daniel
    • 8 de março de 2016

    Estou com um problema quando vou ativar o Yowsup, no qual ocorre o erro abaixo:
    yowsup-cli registration -r sms -c /etc/zabbix/zap.conf
    INFO:yowsup.common.http.warequest:{“status”:”fail”,”reason”:”old_version”}

    status: fail
    reason: old_version

    Porém a versão é a última que tem no git, o que pode ser isso?

    • Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

      • Carlos Augusto
      • 15 de março de 2016

      Também estou como o mesmo problema na hora da ativação. Alguém conseguiu Solucionar?

      INFO:yowsup.common.http.warequest:{“status”:”fail”,”reason”:”old_version”}

      • Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

      • Eudes
      • 9 de março de 2016

      Estou com esse mesmo problema, se alguém poder ajudar

      • Eu já corrigi o pacote e disponibilizei aqui no blog. Use esse mais atual que vai passar do old_version.

    • Abel João Lopes Junior
    • 4 de março de 2016

    # yum install libjpeg-turbo libjpeg-turbo-devel

    • Rafael
    • 3 de março de 2016

    Boa noite Marcelo,

    Parabéns pelo tuto. Fiz td conforme ensinado e consigo enviar pelo terminal msg normalmente e gera log.. etc…

    O Zabbix processa como enviado só q não chega a msg. Já olhei o Sudoers e está ok… Não sei mais o que fazer…
    Defaults requiretty
    Defaults !visiblepw
    Defaults always_set_home
    Defaults env_reset
    Defaults env_keep = “COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS”
    Defaults env_keep += “MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”
    Defaults env_keep += “LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”
    Defaults env_keep += “LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”
    Defaults env_keep += “LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY”
    Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
    root ALL=(ALL) ALL
    zabbix ALL=NOPASSWD: ALL
    Defaults:zabbix !requiretty

    Veja como está tem algum erro?

    Obrigado!!!

      • Rafael
      • 4 de março de 2016

      Descobri o que era.

      Na versão 3.0 vc tem q por os atributos!

      Atributos do tipo de mídia:

      Parâmetro Descrição
      Nome Nome do tipo de mídia.
      Tipo Selecione Script.
      Nome do Script Informe o nome do script a ser executado.
      Parâmetros do script Adicione parâmetros de linha de comando ao script.
      As macros {ALERT.SENDTO}, {ALERT.SUBJECT} e {ALERT.MESSAGE} são suportadas nos parâmetros do script.
      Suportado desde o Zabbix 3.0.

      • Ótimo Rafael. Esse comentário é de grande ajuda, pois há diferenças entre a versão 2.4 e a 3.0. Obrigado!

    • Elizeu Freitas
    • 28 de fevereiro de 2016

    Marcelo, estou comentando aqui pois no post da Instalação do Yowsup os comentários estão desativados.

    No meu caso, ao executar, “sudo ./setup.py install” em yowsup-master retornou o erro abaixo, e não consegui resolver.

    Exception TypeError: TypeError(“‘NoneType’ object does not support item deletion”,) in ignored

    Poderia me ajudar?

      • Elizeu Freitas
      • 28 de fevereiro de 2016

      Opa Marcelo, desculpa a falta de atenção… Olhei nos comentários e encontrei a correção para esse problema.

      Instalação do pacote: libjpeg-dev

      🙂

    • Eduardo
    • 27 de fevereiro de 2016

    Estou com o erro abaixo, já revisei todos os passos e ainda não consegui sucesso.
    Traceback (most recent call last):
    File “/yowsup/yowsup-2.4.48/yowsup-cli”, line 323, in
    if not parser.process():
    File “/yowsup/yowsup-2.4.48/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/yowsup/yowsup-2.4.48/yowsup-cli”, line 279, in startSendClient
    not self.args[“unmoxie”])
    File “/yowsup/yowsup-2.4.48/yowsup/demos/sendclient/stack.py”, line 24, in __init__
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/yowsup/yowsup-2.4.48/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/yowsup/yowsup-2.4.48/yowsup/layers/axolotl/layer.py”, line 2, in
    from .protocolentities import SetKeysIqProtocolEntity
    File “/yowsup/yowsup-2.4.48/yowsup/layers/axolotl/protocolentities/__init__.py”, line 3, in
    from .iq_keys_get_result import ResultGetKeysIqProtocolEntity
    File “/yowsup/yowsup-2.4.48/yowsup/layers/axolotl/protocolentities/iq_keys_get_result.py”, line 3, in
    from axolotl.state.prekeybundle import PreKeyBundle
    ImportError: No module named axolotl.state.prekeybundle

    • Olá! Qual distribuição do Linux e versão?

        • Eduardo
        • 4 de março de 2016

        Olá Marcelo, tudo certo, funcionou.

        No reboot do sistema não subiu a linha scl enable python27 bash, acho que tem bastante gente com esse erro. É só executar a linha novamente.

        Abs,

        • Beleza Eduardo! Obrigado pelo feedback! Abraços

    • Sara Valongo
    • 23 de fevereiro de 2016

    Oi, estou usando o Debian 7.
    Yowsup2

    • Oi Sara! Eu fiz um post da instalação do Yowsup no Debian 8. Dá uma olhada nele pra ver se você não pulou nenhuma dependência. As configurações são bem diferentes para Debian e CentOS!

      Segue link: http://www.blogdomedeiros.com.br/yowsup-whatsapp-no-debian-8/

        • Sara Valongo
        • 23 de fevereiro de 2016

        Eu tinha olhado lá nessa documentação. Recebi o código pelo celular rodei o comando com o código. Mais na hora de enviar a msg para o numero com whatsapp ele da esse erro que informei.
        Por isso nao estou entendendo porque ele nao conclui essa etapa.

        • Sara, tente usar a opção -M na hora de enviar a mensagem.

            • Sara Valongo
            • 26 de fevereiro de 2016

            Eu refiz toda a configuração e deu essa msg

            ./yowsup-cli demos -s 5581XXXXXXX “teste” -c /etc/zabbix/whatsapp.conf
            Authentication Error: not-authorized

          • Oi Sara!

            Nesse caso, repita o processo de ativação do Yowsup!

            • Sara Valongo
            • 26 de fevereiro de 2016

            Agora esta dondo:

            Authentication Error: not-authorized

          • Oi Sara!

            Nesse caso, repita o processo de ativação do Yow

    • Sara Valongo
    • 23 de fevereiro de 2016

    Ola será que pode me ajudar, vi nos comentarios sobre esse erro mais nao sei qual dependência que esta faltando.

    root@zabbix:/# yowsup-cli demos -s 5581xxxxxxxx “Mensagem de teste.” -c /etc/zabbix/whatsapp.conf
    Traceback (most recent call last):
    File “/usr/local/bin/yowsup-cli”, line 323, in
    if not parser.process():
    File “/usr/local/bin/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/usr/local/bin/yowsup-cli”, line 279, in startSendClient
    not self.args[“unmoxie”])
    File “/usr/local/lib/python2.7/dist-packages/yowsup/demos/sendclient/stack.py”, line 24, in __init__
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/local/lib/python2.7/dist-packages/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/local/lib/python2.7/dist-packages/yowsup/layers/axolotl/layer.py”, line 3, in
    from axolotl.util.keyhelper import KeyHelper
    File “/usr/local/lib/python2.7/dist-packages/axolotl/util/keyhelper.py”, line 3, in
    from ..identitykeypair import IdentityKeyPair
    File “/usr/local/lib/python2.7/dist-packages/axolotl/identitykeypair.py”, line 1, in
    from .state.storageprotos import IdentityKeyPairStructure
    File “/usr/local/lib/python2.7/dist-packages/axolotl/state/storageprotos.py”, line 9, in
    from google.protobuf import symbol_database as _symbol_database
    ImportError: cannot import name symbol_database

    • Oi Sara tudo bem?

      Você instalou as dependências conforme o tutorial? Qual distribuição você está usando e qual versão do Yowsup?

      Abraços!

    • EVANDRO RODRIGUES
    • 22 de fevereiro de 2016

    Quero lhe ajuda sua.

    • EVANDRO RODRIGUES
    • 22 de fevereiro de 2016

    Marcelo cara você está de parabens, esse seu blog esta mim ajudando muito em meu TCC.
    Queria lhe parabenizar por essa ideia genial….

    nota 10.

    • Olá Evandro. Que bom que os artigos estão te ajudando! Boa sorte! Abraços!

    • Lucas
    • 19 de fevereiro de 2016

    Marcelo, muito bom o tutorial, fiz em um ambiente de teste e funcionou perfeitamente.
    Precisei instalar o Development tools (# yum groupinstall “Development tools”) para instalar o yowsup e ficar atento nas configurações dos scripts alterando os caminhos para o meu ambiente.
    No final tanto mensagem para usuários e mensagens para grupos funcionaram. Muito obrigado!!

    Utilizei CentOS 7 e Zabbix 2.4.3

    • Muito bom Lucas! Obrigado pelo retorno!
      Agora é só passar pro ambiente de produção e é só sucesso!

      Abraço

    • Jorge
    • 11 de fevereiro de 2016

    Meu funcionou perfeitamente porém alguns dias depois eu tentei adicionar mais um número do Dashboard e percebi que só tá enviando msg para o meu WhatsApp os números novos que eu cadastrei não funcionou… Dai fui no meu usuário e tente mudar o meu número nonqual está funcionando perfeito… Ele não muda… Continua enviando para o número velho. Sabe o que pode ser?

    • Olá Jorge tudo bem?

      Como está seu script? Será que você não colocou o seu número no script em vez de colocar as variáveis? Se puder manda ele aqui pra mim! Abraços!

    • Robson
    • 11 de fevereiro de 2016

    Muito legal esse esquema, porem estou com um problema
    na instalação apresenta este erro:
    ValueError: jpeg is required unless explicitly disabled using –disable-jpeg, aborting

    Não consegui ainda achar uma saida.

    • E aí Robson, tudo bem?
      Você instalou as dependencias conforme o artigo? Perceba que para uso em CentOS 6.x ou Debian, existem outros artigos com várias peculiaridades na instalação.

      Boa sorte!

    • Vagner
    • 29 de janeiro de 2016

    Marcelo!!!! cara me da um help..
    Traceback (most recent call last):
    File “/usr/local/bin/yowsup-cli”, line 323, in
    if not parser.process():
    File “/usr/local/bin/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/usr/local/bin/yowsup-cli”, line 279, in startSendClient
    not self.args[“unmoxie”])
    File “/usr/local/lib/python2.7/dist-packages/yowsup/demos/sendclient/stack.py”, line 24, in __init__
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/local/lib/python2.7/dist-packages/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/local/lib/python2.7/dist-packages/yowsup/layers/axolotl/layer.py”, line 3, in
    from axolotl.util.keyhelper import KeyHelper
    File “/usr/local/lib/python2.7/dist-packages/axolotl/util/keyhelper.py”, line 3, in
    from ..identitykeypair import IdentityKeyPair
    File “/usr/local/lib/python2.7/dist-packages/axolotl/identitykeypair.py”, line 1, in
    from .state.storageprotos import IdentityKeyPairStructure
    File “/usr/local/lib/python2.7/dist-packages/axolotl/state/storageprotos.py”, line 9, in
    from google.protobuf import symbol_database as _symbol_database
    ImportError: cannot import name symbol_database

    • Oi Vagner tudo bem?

      Esse tipo de erro acontece quando algum pacote não está instalado. Dá uma revisada no tutorial e veja se instalou o Development Tools!

      Abraço

    • Henrique
    • 29 de janeiro de 2016

    Cobra algum valor para o envio das mensagens ?

    • E aí Henrique, tudo bem?

      Não cobra nada, assim como o Whatsapp! Abraços!

    • Erick Duarte
    • 29 de janeiro de 2016

    O meu deu esse erro aqui

    [root@SiiT-Erick yowsup-master]# ./setup.py install
    File “./setup.py”, line 2
    from __future__ import print_function
    SyntaxError: future feature print_function is not defined

    Quando dei o comando para instalar as dependências ele não instalou o python-py, sera que é por isso ?

    • Se algo não instalou, pode sim gerar vários erros. O que aconteceu quando tentou instalar?

    • DAnilo
    • 26 de janeiro de 2016

    Mostra a mensagem quanto tento enviar:
    Authentication Error: not-authorized

    comando: yowsup-cli demos -s 5583987955416 “Teste do Yowsup” -c /etc/zabbix/whatsapp.conf

    gerei código e a senha normal.

    • Olá! Lembre-se que se esse chip que possui o número está em outro celular, com Whatsapp instalado, você perde a autorização no Zabbix. Tem que cadastrar outro número exclusivo.

    • Flávio
    • 23 de janeiro de 2016

    Olá Marcelo, primeiramente, parabéns pelo artigo.
    em segundo, estou com um problema ao enviar os alertas pelo zabbix.
    o script funciona perfeitamente.
    mas ao gerar o evento pelo zabbix não chega msg no celular.
    no log me retorna o seguinte:
    To: ‘k’ Text: ”

    Agradeco a atencao…

    Ambiente utilizado:
    Debian 7
    Zabbix 3.0.0
    Python 2.7

    • Olá. Seu script deve estar com algum erro de aspas ou espaços em branco. Poderia me retornar postando o script?

    • Eudes
    • 22 de janeiro de 2016

    Amigo quando dou o comando python ./setup.py install aparece o seguinte erro:
    Traceback (most recent call last):
    File “./setup.py”, line 3, in
    from setuptools import setup, find_packages
    ImportError: No module named setuptools

    Vc poderia me ajudar? Cara muito legal seus tutoriais show mesmo parabéns!!!

    • Olá! Qual versão do Python e do Linux você usa? Caso CentOS, chegou instalar o ‘Development Tools’?

        • Eudes
        • 27 de janeiro de 2016

        Amigo obrigado pelo retorno, eu consegui resolver instalando o python-setuptools só que aparece outro erro quando eu dou o comando:
        yowsup-cli registration -r sms -c /etc/zabbix/zap.config
        ocorre o seguinte erro:
        Traceback (most recent call last):
        File “/usr/local/bin/yowsup-cli”, line 4, in
        import pkg_resources
        File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 2707, in
        working_set.require(__requires__)
        File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 686, in require
        needed = self.resolve(parse_requirements(requirements))
        File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 584, in resolve
        raise DistributionNotFound(req)
        pkg_resources.DistributionNotFound: pillow

        Dados do meu Ambiente:
        Debian 7.9
        Python 2.7.3
        Zabbix 2.4

    • zadops
    • 13 de janeiro de 2016

    i’ve got this error message when trying to send a test message

    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 323, in
    if not parser.process():
    File “/usr/bin/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/usr/bin/yowsup-cli”, line 279, in startSendClient
    not self.args[“unmoxie”])
    File “/usr/lib/python2.6/site-packages/yowsup/demos/sendclient/stack.py”, line 24, in __init__
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup/layers/axolotl/layer.py”, line 15, in
    from axolotl.sessioncipher import SessionCipher
    File “build/bdist.linux-x86_64/egg/axolotl/sessioncipher.py”, line 3, in
    ImportError: cannot import name Counter

    do you know how to fix it?

    • Hello Zadops! Thanks for your visit!

      Please pay attention to your python version. Yowsup have a issue working with Python 2.6. You have to install version 2.7.

      Good luck 😉

    • Victor Aristides
    • 8 de janeiro de 2016

    Bom dia Medeiros.

    Consegui fazer todo o processo com sucesso, porém não sei aonde edito para enviar mensagem para o grupo..
    Já peguei a identificação necessária, mais qual seria o arquivo que deverá ser alterado ?

    Poderia informar, seria até bom acrescentar no post pois podendo ser facil mais da forma que está explicito fica duvidas em qual lugar realmente se deve alterar.

    • Não fez a lição de casa né Victor? rs

      Brincadeiras a parte, basta você editar no próprio Zabbix. Crie um usuário fictício que vai representar o grupo, crie uma mídia para ele e em vez do número de telefone, coloque o número do grupo. Faça o teste e me retorne ok?

      Abraço e boa sorte!

    • Diego Vieira
    • 30 de dezembro de 2015

    Mesmo seguindo esses passos ficou a mesma coisa. Aparece a notificação no log do script, aparece como enviada no zabbix mas nada de chegar no meu whatsapp.

    • Diego, realizei o procedimento novamente aqui com as versões descritas no artigo e consegui fazer funcionar novamente. Qual distro, versão Zabbix e versão Yowsup você está usando? Vi que muita gente tem o mesmo problema.

    • Diego Vieira
    • 30 de dezembro de 2015

    Ainda existe mais uma dúvida pois já que uso Debian e não utilizo “sudo” e até mesmo consigo executar o script com o usuário zabbix porque mesmo assim não funciona esse tipo de notificação?

    • Oi Diego tudo bem?

      Você pode utilizar o usuário Zabbix internamente, mas quando você usa um comando remoto, pelo Zabbix Server, é necessário que o comando rode com privilégios.

    • Diego Vieira
    • 29 de dezembro de 2015

    EU agora consegui Marcelo mas mesmo com tudo configurado a mensagem nunca chega no meu telefone. Aparece como enviada no zabbix, aparece como enviada nos log do script mas não chega no telefone. Tem como me ajudar?

    • Diego Vieira
    • 21 de dezembro de 2015

    Não consigo configurar pois quando rodo o comando para registrar aparece o seguinte erro:
    File “/usr/local/bin/yowsup-cli”, line 4, in
    import pkg_resources
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 2707, in
    working_set.require(__requires__)
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 686, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 584, in resolve
    raise DistributionNotFound(req)

    • Fala Diego. Dá uma olhada nos comentarios anteriores, existem pacotes faltando aí. Abraços.

    • André Alécio
    • 19 de dezembro de 2015

    Aqui fiz a configuração, recebi o SMS, coloquei a senha no arquivo… ele diz que enviou a MSG mas não chega.

    INFO:yowsup.demos.sendclient.layer:Message sent

    Yowsdown

    • Olá Andre. Quando voce roda o comando na unha, a msg chega?

    • patrick cassaro
    • 8 de dezembro de 2015

    Meu script só funcionou com o “sudo” antes do caminho do yowsup-cli

    • patrick cassaro
    • 7 de dezembro de 2015

    Como posso descadastrar um numero registrado no servidor ?

      • Kleanto Lacerda Souza
      • 15 de dezembro de 2015

      é só editar o arquivo zap.config

    • patrick
    • 6 de dezembro de 2015

    Olá, obrigado pelo tutorial, segui tudo certin, mas eu cadastrei o meu numero particular no inicio para usar como servidor de alerta, mas logo percebi que tinha q ter outro numero somente para isso. acontece que o meu numero particular não recebe os alertas, mas outros numeros recebem normalmente. Você saberia como descadastrar o meu numero no servidor do Yowsup particular feito no início.

    • Olá Patrick. Creio que o modo mais fácil seria reinstalar o programa e cadastrar o celular novamente.

    • Ermes Bronzati
    • 2 de dezembro de 2015

    Corrigindo o que digitei:

    [root@zabbix-novo zabbix]# yowsup-cli demos -s 5531999999999 “oi” -c /etc/zabbix/zap.conf
    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    INFO:yowsup.demos.sendclient.layer:Message sent

    Mesmo assim nada chega.

      • Vinicius Dalcin
      • 14 de fevereiro de 2016

      Uso a tempo essa integração com zabbix…
      Já recebi a mensagem varias vezes…

      Apenas instalei novamente o pacote a partir do site
      https://github.com/tgalal/yowsup

      Após atualização funcionou. estava na 2.0 foi para 2.4.
      Apenas extrai os aquivos do .zip, instalei novamente com
      # python setup.py install

      • Show de bola Vinicius.

        Na verdade a granda maioria dos problemas se dá pela falta de dependencias. Valeu pela visita.

    • Como está seu arquivo conf?

        • Ermes
        • 30 de dezembro de 2015

        Marcelo, veja meu arquivo, tem algo errado?
        #CODIGO DO PAIS – BRASIL: 55
        cc=55
        # NUMERO DO CELULAR QUE IRA OPERAR O WHATSAPP – COD PAIS + DDD + NUMERO
        phone=553111111111
        # IDENTIFICACAO
        id=ZabbixOncoclinicas
        # SENHA ( deixe em branco vamos receber a senha apos o registro)
        password=20aKSWSUSJjY4yfhmatuYLSF7k0=

        • Como ficam os logs Ermes? E a auditoria de ações do Zabbix?

            • Ermes Bronzati
            • 19 de janeiro de 2016

            Marcelo, ainda não passei para a parte de configuração Web do Zabbix, uma vez que deu problema no teste parei por aqui e estou tentando resolver.

          • Oi Ermes, tudo bem?
            Dá uma conferida no outro artigo, sobre as versões do Yowsup com o pacote Python. Pode ser algum problema relacionado.

            abraços

    • Fabio
    • 1 de dezembro de 2015

    Boa tarde Marcelo,
    Excelente o material. Estou usando Centos 6.6, Já alterei o arquivo sudoers, fiz a instalação e agora quando faço o teste de envio pelo terminal dá esse erro:

    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 4, in
    __import__(‘pkg_resources’).run_script(‘yowsup2==2.4’, ‘yowsup-cli’)
    File “/usr/lib/python2.6/site-packages/pkg_resources/__init__.py”, line 742, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.6/site-packages/pkg_resources/__init__.py”, line 1674, in run_script
    exec(script_code, namespace, namespace)
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process

    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 280, in startSendClient

    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/stack.py”, line 54, in start
    File “build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py”, line 195, in loop
    File “/usr/lib64/python2.6/asyncore.py”, line 210, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.6/asyncore.py”, line 151, in poll
    read(obj)
    File “/usr/lib64/python2.6/asyncore.py”, line 82, in read
    obj.handle_error()
    File “/usr/lib64/python2.6/asyncore.py”, line 78, in read
    obj.handle_read_event()
    File “/usr/lib64/python2.6/asyncore.py”, line 428, in handle_read_event
    self.handle_read()
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 86, in handle_read
    File “build/bdist.linux-x86_64/egg/yowsup/layers/network/layer.py”, line 94, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 28, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 51, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 51, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py”, line 48, in processReceived
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_crypt.py”, line 63, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/coder/layer.py”, line 35, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/logger/layer.py”, line 14, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 126, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 169, in receive

    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 105, in receive

    File “build/bdist.linux-x86_64/egg/yowsup/layers/auth/layer_authentication.py”, line 71, in handleSuccess
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 59, in toUpper

    File “build/bdist.linux-x86_64/egg/yowsup/layers/interface/interface.py”, line 98, in receive
    File “build/bdist.linux-x86_64/egg/yowsup/demos/sendclient/layer.py”, line 35, in onSuccess
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 63, in toLower

    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 173, in send

    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 111, in send

    File “build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/layer.py”, line 15, in sendMessageEntity
    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 115, in entityToLower

    File “build/bdist.linux-x86_64/egg/yowsup/layers/__init__.py”, line 63, in toLower

    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 107, in send
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/layer.py”, line 190, in handlePlaintextNode
    File “/usr/lib/python2.6/site-packages/axolotl/sessioncipher.py”, line 38, in encrypt
    sessionRecord = self.sessionStore.loadSession(self.recipientId, self.deviceId)
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/store/sqlite/liteaxolotlstore.py”, line 47, in loadSession
    File “build/bdist.linux-x86_64/egg/yowsup/layers/axolotl/store/sqlite/litesessionstore.py”, line 20, in loadSession
    File “/usr/lib/python2.6/site-packages/axolotl/state/sessionrecord.py”, line 16, in __init__
    record.ParseFromString(serialized)
    File “/usr/lib/python2.6/site-packages/google/protobuf/message.py”, line 186, in ParseFromString
    self.MergeFromString(serialized)
    File “/usr/lib/python2.6/site-packages/google/protobuf/internal/python_message.py”, line 841, in MergeFromString
    if self._InternalParse(serialized, 0, length) != length:
    File “/usr/lib/python2.6/site-packages/google/protobuf/internal/python_message.py”, line 874, in InternalParse
    pos = field_decoder(buffer, new_pos, end, self, field_dict)
    File “/usr/lib/python2.6/site-packages/google/protobuf/internal/decoder.py”, line 652, in DecodeField
    raise _DecodeError(‘Truncated message.’)
    google.protobuf.message.DecodeError: Truncated message.

    Pode me ajudar?
    Obrigado !!

    • Tudo bem? Da uma olhada nos comentários anteriores, já resolveram esse erro. Provavel que falte algum pacote.

    • Victor França
    • 30 de novembro de 2015

    Prezados, boa noite

    Estou realizando o procedimento e várias dependências estão sendo requisitadas, porém estou travado nessa. Poderiam me ajudar caso alguém tenha o mesmo erro.

    [root@zabbix yowsup-master]# yowsup-cli registration -r sms -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/bin/yowsup-cli”, line 4, in
    import pkg_resources
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 3007, in
    working_set.require(__requires__)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 728, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 626, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: python-axolotl>=0.1.7

    • Olá! Dá uma olhada nos comentários anteriores, provavelmente está faltando a instalação de algum pacote.

    • Douglas Oliveira
    • 27 de novembro de 2015

    Marcelo, o meu está tudo configurado! faço os teste de envio de msgm por linha de comando e recebo a msgm com sucesso. Meu problema está na hora do zabbix enviar a msgm, nos logs de ações ele da como enviado, porém eu não recebo a mensagem! tem alguma dica do que pode ser?
    Obrigado!

    • Verifique o arquivo sudoers, se não estiver configurado o usuário não vai ter permissão.

    • Eduardo Berto
    • 26 de novembro de 2015

    Boa tarde.

    Grande postagem, ótimo conteúdo e bem explicado. Parabéns.

    Estou apenas encontrando um problema ao entrar com o código de configuração.

    yowsup-cli registration -R xxx-xxx -c /etc/zabbix/whatsapp.conf

    INFO:yowsup.common.http.warequest:{“status”:”fail”,”reason”:”temporarily_unavailable”,”retry_after”:3600}

    status: fail
    retry_after: 3600
    reason: temporarily_unavailable

    • Seu servidor está com conectividade com a Internet? Não há algum proxy bloqueando nada? Abraços

    • Maiquel
    • 19 de novembro de 2015

    Bom dia Marcelo,

    Após varias compilações dos pacotes, consegui instalar o Yowsup no Centos 6.7, onde conseguimos realizar o registro nos servidor do WhatsApp, porém o envio não esta funcionando:

    yowsup-cli demons -s 5551xxxxxxx “Olá Teste do WhatsApp via Linux” -c /etc/zabbix/whatsapp.conf

    Available commands:
    ===================
    demos, version, registration

    Onde x é o número do meu celular de recebimento.

    • Olá tudo bem? Acho que você digitou errado ali na linha, por isso ele mostra os comandos disponíveis. Está “demons” no lugar de “demos”.

      Abraço

    • Patrick cassaro
    • 17 de novembro de 2015

    BOa noite, estou com seguinte erro:

    yowsup-cli registration -r sms -c zap.conf

    Traceback (most recent call last):
    File “/usr/local/bin/yowsup-cli”, line 4, in
    __import__(‘pkg_resources’).run_script(‘yowsup2==2.4’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 3020, in
    working_set = WorkingSet._build_master()
    File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 614, in _build_master
    ws.require(__requires__)
    File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 920, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py”, line 807, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: python-axolotl-curve25519

    • Qual sua versão e distro Linux? Pode estar faltando algum pacote.

    • André Almeida
    • 17 de novembro de 2015

    Marcelo, boa noite!

    Primeiramente parabéns pelo tutorial! Esta muito bem feito mesmo!
    Consegui com sucesso enviar mensagens usando o terminal (estou usando o Ubuntu).

    Quando o Zabbix envia um alerta, no detalhamento das ações ele informa que foi enviado com sucesso a mensagem para o meu numero, mas não recebo nada! Estou usando o mesmo numero que usei para receber nos testes que fiz pelo terminal do Ubuntu.

    Faz ideia de oque pode ser?
    Obrigado!

    • Olá! Necessário adicionar o usuário zabbix no sudoers. Dá uma olhada nos comentários anteriores que tem a solução. Abraços!

    • Patrick cassaro
    • 17 de novembro de 2015

    ao executar o comando “setup.py install” aparece esta mensagem:
    Traceback (most recent call last):
    File “./setup.py”, line 3, in
    from setuptools import setup, find_packages
    ImportError: No module named setuptools

    • Olá! Instale o pacote setuptools. Nos comentários anteriores tem a solução. Abraços!

    • Igor Araujo Costa
    • 16 de novembro de 2015

    Ah 🙁 meu comentário não foi!!!

    Só dei uma dica pra evitar erro no script sugerido pelo Fábio.
    Ao invés de pegar os parâmetros $1 e $2 (destinatário e assunto), o correto seria pegar $1 e $3 (destinatário e mensagem).

    E cuidado com as aspas quando for copiar e colar nos scripts. Sempre bom revisar se são as aspas de verdade ou símbolos rs

    Forte abraço!

    • Perfeito Igor!!!

      Acho que seu comentário anterior não veio =(
      De qualquer forma, obrigado pelas dicas!

      Abraços

    • Sansão
    • 13 de novembro de 2015

    Bom dia Marcelo Medeiros.
    Seu blog foi o melhor que já vi relacionado a tutorial, muito bem explicado e elaborado, Parabéns.
    Deixo como dica vc fazer um tutorial de integração do ZABBIX com o telegram.
    Ja vi alguns pela net, mas nada tão claro como seus posts.

    • Ótima dica Sansão! Entrará nas minhas pautas! Abraços!

    • Alex
    • 12 de novembro de 2015

    Obs: Acabei de atualizar o Centos com # yum update e tentar reinstalar o o pacote de desenvolvedor com o comando: yum groupinstall “Development tools” e continua o mesmo erro.

    • Olá Alex tudo bem?

      Algum pacote deve estar faltando, dá uma olhada nos comentários anteriores que o pessoal tem uma série de passos.

  10. Boa tarde Marcelo quando vou execultar o comando # ./setup.py install
    me da a seguinte msg

    ValueError: –enable-jpeg requested but jpeg not found, aborting.

    • Oi Lucas. Procure pelo pacote libjpeg-dev…

    • Patrick
    • 8 de novembro de 2015

    Marcelo

    Segui seu tutorial e consegui fazer funcionar.

    Está muito bem documentado, parabéns.

    • Obrigado Patrick. Fico feliz que ajudei! Um abraço

    • Oswaldo
    • 6 de novembro de 2015

    Caro, Marcelo boa tarde!

    Primeiramente, obrigado por compartilhar o conhecimento. Gostaria do seu apoio para resolver um problema que estou tendo ao executar os testes de envio de mensagens.

    SO.:CentOS release 6.5
    yowsup-cli v2.0.13
    Using yowsup v2.4

    Segue:

    yowsup-cli demos -s 553198878**** “MENSAGEM” -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4’, ‘yowsup-cli’)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 461, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 1194, in run_script
    execfile(script_filename, namespace, namespace)
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in
    if not parser.process():
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 231, in process
    self.startSendClient()
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 279, in startSendClient
    not self.args[“unmoxie”])
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/yowsup/demos/sendclient/stack.py”, line 24, in __init__
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.4-py2.6.egg/yowsup/layers/axolotl/layer.py”, line 15, in
    from axolotl.sessioncipher import SessionCipher
    File “/usr/lib/python2.6/site-packages/python_axolotl-0.1.7-py2.6.egg/axolotl/sessioncipher.py”, line 3, in
    from Crypto.Util import Counter
    ImportError: cannot import name Counter

    Desde já agradeço

    Abs

    • Olá Oswaldo. Dependendo da sua distribuição e modo de instalação, há uma série de pacotes que precisam ser instalados. Dá uma olhada nos comentários anteriores, seu erro provavelmente já foi solucionado!

    • MenyU
    • 5 de novembro de 2015

    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated

    Como resolver essa msg no log zabbix !

    • Ela está evitando que as mensagens sejam enviadas?

    • Mauricio Souza
    • 5 de novembro de 2015

    Marcelo,

    Ao instalar o pacote no final ele apresenta essa mensagem, já tentei ver o que poderia ser mais não tive êxito.

    File “/usr/lib64/python2.7/distutils/dist.py”, line 972, in run_command
    cmd_obj.run()
    File “/usr/lib64/python2.7/distutils/command/build_ext.py”, line 337, in run
    self.build_extensions()
    File “setup.py”, line 515, in build_extensions

    ValueError: –enable-jpeg requested but jpeg not found, aborting.

    • Oi Maurício, procure pelo pacote libjpeg-dev.

    • Zabbix
    • 29 de outubro de 2015

    Eu Consigo por exemplo :

    Mandar uma msg

    ESTA TUDO OK !

    Quando ( não estiver nenhum equipamento com problema )

    • Olá! A idéia do Zabbix não é avisar quando está tudo bem e sim quando tiver uma ocorrencia.

    • Rafael Gomes
    • 7 de outubro de 2015

    Boa Tarde!

    Precisei instalar a versáo 2.0 Pillow, para resolver o problema abaixo.

    #pip install –user Pillow==2.0.0

    root@QDRSRV021:/# yowsup-cli demos -s 5511xxxxxxxx “Mensagem de teste.” -c /etc/zabbix/whatsapp.conf
    Traceback (most recent call last):
    File “/usr/local/bin/yowsup-cli”, line 4, in
    import pkg_resources
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 2707, in
    working_set.require(__requires__)
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 686, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 584, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: pillow
    root@QDRSRV021:/#

    • Gustavo
    • 7 de outubro de 2015

    Ola Marcelo, primeiramente parabéns pelo artigo…. muito bem explicado..
    Consegui fazer quase tudo funcionar…

    Eu fiz a instalação do Yowsup, no shel o scrpit funciona… eu fiz a liberação do usuário do ZABBIX no sudoers…

    Mas quando acontece algum incidente o meu ZABBIX não envia o ZAP… eu só recebo o e-mail que esta configurado na ação o ZAP ele não envia…

    Você tem ideia do que pode estar acontecendo?

    Agradeço a ateção

    • Olá. Necessário colocar o usuário zabbix no sudoers. Dá uma olhada nos comentários anteriores que tem a solução. Abraços

    • Andeson Ferreia
    • 6 de outubro de 2015

    Bom dia Marcelo.
    Primeiramente parabéns pelo ótimo tutorial.

    Estou usando o CentOS7 e no momento da instalação do yowsup está apresentando uma serie de erros:
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_media/protocolentities/test_message_media_downloadable_video.py to test_message_media_downloadable_video.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_media/protocolentities/test_message_media_location.py to test_message_media_location.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_media/protocolentities/test_message_media_vcard.py to test_message_media_vcard.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/message.py to message.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/message_text.py to message_text.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/message_text_broadcast.py to message_text_broadcast.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/test_message.py to test_message.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/test_message_text.py to test_message_text.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_messages/protocolentities/test_message_text_broadcast.py to test_message_text_broadcast.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/notification.py to notification.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/notification_picture.py to notification_picture.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/notification_picture_delete.py to notification_picture_delete.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/notification_picture_set.py to notification_picture_set.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/notification_status.py to notification_status.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/test_notification.py to test_notification.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/test_notification_picture.py to test_notification_picture.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/test_notification_picture_delete.py to test_notification_picture_delete.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/test_notification_picture_set.py to test_notification_picture_set.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_notifications/protocolentities/test_notification_status.py to test_notification_status.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/iq_lastseen.py to iq_lastseen.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/iq_lastseen_result.py to iq_lastseen_result.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/presence.py to presence.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/presence_available.py to presence_available.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/presence_subscribe.py to presence_subscribe.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/presence_unavailable.py to presence_unavailable.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/presence_unsubscribe.py to presence_unsubscribe.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/test_presence.py to test_presence.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/test_presence_available.py to test_presence_available.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/test_presence_subscribe.py to test_presence_subscribe.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/test_presence_unavailable.py to test_presence_unavailable.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_presence/protocolentities/test_presence_unsubscribe.py to test_presence_unsubscribe.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_privacy/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_privacy/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_privacy/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_privacy/protocolentities/privacylist_iq.py to privacylist_iq.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_picture.py to iq_picture.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_picture_get.py to iq_picture_get.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_picture_get_result.py to iq_picture_get_result.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_picture_set.py to iq_picture_set.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_pictures_list.py to iq_pictures_list.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_status_set.py to iq_status_set.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/iq_unregister.py to iq_unregister.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/test_iq_status_set.py to test_iq_status_set.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_profiles/protocolentities/test_iq_unregister.py to test_iq_unregister.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/receipt.py to receipt.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/receipt_incoming.py to receipt_incoming.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/receipt_outgoing.py to receipt_outgoing.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/test_receipt_incoming.py to test_receipt_incoming.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/protocol_receipts/protocolentities/test_receipt_outgoing.py to test_receipt_outgoing.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/layers/stanzaregulator/layer.py to layer.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/registration/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/registration/coderequest.py to coderequest.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/registration/existsrequest.py to existsrequest.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/registration/regrequest.py to regrequest.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/stacks/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/stacks/yowstack.py to yowstack.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/structs/__init__.py to __init__.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/structs/protocolentity.py to protocolentity.pyc
    byte-compiling build/bdist.linux-x86_64/egg/yowsup/structs/protocoltreenode.py to protocoltreenode.pyc
    creating build/bdist.linux-x86_64/egg/EGG-INFO
    installing scripts to build/bdist.linux-x86_64/egg/EGG-INFO/scripts
    running install_scripts
    running build_scripts
    creating build/scripts-2.7
    copying and adjusting yowsup-cli -> build/scripts-2.7
    changing mode of build/scripts-2.7/yowsup-cli from 644 to 755
    creating build/bdist.linux-x86_64/egg/EGG-INFO/scripts
    copying build/scripts-2.7/yowsup-cli -> build/bdist.linux-x86_64/egg/EGG-INFO/scripts
    changing mode of build/bdist.linux-x86_64/egg/EGG-INFO/scripts/yowsup-cli to 755
    copying yowsup2.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying yowsup2.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying yowsup2.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying yowsup2.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    copying yowsup2.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
    zip_safe flag not set; analyzing archive contents…
    creating dist
    creating ‘dist/yowsup2-2.4-py2.7.egg’ and adding ‘build/bdist.linux-x86_64/egg’ to it
    removing ‘build/bdist.linux-x86_64/egg’ (and everything under it)
    Processing yowsup2-2.4-py2.7.egg
    Removing /usr/lib/python2.7/site-packages/yowsup2-2.4-py2.7.egg
    Copying yowsup2-2.4-py2.7.egg to /usr/lib/python2.7/site-packages
    yowsup2 2.4 is already the active version in easy-install.pth
    Installing yowsup-cli script to /usr/bin

    Installed /usr/lib/python2.7/site-packages/yowsup2-2.4-py2.7.egg
    Processing dependencies for yowsup2==2.4
    Searching for pillow
    Reading https://pypi.python.org/simple/pillow/
    Best match: Pillow 3.0.0
    Downloading https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.zip#md5=dd81f6cc3f3a5e5fe72f0f1d936339c3
    Processing Pillow-3.0.0.zip
    Writing /tmp/easy_install-6ocp1b/Pillow-3.0.0/setup.cfg
    Running Pillow-3.0.0/setup.py -q bdist_egg –dist-dir /tmp/easy_install-6ocp1b/Pillow-3.0.0/egg-dist-tmp-oeRXGF
    Exception in thread Thread-2:
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/threading.py”, line 811, in __bootstrap_inner
    self.run()
    File “/usr/lib64/python2.7/threading.py”, line 764, in run
    self.__target(*self.__args, **self.__kwargs)
    File “/usr/lib64/python2.7/multiprocessing/pool.py”, line 353, in _handle_tasks
    debug(‘task handler got sentinel’)
    TypeError: ‘NoneType’ object is not callable

    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib64/python2.7/threading.py”, line 811, in __bootstrap_inner
    self.run()
    File “/usr/lib64/python2.7/threading.py”, line 764, in run
    self.__target(*self.__args, **self.__kwargs)
    File “/usr/lib64/python2.7/multiprocessing/pool.py”, line 329, in _handle_workers
    debug(‘worker handler exiting’)
    TypeError: ‘NoneType’ object is not callable

    Exception TypeError: TypeError(“‘NoneType’ object does not support item deletion”,) in ignored
    Traceback (most recent call last):
    File “./setup.py”, line 42, in
    ‘Topic :: Software Development :: Libraries :: Python Modules’
    File “/usr/lib64/python2.7/distutils/core.py”, line 152, in setup
    dist.run_commands()
    File “/usr/lib64/python2.7/distutils/dist.py”, line 953, in run_commands
    self.run_command(cmd)
    File “/usr/lib64/python2.7/distutils/dist.py”, line 972, in run_command
    cmd_obj.run()
    File “/usr/lib/python2.7/site-packages/setuptools/command/install.py”, line 73, in run
    self.do_egg_install()
    File “/usr/lib/python2.7/site-packages/setuptools/command/install.py”, line 101, in do_egg_install
    cmd.run()
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 380, in run
    self.easy_install(spec, not self.no_deps)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 604, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 655, in install_item
    self.process_distribution(spec, dist, deps)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 706, in process_distribution
    [requirement], self.local_index, self.easy_install
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 618, in resolve
    dist = best[req.key] = env.best_match(req, self, installer)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 862, in best_match
    return self.obtain(req, installer) # try and download/install
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 874, in obtain
    return installer(requirement)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 623, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 653, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 849, in install_eggs
    return self.build_and_install(setup_script, setup_base)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 1130, in build_and_install
    self.run_setup(setup_script, setup_base, args)
    File “/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py”, line 1115, in run_setup
    run_setup(setup_script, args)
    File “/usr/lib/python2.7/site-packages/setuptools/sandbox.py”, line 69, in run_setup
    lambda: execfile(
    File “/usr/lib/python2.7/site-packages/setuptools/sandbox.py”, line 120, in run
    return func()
    File “/usr/lib/python2.7/site-packages/setuptools/sandbox.py”, line 71, in
    {‘__file__’:setup_script, ‘__name__’:’__main__’}
    File “setup.py”, line 767, in

    File “/usr/lib64/python2.7/distutils/core.py”, line 152, in setup
    dist.run_commands()
    File “/usr/lib64/python2.7/distutils/dist.py”, line 953, in run_commands
    self.run_command(cmd)
    File “/usr/lib64/python2.7/distutils/dist.py”, line 972, in run_command
    cmd_obj.run()
    File “/usr/lib/python2.7/site-packages/setuptools/command/bdist_egg.py”, line 185, in run
    cmd = self.call_command(‘install_lib’, warn_dir=0)
    File “/usr/lib/python2.7/site-packages/setuptools/command/bdist_egg.py”, line 171, in call_command
    self.run_command(cmdname)
    File “/usr/lib64/python2.7/distutils/cmd.py”, line 326, in run_command
    self.distribution.run_command(command)
    File “/usr/lib64/python2.7/distutils/dist.py”, line 972, in run_command
    cmd_obj.run()
    File “/usr/lib/python2.7/site-packages/setuptools/command/install_lib.py”, line 20, in run
    self.build()
    File “/usr/lib64/python2.7/distutils/command/install_lib.py”, line 111, in build
    self.run_command(‘build_ext’)
    File “/usr/lib64/python2.7/distutils/cmd.py”, line 326, in run_command
    self.distribution.run_command(command)
    File “/usr/lib64/python2.7/distutils/dist.py”, line 972, in run_command
    cmd_obj.run()
    File “/usr/lib64/python2.7/distutils/command/build_ext.py”, line 339, in run
    self.build_extensions()
    File “setup.py”, line 515, in build_extensions

    ValueError: –enable-jpeg requested but jpeg not found, aborting.
    [root@localhost yowsup-master]#

    Não consigo dar continuidade.
    Podes me ajudar?

    • Olá. Tente procurar o pacote libjpeg-dev para instalação. É esse o erro que aparece no final.

    • Luiz Junior
    • 29 de setembro de 2015

    Como instalar no linux Debian? é o mesmo descrito por você?

    Att

    • Ola Luiz.

      O Debian tem algumas particularidades e alguns comandos diferentes.

  11. Olá amigo.

    Para fins de segurança ao adicionar o usuários zabbix ao sudoers eu acredito que seja melhor fazer da seguinte forma:

    zabbix ALL=NOPASSWD: /usr/local/bin/yowsup-cli
    zabbix ALL=NOPASSWD: /usr/lib/zabbix/alertscripts/wpp_zabbix.sh

    Adicionar apenas os comandos que o zabbix vai executar ao sudoers. Fiz dessa forma e funcionou certinho.

    Excelente artigo!

    • Excelente Deivison! Muito obrigado pela dica, irei adicionar ao artigo. Abraços!

  12. Bom dia Marcelo, ótimo tutorial, mas estou com um probleminha aqui.
    Quando vou ativar o número gera o seguinte erro:

    Alguma ideia do que pode ser ?

    [root@centos7 ~]# yowsup-cli registration -r sms -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.4’, ‘yowsup-cli’)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 540, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 1462, in run_script
    exec_(script_code, namespace, namespace)
    File “/usr/lib/python2.7/site-packages/pkg_resources.py”, line 41, in exec_
    exec(“””exec code in globs, locs”””)
    File “”, line 1, in
    File “/usr/lib/python2.7/site-packages/yowsup2-2.4-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 323, in

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 158, in process

    File “/usr/lib/python2.7/site-packages/yowsup2-2.4-py2.7.egg/EGG-INFO/scripts/yowsup-cli”, line 176, in handleRequestCode

    File “build/bdist.linux-x86_64/egg/yowsup/registration/coderequest.py”, line 46, in send
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 73, in send
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 111, in sendGetRequest
    File “build/bdist.linux-x86_64/egg/yowsup/common/http/warequest.py”, line 167, in sendRequest
    File “/usr/lib64/python2.7/httplib.py”, line 973, in request
    self._send_request(method, url, body, headers)
    File “/usr/lib64/python2.7/httplib.py”, line 1007, in _send_request
    self.endheaders(body)
    File “/usr/lib64/python2.7/httplib.py”, line 969, in endheaders
    self._send_output(message_body)
    File “/usr/lib64/python2.7/httplib.py”, line 829, in _send_output
    self.send(msg)
    File “/usr/lib64/python2.7/httplib.py”, line 791, in send
    self.connect()
    File “/usr/lib64/python2.7/httplib.py”, line 1172, in connect
    self.timeout, self.source_address)
    File “/usr/lib64/python2.7/socket.py”, line 571, in create_connection
    raise err
    socket.error: [Errno 113] No route to host

    • Olá Adriano. O pulo do gato está na ultima linha do seu log: socket.error: [Errno 113] No route to host.

      Verifique a conectividade do seu servidor à Internet. Abraços!

  13. Marcelo quanto vc cobra pra instalar e configurar esta ferramenta

    • Boa tarde Marcos, vou lhe enviar um e-mail ok? Um abraço!

    • José Augusto
    • 9 de setembro de 2015

    Boa Tarde,

    Ao efetuar o teste de envio de mensagem para o whats
    “yowsup-cli demos -s 555199999999 “teste whatsapp” -c /etc/zabbix/whatsapp.conf”
    deu o seguinte erro
    “google.protobuf.message.DecodeError: Truncated message”
    o que pode ser este erro?

    • Olá. Poste como está seu script!

        • Augusto
        • 14 de janeiro de 2016

        Opa, resolvi aqui, mas segue o script, bem simples:

        #!/bin/sh

        #MESSAGE=$3
        #sudo yowsup-cli demos -s $1 “$MESSAGE” -c /etc/zabbix/zap.conf
        sudo yowsup-cli demos -s $1 “$3” -c /etc/zabbix/zap.conf

        Por algum motivo, não tava aceitando espaços.

        Abraços,

    • Leandro de Oliveira
    • 29 de agosto de 2015

    Ótimo Marcelo Medeiros!
    Apanhei por algumas horas por desconsiderar a dica de configuração do arquivo em /etc/sudoers.
    Após algumas pequenas alterações em relação a aspas e configurações do meu ambiente, funcionamento perfeito.
    PARABÉNS!

    • Muito obrigado pelo retorno Leandro! Boa sorte! Abraço

    • Fernando Moreia
    • 28 de agosto de 2015

    Boa tarde,

    Solução para o problema de envio pelo Zabbix e não ser enviado nada..

    sudo yowsup-cli demos -s “$1” “$3” -c /usr/local/etc/zap.config

      • Fernando Moreia
      • 28 de agosto de 2015

      Tem que colocar aspas em cada variavel… ASPAS Duplas…

    • Augusto
    • 28 de agosto de 2015

    Caro,
    Por algum motivo, não consigo enviar uma frase completa

    /usr/lib/zabbix/alertscripts/whatsapp_zabbix.sh NUMERO “” “Teste do Whatsapp”
    usage: demos [-h] [-v] [-d] [–help-config] [-l phone:b64password] [-c CONFIG]
    [-m] [-y] [-e] [-s phone message] [-S contacts]
    demos: error: unrecognized arguments: do Whatsapp″

    Alguma coisa que tenho que alterar?

    • Tiago Solka
    • 20 de agosto de 2015

    Parabéns Marcelo, segui todos passos e funcionou de primeira, valeu!
    Um forte abraço.
    .

    • Show de bola Tiago! Muitos usuários tem dificuldades de fazer funcionar na primeira tentativa! Obrigado pelo feedback!!!

    • Andre Farinazzo
    • 19 de agosto de 2015

    Valeu Marcelo deu certo aqui meu irmão…bela iniciativa, e compartilhamento de conhecimento…valeu mesmo

    • André Farinazzo
    • 18 de agosto de 2015

    Está dando esse erro:/usr/local/etc/scripts//whatsapp_zabbix.sh: No such file or Directory,na minha Auditoria, porém já revisei tudo e não achei nada.

    • Olá André tudo bem? Perceba que no seu erro, existem duas barras “/” entre a pasta scripts e o arquivo whatsapp_zabbix.sh. Verifique o caminho, ele deve estar incorreto. ABraços!

    • Marcelo
    • 12 de agosto de 2015

    Marcelo, Meu script funciona normalmente, mais quando o zabbix vai enviar “alerta wwhatsapp – enviado” podem nao chega nada, olhando o log do zabbix_server aparece estes erros..

    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    Traceback (most recent call last):
    File “/opt/yowsup-master/yowsup-cli”, line 327, in
    if not parser.process():
    File “/opt/yowsup-master/yowsup-cli”, line 235, in process
    self.startSendClient()
    File “/opt/yowsup-master/yowsup-cli”, line 284, in startSendClient
    stack.start()
    File “/opt/yowsup-master/yowsup/demos/sendclient/stack.py”, line 54, in start
    self.stack.loop()
    File “/opt/yowsup-master/yowsup/stacks/yowstack.py”, line 175, in loop
    asyncore.loop(*args, **kwargs)
    File “/usr/lib64/python2.6/asyncore.py”, line 210, in loop
    poll_fun(timeout, map)
    File “/usr/lib64/python2.6/asyncore.py”, line 157, in poll
    write(obj)
    File “/usr/lib64/python2.6/asyncore.py”, line 90, in write
    obj.handle_error()
    File “/usr/lib64/python2.6/asyncore.py”, line 86, in write
    obj.handle_write_event()
    File “/usr/lib64/python2.6/asyncore.py”, line 446, in handle_write_event
    self.handle_connect_event()
    File “/usr/lib64/python2.6/asyncore.py”, line 431, in handle_connect_event
    self.handle_connect()
    File “/opt/yowsup-master/yowsup/layers/network/layer.py”, line 56, in handle_connect
    self.emitEvent(YowLayerEvent(YowNetworkLayer.EVENT_STATE_CONNECTED))
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 68, in emitEvent
    self.__upper.emitEvent(yowLayerEvent)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 68, in emitEvent
    self.__upper.emitEvent(yowLayerEvent)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 68, in emitEvent
    self.__upper.emitEvent(yowLayerEvent)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 68, in emitEvent
    self.__upper.emitEvent(yowLayerEvent)
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 62, in emitEvent
    if self.__upper and not self.__upper.onEvent(yowLayerEvent):
    File “/opt/yowsup-master/yowsup/layers/__init__.py”, line 178, in onEvent
    stopEvent = stopEvent or s.onEvent(yowLayerEvent)
    File “/opt/yowsup-master/yowsup/layers/auth/layer_authentication.py”, line 39, in onEvent
    self.login()
    File “/opt/yowsup-master/yowsup/layers/auth/layer_authentication.py”, line 49, in login
    self._sendAuth()
    File “/opt/yowsup-master/yowsup/layers/auth/layer_authentication.py”, line 88, in _sendAuth
    nonce = StorageTools.getNonce(self.credentials[0])
    File “/opt/yowsup-master/yowsup/common/tools.py”, line 75, in getNonce
    path = StorageTools.getStorageForPhone(phone)
    File “/opt/yowsup-master/yowsup/common/tools.py”, line 49, in getStorageForPhone
    return StorageTools.constructPath(phone + ‘/’)
    File “/opt/yowsup-master/yowsup/common/tools.py”, line 44, in constructPath
    os.makedirs(os.path.dirname(fullPath))
    File “/usr/lib64/python2.6/os.py”, line 150, in makedirs
    makedirs(head, mode)
    File “/usr/lib64/python2.6/os.py”, line 157, in makedirs
    mkdir(name, mode)

    • Oi Marcelo, tudo bem? Chegou a verificar o arquivo /etc/sudoers? Voce precisa dar umas permissões ao usuário Zabbix nesse arquivo.

    • Decker
    • 12 de agosto de 2015

    Ola Marcelo, meu script esta enviando a mensagem manualmente,e no zabbix apos ocorrer um erro aparece em açoes “Whatsapp – enviado” mais nao chega a mensagem..esta configurado em açoes e tipos de midia conforme seu tutorial e o numero do celular no usuario zabbix.

    • Nos comentários anteriores, o pessoal comentou sobre as permissões no arquivos /etc/sudoers. Dá uma revisada nele que deve funcionar. Abraços!

    • Cleverton
    • 10 de agosto de 2015

    Boa tarde Marcelo, meu yowsup esta mandando mensagem quando executo o comando, mais apos criar o script e executa-lo ele nao manda a mensagem.
    apos executar o script ./whatsapp.sh 554788200160 teste

    “INFO:yowsup.demos.sendclient.layer:Message sent”
    Yowsdown

    segue configuração dentro do script:

    #!/bin/bash
    # Script para o YowSup para enviar mensagens via WhatsApp
    /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-master/yowsup-cli.config -s 556195660790 “$2”

    OBS: os diretórios e permissões estão corretos.

    • Oi Cleverton, tudo bem? Nos comentários anteriores, o pessoal comentou sobre as permissões no arquivos /etc/sudoers. Dá uma revisada nele que deve funcionar. Abraços!

    • Cicero
    • 5 de agosto de 2015

    Marcelo, so mais uma informação,no terminal consigo rodar o comando sem problemas e a mensagem chega de boa:

    root@zabbix:/etc/zabbix/alert.d# ./whatsapp.sh 55999999999 “Hello”
    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    INFO:yowsup.demos.sendclient.layer:Message sent

    Yowsdown

    Mas, as ações que pus para disparar nao chegam nem na bala.

    Abraço,

    • sidclay
    • 5 de agosto de 2015

    ola, estou com problemas ao usar o comando ./setup.py install. recebo a seguinte mensagem:

    Traceback (most recent call last):
    File “./setup.py”, line 3, in
    from setuptools import setup, find_packages
    ImportError: no module named setuptools.

    poderia me orientar? desde ja obrigado.

    • Olá Sidclay, tudo bem?

      No caso desse setup.py, ele necessita do pacote ‘setuptools’. Basta instalá-lo com o comando:

      # yum install python-setuptools -y

      Abraços e boa sorte!

    • Cicero
    • 5 de agosto de 2015

    Marcelo, boa tarde!

    Com relação ao primeiro erro ja resolvi, apenas tirei o digito 9 que foi adicionado a pouco tempo pelas operadoras. Agora nao estou conseguindo receber estas mensagens que na dashboard aparecem como enviados. Vou postar meu script.

    #!/bin/bash
    #
    # Script para o YowSup para enviar mensagens via WhatsApp
    LOGFILE=”/tmp/whatsapp.log”
    DEST=”$1″
    MSG=”$2″
    YOWSUP=”/opt/yowsup-master/yowsup-cli”
    YCONF=”/opt/yowsup-master/srv/config.example”
    $YOWSUP demos -c $YCONF -s “${DEST}” “${MSG}”
    HORA=$(date +%d-%m-%Y-%H:%M:%S)
    echo “$HORA – To: ‘${DEST}’ Text: ‘${MSG}'” >> ${LOGFILE}

    Estou usando Ubuntu server, quando rodo o find ele me retorna /opt/yowsup-master,
    /root/yowsup-master. No log nao esta registrando nada, apenas quando mudo o diretorio de opt para root, ai gera acesso negado por conta do diretorio root. Sem mais ideias…

    Desde já agradeço pela ajuda.

    • Cicero
    • 31 de julho de 2015

    Marcelo, tudo bem? Segui seu tutorial, com uma diferença, utilizo ubuntu server, o que nao muda quase nada 😉 Tudo quase funcionando mas, esta gerando este erro ./yowsup-cli demos -s 5592999999999 “hello” -c src/config.example
    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    Authentication Error: not-authorized

    Ja pesquisei e nada, pode me ajudar???

    • Oi Cicero, tudo bem? Pode postar o seu config pra eu dar uma olhada? Você conseguiu realizar a ativação do número?

      Abraço!

      • Oi Cicero. Tente dar as permissões no arquivo /etc/sudoers, conforme já mencionado no artigo.

        Abraço!

    • Guilherme
    • 31 de julho de 2015

    Ola Marcelo, não estou conseguindo enviar os scrits, fiz conforme indicado, dei as permissões e tudo mais porem o numero que coloquei para receber a notificação não recebe nada.Verifiquei que no log de ações do zabbix e aparece como enviado.Estou usando o zabbix no openSUSE, iso pre configurada baixada do site do zabbix.

    Consegue me ajudar?

    Obrigado

    • Oi Guilherme, tudo bem? Uma pergunta: Quando voce faz o envio manual, as mensagens chegam? Aguardo um retorno. Abraço

        • Guilherme
        • 13 de agosto de 2015

        sim, chegaram

  14. Olá Marcelo, primeiramente muito bom seu artigo! Eu consegui fazer funcionar manualmente sem problemas, mas pelo script não esta rolando, poderia por favor me ajudar onde posso ta patinando, pois já refiz os testes mas nada.

    Script:

    #!/bin/sh
    /opt/yowsup-cli demos -s $1 “$3′ -c /opt/zap.conf

    Erro:
    usage: demos [-h] [-v] [-d] [–help-config] [-l phone:b64password] [-c CONFIG]
    [-m] [-y] [-e] [-s phone message] [-S contacts]
    demos: error: unrecognized arguments: Zabbix agent on hostxpto is unreachable for 5 minutes Trigger status: PROBLEM Trigger severity: Average Trigger URL: Item values: 1. Agent ping (hostxpto:agent.ping): Up (1)

    /usr/lib/zabbix/alertscripts/./q.sh: line 2: unexpected EOF while looking for matching `”‘
    /usr/lib/zabbix/alertscripts/./q.sh: line 3: syntax error: unexpected end of file

    Obrigado

    • E aí Diomedes, tudo bem?

      Parece que seu script tem um erro de digitação. Tem duas aspas diferentes nele. Dá uma checada e me retorne ok? Abraço

    • João Victor
    • 30 de julho de 2015

    Olá. Estou tendo problema na hora de enviar a solicitação do código de ativação
    Aparece a mensagem:
    status: fail
    retry_afeter:300
    reason: provider_unroutable

    Alguma sugestão?

    • Tudo bem João Victor? Isso parece ser um erro em chegar até o provedor. Pode ser problema de conectividade ou DNS. Você está com o servidor acessando a Internet normalmente? E como está a resolução de nomes? Abraço!

    • WILLIAM
    • 29 de julho de 2015

    Bom dia!!!

    Galera ninguém tem ideia do que pode ser ?

    Galera atualizei o yowsup e ainda nada

    yowsup-cli v2.0.12
    Using yowsup v2.3.183

    o que mais pode ser ? ainda continua enviando apenas pelo terminal.

    drwxrwxrwx 6 zabbix zabbix 4096 Jul 28 15:27 .
    drwxr-xr-x 5 root root 4096 Jul 28 15:15 ..
    -rwxrwxrwx 1 zabbix zabbix 616 Jul 28 15:15 PKG-INFO
    drwxrwxrwx 5 zabbix zabbix 4096 Jul 28 15:15 build
    drwxrwxrwx 2 zabbix zabbix 4096 Jul 28 15:15 dist
    -rwxrwxrwx 1 zabbix zabbix 59 Jul 28 15:15 setup.cfg
    -rwxrwxrwx 1 zabbix zabbix 1379 Jul 28 15:15 setup.py
    drwxrwxrwx 9 zabbix zabbix 4096 Jul 28 15:15 yowsup
    -rwxrwxrwx 1 zabbix zabbix 13233 Jul 28 15:11 yowsup-cli
    -rwxrwxrwx 1 zabbix zabbix 76 Jul 28 15:11 yowsup-cli.config
    -rwxrwxrwx 1 zabbix zabbix 13443 Jul 28 15:15 yowsup-cli.old
    drwxrwxrwx 2 zabbix zabbix 4096 Jul 28 15:15 yowsup2.egg-info

    ## Runas alias specification
    ##
    zabbix ALL=NOPASSWD: ALL
    root ALL=(ALL) ALL
    zabbix ALL=NOPASSWD: ALL
    Defaults:zabbix !requiretty

    #!/bin/bash
    yowsup-cli demos -s $1 “$3″ -c /opt/yowsup/yowsup-cli.config

    openSUSE 13.1 (x86_64)
    VERSION = 13.1
    CODENAME = Bottle
    # /etc/SuSE-release is deprecated and will be removed in the future, use /etc/os-release instead
    NAME=openSUSE
    VERSION=”13.1 (Bottle)”
    VERSION_ID=”13.1″
    PRETTY_NAME=”openSUSE 13.1 (Bottle) (x86_64)”
    ID=opensuse
    ANSI_COLOR=”0;32″
    CPE_NAME=”cpe:/o:opensuse:opensuse:13.1″
    BUG_REPORT_URL=”https://bugs.opensuse.org”
    HOME_URL=”https://opensuse.org/”
    ID_LIKE=”suse”

    Zabbix 2.4.1 Copyright 2001-2014 by Zabbix SIA, ZE 2.1.2

    • OI Willian, qual erro é apresentado quando você tenta dar os comandos?

    • Fred Vieira
    • 23 de julho de 2015

    Olá Marcelo, primeiramente gostaria de lhe parabenizar pelo tutoria e por compartilhar seus conhecimentos. Então, preciso da sua ajuda, pois crie os dois scripts que estão no tutorial, porém os dois apresentam o mesmo problema, ao executar com o comando # ./whatsapp_zabbix.sh 554890001111 ” ” “Mensagem de Teste do Script” o sistema faz o processo corretamente, diz que foi enviado porém não chega nada. Se eu alterar o $1 para o número que eu quero e o $3 para o texto que eu quero o script funciona. O que poderia ser?

    Obrigado!

    att Fred

    • Olá Fred, tudo bem? Não entendi muito bem o seu teste. Você altera o script para testar? Só pra intuito de teste mesmo, faça da seguinte maneira pra ver se vai:

      # ./whatsapp_zabbix.sh 554890001111 ” ” teste

      Me retorne o resultado!

      Abraço

    • Darlan
    • 21 de julho de 2015

    Boa tarde Marcelo! Ótimo tutorial, claro e objetivo, parabéns!

    Poderia me ajudar? Segui os passos e deu certinho, o problema é que o Zabbix não esta executando o script, na linha de comando rola certinho, na dashboard ele informa que em ação foi enviada, mas não recebo a mensagem.

    • Tudo bem Darlan? Está usando o CentOS também? Se sim, altere o arquivo /etc/sudoers e insira o seguinte:

      zabbix ALL=NOPASSWD: ALL

      Defaults:zabbix !requiretty

      Reinicie o computador e façam novos testes.

    • kiriath
    • 19 de julho de 2015

    Ola Marcelo, excelente tuto,
    meu camarada não estou conseguindo enviar mensagens ao grupo.. Teria alguma dica??

    -copiei direitinho o codigo do grupo zap mas nada de enviar.
    -para um zap em especifico envia mas para o grupo não.

    Valeu desde já.

    • Oi Kiriath tudo bem? Cola aqui pra mim o erro que é apresentado quando você tenta enviar uma msg ao grupo. Abraço!

        • Kiriath
        • 31 de outubro de 2015

        Ola Medeiros era somente porque não estava colocando o número do grupo certo. Me desculpe a demora pois não havia visto seu retorno.

    • WILLIAM
    • 15 de julho de 2015

    Estou usando o opensuse do proprio appliance do zabbix 2.4

    • WILLIA
    • 9 de julho de 2015

    Bom dia.

    Estou com o mesmo problema de alguns. Via linha de comando funciona, porém pelas midias do zabbix informa que envio porém não chega no celular.

    SCRIPT WHATSAPP UTILIZADO NA MIDIA DO ZABBIX.
    /opt/yowsup-master/yowsup-cli demos -s $1 $2 “$3″ -c /opt/yowsup-master/src/yowsup-cli.config

    ENVIO DE MENSAGEM POR LINHA DE COMANDO.
    RJOXXXXXX01:/etc/zabbix/scripts # ./whatsapp.sh 5521993XXXXXX ” ” “teste2015”
    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    INFO:yowsup.demos.sendclient.layer:Message sent
    Yowsdown

    SUDOERS
    zabbix ALL=(ALL) ALL
    Defaults:zabbix !requiretty

    • Qual distro você está usando? Dependendo de qual, pode haver alguma peculiaridade para fazer funcionar via script.

    • Rafael Gasparotto
    • 7 de julho de 2015

    Marcelo,

    Aquele usuario zabbix que voce da acesso é qual usuario, em qual momento voce criou ele?

    • Olá Rafael, tudo bem? Esse usuário é criado no momento da instalação do Zabbix. Caso não tenha o usuário criado, você pode seguir o tutorial de instalação para criá-lo. Ou pode utilizar o root mesmo. Abraço

    • Paulo de tarso
    • 7 de julho de 2015

    Fiz o cadastro e recebi a senha, adicionei no arquivo porem quando tento enviar uma mensagem teste, recebo a seguinte resposta:
    WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
    Authentication Error: not-authorized

    • Pelo erro que você recebeu, parece ser algo de falha de login. Confira novamente seu arquivo ‘.conf’, verifique se não tem espaços a mais ou erro de digitação na senha. Se tudo estiver certo, você pode apagar a senha e rodar o comando de registro novamente.

      Abraço

    • Dillon Oliveira
    • 3 de julho de 2015

    Bom dia,

    Segue

    [root@zabbixmonitoramento yowsup-master]# ./yowsup-cli registration -r sms -c /etc/zabbix/zap.config
    Traceback (most recent call last):
    File “./yowsup-cli”, line 321, in
    if not parser.process():
    File “./yowsup-cli”, line 156, in process
    self.handleRequestCode(self.args[“requestcode”], config)
    File “./yowsup-cli”, line 174, in handleRequestCode
    result = codeReq.send()
    File “/root/yowsup/yowsup-master/yowsup/registration/coderequest.py”, line 38, in send
    request = WAExistsRequest(self.cc, self.p_in, self.__id)
    File “/root/yowsup/yowsup-master/yowsup/registration/existsrequest.py”, line 15, in __init__
    self.addParam(“token”, CURRENT_ENV.getToken(p_in))
    File “/root/yowsup/yowsup-master/yowsup/env/env_android.py”, line 55, in getToken
    subHash.update(ipad + data)
    TypeError: update() argument 1 must be string or read-only buffer, not bytearray
    [root@zabbixmonitoramento yowsup-master]#

    • Cleonardo
    • 3 de julho de 2015

    [root@monitoramento yowsup-master]# yum groupinstall “Development tools”
    Loaded plugins: refresh-packagekit, security
    Setting up Group Process
    Package flex-2.5.35-9.el6.x86_64 already installed and latest version
    Package gcc-4.4.7-11.el6.x86_64 already installed and latest version
    Package redhat-rpm-config-9.0.3-42.0.1.el6.noarch already installed and latest version
    Package rpm-build-4.8.0-38.el6_6.x86_64 already installed and latest version
    Package 1:make-3.81-20.el6.x86_64 already installed and latest version
    Package patch-2.6-6.el6.x86_64 already installed and latest version
    Package 1:pkgconfig-0.23-9.1.el6.x86_64 already installed and latest version
    Package gettext-0.17-18.el6.x86_64 already installed and latest version
    Package automake-1.11.1-4.el6.noarch already installed and latest version
    Package bison-2.4.1-5.el6.x86_64 already installed and latest version
    Package libtool-2.2.6-15.5.el6.x86_64 already installed and latest version
    Package autoconf-2.63-5.1.el6.noarch already installed and latest version
    Package gcc-c++-4.4.7-11.el6.x86_64 already installed and latest version
    Package binutils-2.20.51.0.2-5.42.el6.x86_64 already installed and latest version
    Package patchutils-0.3.1-3.1.el6.x86_64 already installed and latest version
    Package byacc-1.9.20070509-7.el6.x86_64 already installed and latest version
    Package indent-2.2.10-7.el6.x86_64 already installed and latest version
    Package systemtap-2.5-5.0.2.el6.x86_64 already installed and latest version
    Package diffstat-1.51-2.el6.x86_64 already installed and latest version
    Package elfutils-0.158-3.2.el6.x86_64 already installed and latest version
    Package cvs-1.11.23-16.el6.x86_64 already installed and latest version
    Package rcs-5.7-37.el6.x86_64 already installed and latest version
    Package subversion-1.6.11-12.el6_6.x86_64 already installed and latest version
    Package gcc-gfortran-4.4.7-11.el6.x86_64 already installed and latest version
    Package 1:doxygen-1.6.1-6.el6.x86_64 already installed and latest version
    Package intltool-0.41.0-1.1.el6.noarch already installed and latest version
    Package git-1.7.1-3.el6_4.1.x86_64 already installed and latest version
    Package ctags-5.8-2.el6.x86_64 already installed and latest version
    Package cscope-15.6-6.el6.x86_64 already installed and latest version
    Package swig-1.3.40-6.el6.x86_64 already installed and latest version
    Warning: Group development does not have any packages.
    No packages in any requested group available to install or update
    [root@monitoramento yowsup-master]# yum update -y
    Loaded plugins: refresh-packagekit, security
    Setting up Update Process
    No Packages marked for Update

    • Cleonardo
    • 3 de julho de 2015

    Marcelo, fiz a instalação do Development tools e o update, continua o mesmo erro:
    yowsup-cli demos -s 55859***** “Teste Whatsapp” -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.3.123’, ‘yowsup-cli’)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 461, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 1194, in run_script
    execfile(script_filename, namespace, namespace)
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 321, in
    if not parser.process():
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 229, in process
    self.startSendClient()
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 269, in startSendClient
    from yowsup.demos import sendclient
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/demos/sendclient/__init__.py”, line 1, in
    from .stack import YowsupSendStack
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/demos/sendclient/stack.py”, line 1, in
    from yowsup.stacks import YowStack
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/stacks/__init__.py”, line 1, in
    from .yowstack import YowStack, YowStackBuilder
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/stacks/yowstack.py”, line 22, in
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/layers/axolotl/layer.py”, line 14, in
    from axolotl.sessioncipher import SessionCipher
    File “/usr/lib/python2.6/site-packages/python_axolotl-0.1.7-py2.6.egg/axolotl/sessioncipher.py”, line 3, in
    from Crypto.Util import Counter
    ImportError: cannot import name Counter

  15. oi Dillon, tudo bem

    Creio ter havido um erro de digitação. O correto é yum groupinstall “Development tools”.

    Pode tentar novamente?

    Abraço

    • Cleonardo
    • 3 de julho de 2015

    Marcelo, quando tento enviar a msg de teste esta apresentando o seguinte erro:

    yowsup-cli demos -s 5585996***** “Teste Whatsapp” -c /etc/zabbix/zap.conf
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 5, in
    pkg_resources.run_script(‘yowsup2==2.3.123’, ‘yowsup-cli’)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 461, in run_script
    self.require(requires)[0].run_script(script_name, ns)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 1194, in run_script
    execfile(script_filename, namespace, namespace)
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 321, in
    if not parser.process():
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 229, in process
    self.startSendClient()
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/EGG-INFO/scripts/yowsup-cli”, line 269, in startSendClient
    from yowsup.demos import sendclient
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/demos/sendclient/__init__.py”, line 1, in
    from .stack import YowsupSendStack
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/demos/sendclient/stack.py”, line 1, in
    from yowsup.stacks import YowStack
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/stacks/__init__.py”, line 1, in
    from .yowstack import YowStack, YowStackBuilder
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/stacks/yowstack.py”, line 22, in
    from yowsup.layers.axolotl import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/layers/axolotl/__init__.py”, line 1, in
    from .layer import YowAxolotlLayer
    File “/usr/lib/python2.6/site-packages/yowsup2-2.3.123-py2.6.egg/yowsup/layers/axolotl/layer.py”, line 14, in
    from axolotl.sessioncipher import SessionCipher
    File “/usr/lib/python2.6/site-packages/python_axolotl-0.1.7-py2.6.egg/axolotl/sessioncipher.py”, line 3, in
    from Crypto.Util import Counter
    ImportError: cannot import name Counter

    • Olá Cleonardo, tudo bem?

      Parece que estão faltando pacotes no seu linux. Por favor, rode os seguintes comandos:

      # yum groupinstall “Development tools”
      # yum update -y

      Me retorne se deu certo! Abraço!

    • Renato Ferreira
    • 2 de julho de 2015

    Boa tarde Marcelo, estou com o mesmo problema do nosso amigo acima. Já dei permissão pro script, já adicionei o usuário zabbix no sudoers e o alerta envia as mensagens, mas pelo que parece não está executando o script. Tem alguma idéia do que pode ser? No action log do zabbix aparece como enviado.

    • Parece que estão faltando pacotes no seu linux. Por favor, rode os seguintes comandos:

      # yum groupinstall “Development tools”
      # yum update -y

      Me retorne se deu certo! Abraço!

    • Dillon Oliveira
    • 1 de julho de 2015

    Boa Noite Marcelo,

    Teria como me ajudar?
    Linux, Centos 6.6 Zabbix 2.2.4

    [root@zabbixmonitoramento yowsup-master]# yowsup-cli registration -r sms -c /etc/zabbix/zap.config
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 4, in
    import pkg_resources
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 2655, in
    working_set.require(__requires__)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 648, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 546, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: pillow

    Depois tentei como sugeriu no comentário acima,

    [root@zabbixmonitoramento yowsup-master]# yum groupinstall “Develepment Tools”
    Plugins carregados: fastestmirror
    Configurando o processo de grupos
    Loading mirror speeds from cached hostfile
    * base: mirror.nbtelecom.com.br
    * extras: mirror.nbtelecom.com.br
    * updates: mirror.nbtelecom.com.br
    Aviso: O grupo Develepment Tools não existe.
    Nenhum pacote disponível para instalação ou atualização nos grupos requisitados
    [root@zabbixmonitoramento yowsup-master]#

    abc

    • Houve um erro de digitação no comando:

      # yum groupinstall “Development tools”
      # yum update -y

      Me retorne se deu certo! Abraço!

    • Fábio
    • 30 de junho de 2015

    aqui fiz duas alteção no

    Alterei as aspas em yowsup-cli demos -s $1 “$3” -c /etc/zabbix/zap.conf

    e ./zabbix_whattsapp.sh 55478802XXX “” “TESTE DE ENVIO”

    • Obrigado por compartilhar Fábio! Abraços!

    • Rafael
    • 26 de junho de 2015

    Cara executei esses procedimentos e até consigo enviar executando o scrit só ser for da forma abaixo sem aspas, mas ele corta a mensagem:
    ./whatsapp.sh 5511966104087 Zabbix esta offline

    Se eu coloco igual ao seu exemplo a mensagem não chega, diz que enviou mas não chega.
    ./whatsapp.sh 5511966104087 “””Zabbix esta offline”

    e nao consigo de jeito nenhum enviar pelo zabbix não chega a mensagem, na auditoria diz que foi enviado.

    Você sabe o que pode ser?

    • E aí Rafael tudo bem? É necessário adicionar o usuário Zabbix ao arquivo SUDOERS. Já corrigi o artigo colocando esse passo!

      Edite o arquivo /etc/sudoers;
      Adicione o seguinte:

      # allows ‘zabbix’ user to run all commands without password.
      zabbix ALL=NOPASSWD: ALL

      Abraços

        • Ericsson
        • 29 de junho de 2015

        Fiz isso mas aqui nao funcionou… 🙁

        • Olá Ericsson! Pode me dizer como está seu ambiente? Versões do Linux e do Zabbix? Abraços!

            • Ericsson
            • 29 de junho de 2015

            Zabbix 2.4 e Debian 7, tive que instalar o sudo, tambem coloquei as permissoes no /etc/sudoers e /etc/zabbix, o zabbix continua funcioando normalmente so as mensagens que nao estao chegando nos celulares

          • Olá Ericsson, atualizei o artigo, dê uma olhada nas alterações no script e no arquivo /etc/sudoers, enviada pelo Fabio!
            Abraço

    • Ericsson
    • 26 de junho de 2015

    Boa Noite Marcelo

    Me script esta funcionando corretamente mas no zabbix nao esta funcionando….

    yowsup-cli demos –config config.example –send $1 “$3”

    • E aí Ericsson!

      E aí Rafael tudo bem? É necessário adicionar o usuário Zabbix ao arquivo SUDOERS. Já corrigi o artigo colocando esse passo!

      Edite o arquivo /etc/sudoers;
      Adicione o seguinte:

      # allows ‘zabbix’ user to run all commands without password.
      zabbix ALL=NOPASSWD: ALL

      Abraços

    • Fabio Coelho
    • 24 de junho de 2015

    Marcelo.

    Parabens, saberia me informar se essa configuração funcionaria para zabbix-proxy?

    • O que vc pretende? Instalar o Yowsup no Proxy?

    • Junior
    • 24 de junho de 2015

    Marcelo, boa tarde
    Desculpe a demora para responder.
    Cara tive um problema com a versão 6.6 do CentOS com o python2.6, apresentava alguns bugs inclusive aquele que mencionei no comentario. Porem instalei a versão do python2.7 e fiz algumas alterações e alias para que sistema le essa versão atual primeiro ao comando python. Estou a terminar hoje de realizar essa config.
    Obrigado até o momento.

    • Junior
    • 23 de junho de 2015

    Estou testando debugar isso, pode me ajudar?

    [root@]# yowsup-cli registration -r sms -c /etc/zabbix/zap.config
    Traceback (most recent call last):
    File “/usr/bin/yowsup-cli”, line 4, in
    import pkg_resources
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 2655, in
    working_set.require(__requires__)
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 648, in require
    needed = self.resolve(parse_requirements(requirements))
    File “/usr/lib/python2.6/site-packages/pkg_resources.py”, line 546, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: pillow

      • Marcelo Medeiros
      • 23 de junho de 2015

      Oi Júnior, quais pacotes você instalou? Você pode usar também o seguinte comando para instalar as ferramentas de desenvolvimento:

      # yum groupinstall “Develepment Tools”

      Por favor, me dê um feedback!

    • Junior
    • 23 de junho de 2015

    Boa tarde,

    Fera nessa linha abaixo faltou colocar o python setup.py install

    Instalando o Yowsup:
    Dentro da pasta descompactada, basta rodar o script de instalação com o argumento “install”:

    # setup.py install

      • Marcelo Medeiros
      • 23 de junho de 2015

      Olá Júnior! No caso, nem usei o python na frente, apenas coloquei o “./”

      Mas você tinha razão, já corrigi o artigo. Muito obrigado pelo feedback e pela visita! Abraço!

  16. Olá Rodrigo
    Já pesquisei e encontrei a solução. Fiz um update no artigo!

    Abraços

Comments are closed.