<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=&quot;/usr/local/bin/log_sip_Online.txt&quot;<br>LOG_OFF=&quot;/usr/local/bin/log_sip_offline.txt&quot;<br><br>if [ ! -f &quot;$LOG_ON&quot; ]; then `umask 0; /usr/local/bin/log_sip_Online.txt` <br>fi<br>if [ ! -f &quot;$LOG_ON&quot; ]; then `umask 0; /usr/local/bin/log_sip_offline.txt`;<br>fi<br><br>data=`date +%d/%m/%Y&#39; &#39;%T&#39;&#39;`<br><br>verificastatus(){<br>  contas=(&quot;${!1}&quot;)<br>  for sip in ${contas[@]}<br>  do<br>#Verificar se a conta está online<br>    RESIP=`asterisk -x &quot;sip show peers&quot; 2&gt;/dev/null | grep -w OK | awk &#39;{print $1}&#39; | awk -F&#39;/&#39; &#39;{print $1}&#39; | grep &quot;${sip}&quot;`<br>        if [ -z $RESIP ]; then<br>#Verifica se conta existe<br>                EXISTSIP=`asterisk -x &quot;sip show peers&quot; 2&gt;/dev/null | awk &#39;{print $1}&#39; | awk -F&#39;/&#39; &#39;{print $1}&#39; | grep &quot;${sip}&quot;`<br>                if [ -z $EXISTSIP ]; then continue<br>#                        echo ${sip} &quot;&lt;&lt;&lt;CONTA INEXISTENTE&gt;&gt;&gt;&quot;<br>#                continue        <br>                fi<br><br>                declare regex=&quot;\s+${sip}\s+&quot;<br>                declare file_content=$( cat &quot;${LOG_OFF}&quot; )<br>                if [[ &quot; $file_content &quot; =~ $regex ]]<br>                    then<br>#                                echo &quot;${sip} está no log off line...não fazer nada&quot;<br>            continue<br>                    else<br>                    `echo ${sip} $data&gt;&gt;${LOG_OFF}`                                        # insere no log_offline<br>                    `sed -i -e &quot;/${sip}/d&quot; $LOG_ON`                                        # remove do log_online<br>                                echo &quot;ENVIAR ALERTA [${sip}] - ((OFFLINE))&quot;<br>                fi<br>        else<br>                declare regex=&quot;\s+${sip}\s+&quot;<br>                declare file_content=$( cat &quot;${LOG_ON}&quot; )<br>                if [[ &quot; $file_content &quot; =~ $regex ]]<br>                    then<br>#                                echo &quot;${sip} está no log ONLINE .... não fazer nada&quot;<br>            continue<br>                    else<br>                                `echo ${sip} $data&gt;&gt;${LOG_ON}`                                        # insere no log_Online<br>                                `sed -i -e &quot;/${sip}/d&quot; $LOG_OFF`                                # remove do log_offline<br>                                echo &quot;ENVIAR ALERTA [${sip}] - ((ONLINE))&quot;<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 &lt;<a href="mailto:pavlvscaesar@gmail.com">pavlvscaesar@gmail.com</a>&gt; 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 &lt;<a href="mailto:franque@gmail.com" target="_blank">franque@gmail.com</a>&gt; 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>