Srs. blz!!! Corrigido todo o loop ... gerando log. testei aqui tudo funcionando.
Solução nível bash... Depois vejo de buscar as contas e checar com as contas já existentes no sistema, primeira vez que monto algo assim para asterisk. Explica rapidamente, ... verifica se conta está on-line, se está insere no log_sip_Online.txt idem para log_sip_offline.txt quando verifica novamente, vê se está no log se sim .. sai sem fazer nada .. senão ... muda o SIP de log e dai pode disparar outros comandos, como queria enviar para um db as informações. _Modifique as pastas e nomes para suas preferências, só lembrando de dar permissão ao arquivo e inserir o PATH na cron, senão não roda !!! até + galera!!! Detalhe legal do log, ao menos registra a data e hora! Resolvi mover de log para não gerar um log muito extenso, e ter de fato só o que precisa. comentem os echo ai ... na cron são inúteis. # crontab -e -------------------------------------------- > > PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin > * * * * * /usr/local/bin/sip_monitore.sh ----------------------------------------------- sip_monitore.sh > #!/bin/bash > contas_sip=(4444 6001 6002 6003 6004 7777) > > LOG_ON="/usr/local/bin/log_sip_Online.txt" > LOG_OFF="/usr/local/bin/log_sip_offline.txt" > > if [ ! -f "$LOG_ON" ]; then `umask 0; /usr/local/bin/log_sip_Online.txt` > fi > if [ ! -f "$LOG_ON" ]; then `umask 0; /usr/local/bin/log_sip_offline.txt`; > fi > > data=`date +%d/%m/%Y' '%T''` > > verificastatus(){ > contas=("${!1}") > for sip in ${contas[@]} > do > #Verificar se a conta está online > RESIP=`asterisk -x "sip show peers" 2>/dev/null | grep -w OK | awk > '{print $1}' | awk -F'/' '{print $1}' | grep "${sip}"` > if [ -z $RESIP ]; then > #Verifica se conta existe > EXISTSIP=`asterisk -x "sip show peers" 2>/dev/null | awk '{print $1}' | > awk -F'/' '{print $1}' | grep "${sip}"` > if [ -z $EXISTSIP ]; then continue > # echo ${sip} "<<<CONTA INEXISTENTE>>>" > # continue > fi > > declare regex="\s+${sip}\s+" > declare file_content=$( cat "${LOG_OFF}" ) > if [[ " $file_content " =~ $regex ]] > then > # echo "${sip} está no log off line...não fazer nada" > continue > else > `echo ${sip} $data>>${LOG_OFF}` # insere no log_offline > `sed -i -e "/${sip}/d" $LOG_ON` # remove do log_online > echo "ENVIAR ALERTA [${sip}] - ((OFFLINE))" > fi > else > declare regex="\s+${sip}\s+" > declare file_content=$( cat "${LOG_ON}" ) > if [[ " $file_content " =~ $regex ]] > then > # echo "${sip} está no log ONLINE .... não fazer nada" > continue > else > `echo ${sip} $data>>${LOG_ON}` # insere no log_Online > `sed -i -e "/${sip}/d" $LOG_OFF` # remove do log_offline > echo "ENVIAR ALERTA [${sip}] - ((ONLINE))" > fi > fi > done > } > > verificastatus contas_sip[@] > > exit > Deixe rodando com # tail -f log_sip_offline.txt é possível ver assim que o Sip ficar Offilne o preenchimento no arquivo, ... o delete o tail -f não exibe, mas deleta. Claro tem um delay!!! mas funciona! Boa sorte !!!! ate+glr Júlio Gadioli Soares. jug...@gmail.com Em qui., 11 de jun. de 2020 às 15:27, P@ulo <pavlvscae...@gmail.com> escreveu: > Existe uma solução, ela foi descontinuada, porém me ajuda muito é o MONAST: > https://dagmoller.github.io/monast/ > > > Em ter., 9 de jun. de 2020 às 09:21, Franque Custódio <fran...@gmail.com> > escreveu: > >> Bom dia, amigos da lista. >> >> Situação: tenhos vários ramais em softphone e preciso que, quando eles se >> logam no sistema, seja executada uma ação (exemplo: enviar mensagem/inserir >> em uma banco). >> >> Alguém tem alguma idéia de por onde começar? >> >> Valeu! >> >> >> >> >> --------------------------------------------------------------- >> Franque Custódio >> fran...@gmail.com >> --------------------------------------------------------------- >> _______________________________________________ >> Contact Center em Nuvem >> Home Office >> http://www.weontap.com.br >> _______________________________________________ >> Para remover seu email desta lista, basta enviar um email em branco para >> asteriskbrasil-unsubscr...@listas.asteriskbrasil.org > > > > -- > ------------------ > Paulo César > ------------------ > _______________________________________________ > Contact Center em Nuvem > Home Office > http://www.weontap.com.br > _______________________________________________ > Para remover seu email desta lista, basta enviar um email em branco para > asteriskbrasil-unsubscr...@listas.asteriskbrasil.org
_______________________________________________ Contact Center em Nuvem Home Office http://www.weontap.com.br _______________________________________________ Para remover seu email desta lista, basta enviar um email em branco para asteriskbrasil-unsubscr...@listas.asteriskbrasil.org