<div dir="ltr"><div><div>Srs. blz!!!</div><div> Corrigido todo o loop ... gerando log. testei aqui tudo funcionando.<br></div></div><div><br></div><div>Solução nível bash...</div><div><br></div><div>Depois vejo de buscar as contas e checar com as contas já existentes no sistema, primeira vez que monto algo assim para asterisk.</div><div> </div><div>Explica rapidamente, ... verifica se conta está on-line, se está insere no log_sip_Online.txt idem para log_sip_offline.txt</div><div>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.</div><div><br></div><div>_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 !!!</div><div>até + galera!!!</div><div><br></div><div>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.</div><div>comentem os echo ai ... na cron são inúteis.</div><div><br></div><div># crontab -e </div><div>--------------------------------------------</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin<br>* * * * * /usr/local/bin/sip_monitore.sh</blockquote><div>-----------------------------------------------</div><div><br></div><div>sip_monitore.sh</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">#!/bin/bash<br>contas_sip=(4444 6001 6002 6003 6004 7777)<br><br>LOG_ON="/usr/local/bin/log_sip_Online.txt"<br>LOG_OFF="/usr/local/bin/log_sip_offline.txt"<br><br>if [ ! -f "$LOG_ON" ]; then `umask 0; /usr/local/bin/log_sip_Online.txt` <br>fi<br>if [ ! -f "$LOG_ON" ]; then `umask 0; /usr/local/bin/log_sip_offline.txt`;<br>fi<br><br>data=`date +%d/%m/%Y' '%T''`<br><br>verificastatus(){<br> contas=("${!1}")<br> for sip in ${contas[@]}<br> do<br>#Verificar se a conta está online<br> RESIP=`asterisk -x "sip show peers" 2>/dev/null | grep -w OK | awk '{print $1}' | awk -F'/' '{print $1}' | grep "${sip}"`<br>        if [ -z $RESIP ]; then<br>#Verifica se conta existe<br>                EXISTSIP=`asterisk -x "sip show peers" 2>/dev/null | awk '{print $1}' | awk -F'/' '{print $1}' | grep "${sip}"`<br>                if [ -z $EXISTSIP ]; then continue<br>#                        echo ${sip} "<<<CONTA INEXISTENTE>>>"<br>#                continue        <br>                fi<br><br>                declare regex="\s+${sip}\s+"<br>                declare file_content=$( cat "${LOG_OFF}" )<br>                if [[ " $file_content " =~ $regex ]]<br>                 then<br>#                                echo "${sip} está no log off line...não fazer nada"<br> continue<br>                 else<br>         `echo ${sip} $data>>${LOG_OFF}`                                        # insere no log_offline<br>         `sed -i -e "/${sip}/d" $LOG_ON`                                        # remove do log_online<br>                                echo "ENVIAR ALERTA [${sip}] - ((OFFLINE))"<br>                fi<br>        else<br>                declare regex="\s+${sip}\s+"<br>                declare file_content=$( cat "${LOG_ON}" )<br>                if [[ " $file_content " =~ $regex ]]<br>                 then<br>#                                echo "${sip} está no log ONLINE .... não fazer nada"<br> continue<br>                 else<br>                                `echo ${sip} $data>>${LOG_ON}`                                        # insere no log_Online<br>                                `sed -i -e "/${sip}/d" $LOG_OFF`                                # remove do log_offline<br>                                echo "ENVIAR ALERTA [${sip}] - ((ONLINE))"<br>                fi<br>        fi<br>done<br>}<br><br>verificastatus contas_sip[@]<br><br>exit<br></blockquote><div><br></div><div><br></div><div>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.</div><div></div><div><br></div><div>Claro tem um delay!!! mas funciona!</div><div>Boa sorte !!!! ate+glr<br></div><div><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div><span style="font-size:12.8px">Júlio Gadioli Soares.</span><br></div></div><div><a href="mailto:jugaso@gmail.com" target="_blank">jugaso@gmail.com</a></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qui., 11 de jun. de 2020 às 15:27, P@ulo <<a href="mailto:pavlvscaesar@gmail.com">pavlvscaesar@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Existe uma solução, ela foi descontinuada, porém me ajuda muito é o MONAST:<div><a href="https://dagmoller.github.io/monast/" target="_blank">https://dagmoller.github.io/monast/</a> </div><div> <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter., 9 de jun. de 2020 às 09:21, Franque Custódio <<a href="mailto:franque@gmail.com" target="_blank">franque@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Bom dia, amigos da lista.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">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). </div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Alguém tem alguma idéia de por onde começar? </div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Valeu!</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div><div dir="ltr"><br><br>---------------------------------------------------------------<br>Franque Custódio<br><a href="mailto:franque@gmail.com" target="_blank">franque@gmail.com</a><br>---------------------------------------------------------------</div></div></div>
_______________________________________________<br>
Contact Center em Nuvem<br>
Home Office<br>
<a href="http://www.weontap.com.br" rel="noreferrer" target="_blank">http://www.weontap.com.br</a><br>
_______________________________________________<br>
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org" target="_blank">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr">------------------<br>Paulo César<br>------------------<br></div>
_______________________________________________<br>
Contact Center em Nuvem<br>
Home Office<br>
<a href="http://www.weontap.com.br" rel="noreferrer" target="_blank">http://www.weontap.com.br</a><br>
_______________________________________________<br>
Para remover seu email desta lista, basta enviar um email em branco para <a href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org" target="_blank">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></blockquote></div>