Zenoss SMS texto faltando

2

Eu configurei um Xenserver hospedando uma Debian VM com Zenoss Core 4.2.4 . O Xenserver tem um Siemens Modem GSM T35 conectado à sua porta serial COM1. Eu usei ser2net + algumas configurações do Xenserver para fazê-lo funcionar. (Ligação COM1, SELinux, ...) Eu criei um script de shell que pode facilmente enviar mensagens SMS.

Eu criei um gatilho + notificação e tudo funciona perfeitamente, EXCETO que a mensagem está vazia !!!

Aqui está o script:

#!/usr/bin/expect
# - VAR
set ctrlz 2
set xt 5
set timeout 15
set host [lindex $argv 0]
set port [lindex $argv 1]
set number [lindex $argv 2]
set message [lindex $argv 3]
# - LOG
log_file -a sms.log;
send_log "$host $port $number:$message"
# - CONNECT
spawn telnet $host $port
sleep 1
# - SEND
send AT+CMGF=1\r;
expect "OK"
send AT+CMGS="$number"\r;
expect ">"
send "$message$ctrlz";
expect "OK"
# - END

E aqui está o comando de página Zenoss:

$ZENHOME/bin/sms.sh 10.10.0.52 3333 $RECIPIENT

Isso funciona no Linux da seguinte forma:

./sms.sh 10.10.0.52 3333 +32486000000 message

Não consigo mais a mensagem do Zenoss na mensagem SMS .... Eu preciso concluir este último passo para que ele funcione totalmente!

Se eu tentar enviar uma mensagem de teste do Zenoss, ela também chegará, mas sem texto ...

Obrigado pelo seu tempo!

    
por grmbl 04.06.2014 / 08:05

3 respostas

2

Está funcionando,

Eu procurei no arquivo /usr/local/zenoss/Products/ZenUtils/Utils.py para descobrir O Zenoss envia o texto da mensagem para stdin , então eu só precisei ler stdin no script esperado para receber a mensagem.

Aqui está o novo script de trabalho: (note que deixei de fora os parâmetros host & port)

#!/usr/bin/expect
# - VAR
set ctrlz 2
set xt 5
set timeout 15
set number [lindex $argv 0]
set message [gets stdin]
# - LOG
log_file -a sms.log;
send_log "$number:$message"
# - CONNECT
spawn telnet 10.10.0.52 3333
sleep 1
# - SEND
send AT+CMGF=1\r;
expect "OK"
send AT+CMGS="$number"\r;
expect ">"
send "$message$ctrlz";
expect "OK"
# - END

Espero que isso ajude alguém!

    
por 04.06.2014 / 11:03
2

O problema parece ser que, do meu ponto de vista, o Zenoss envia a mensagem real para a entrada STDIN dos scripts, mas seu script espera isso como um parâmetro de linha de comando. Você tem que modificar seu script esperado de forma que ele leia a mensagem de STDIN em vez de $argv 3 . Depois disso, seu script de teste deve funcionar assim:

echo "Message" | ./sms.sh 10.10.0.52 3333 +32486000000 

Eu realmente não sei esperar, então não posso ajudar com o roteiro atual.

    
por 04.06.2014 / 10:57
0

expect ">" ? Isso é algum tipo de erro de copiar e colar ou deveria realmente ser expect ">" ?

    
por 04.06.2014 / 08:17