<div dir="ltr"><div>Franque,</div><div><br></div><div>Aqui temos um script que fica ouvindo o AMI. Quando o asterisk lança o evento &#39;ExtensionStatus&#39; nós executamos algumas rotinas. </div><div>Outra coisa é que adicionamos no manager.conf apenas os eventos que utilizamos (ex: <i>eventfilter=Event: ExtensionStatus</i>). </div><div><br></div><div>Decidimos por esse caminho pois o evento é lançado pelo próprio Asterisk no momento da troca de status do softphone.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qua., 10 de jun. de 2020 às 10:25, Richard Amaral de Jesus &lt;<a href="mailto:richard.ajesus@gmail.com">richard.ajesus@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">Rapaz, parte para ARI. 

<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Endpoints+REST+API" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Endpoints+REST+API</a>  <br>Apenas com uma chamada webservice tu consegue as informações.<br>E o telnet do asterisk não é lá essas coisas quando se trata de integração e monitoramento.<br>Dá trabalho demais ter que ficar fatiando essas strings aí.<br>ARI já te dá tudo em JSON, qualquer linguagem de programação tem suporte.<br><br><div><img src="cid:ii_kb9dr0q20" alt="image.png" width="362" height="472"><br><br><div><img src="cid:ii_kb9dvitr1" alt="image.png" width="472" height="206"><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qua., 10 de jun. de 2020 às 09:48, 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">Tentei usar o ExtensionState do AMI, mas o retorno do AMI é um fluxo contínuo de informações, não apenas a resposta do comando que enviei, e estou com dificuldades para filtrar o fluxo e pegar apenas o que me interessa. <br>Abaixo o script que estou fazendo, até onde consegui ir, caso ajude alguém.<br><br>========================================================</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>#!/bin/php<br><br>&lt;?php<br><br>// variaveis para o AMI<br>$host = &quot;IP_DO_ASTERISK&quot;;<br>$user = &quot;USER_AMI&quot;;<br>$pass = &quot;SENHA_AMI&quot;;<br>$ramal = $argv[1];<br><br>function connect($host, $user, $pass)<br>{<br>        $timeout = 10;<br>        $socket = fsockopen($host,&quot;5038&quot;, $errno, $errstr, $timeout);<br>        fputs($socket, &quot;Action: Login\r\n&quot;);<br>        fputs($socket, &quot;UserName: $user\r\n&quot;);<br>        fputs($socket, &quot;Secret: $pass\r\n\r\n&quot;);<br><br>        return $socket;<br>}<br><br>function get_response($socket)<br>{<br>        $line = &quot;&quot;;<br>        $response = &quot;&quot;;<br><br>        while ($line != &quot;\r\n&quot;)<br>        {<br>                $line = fgets($socket,128);<br>                $response .= $line;<br>        }<br><br>        return $response;<br>}<br><br>function parse_response($response, $event)<br>{<br>        $exploded = explode(&quot;\r\n&quot;,$response);<br><br>        foreach ($exploded as $line)<br>        {<br>                if (strlen($line) &gt;= strlen($event))<br>                {<br>                        if (substr($line,0,strlen($event)) == $event)<br>                        {<br>                                return substr($line, strlen($event)+2);<br>                        }<br>                }<br>        }<br>}<br></div><div><div dir="ltr"><br></div><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><span style="font-family:Arial,Helvetica,sans-serif">$socket = connect($host, $user, $pass);</span></div>$response = get_response($socket);<br>$parsed = parse_response($response, &quot;Message&quot;);<br><br>if ($parsed == &quot;Authentication accepted&quot;)<br>{<br>        echo &quot;Logado\n&quot;;<br>        echo &quot;=======================\n&quot;;<br>}<br><br>fputs($socket, &quot;ACTION: ExtensionState\r\n&quot; );<br>fputs($socket, &quot;Context: procergs-local-outros\r\n&quot; );<br>fputs($socket, &quot;Exten: $ramal\r\n&quot; );<br>fputs($socket, &quot;ActionID: 1234\r\n\r\n&quot; );<br><br>$response = get_response($socket);<br>$parsed = parse_response($response, &quot;ExtensionState&quot;);<br><br>echo &quot;Response: \n&quot;;<br>echo &quot;$response \n&quot;;<br>echo &quot;Parsed: \n&quot;;<br>echo &quot;$parsed \n&quot;;<br>echo &quot;=======================\n&quot;;<br><br>fclose($socket);<br><br>echo &quot;\n&quot;;<br><br>?&gt;<br><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">=================================================</div><br><br>---------------------------------------------------------------<br>Franque Custódio<br><a href="mailto:franque@gmail.com" target="_blank">franque@gmail.com</a><br>---------------------------------------------------------------</div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter., 9 de jun. de 2020 às 22:44, Thiago Lopes Varanda &lt;<a href="mailto:thg.varanda@gmail.com" target="_blank">thg.varanda@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">Você pode capturar evento &#39;ExtensionsStatus&#39; no AMI.<div><br></div><div><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_ExtensionStatus" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_ExtensionStatus</a><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter., 9 de jun. de 2020 às 22:21, Júlio Gadioli Soares &lt;<a href="mailto:jugaso@gmail.com" target="_blank">jugaso@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">Boa noite, Franque, <div><br></div><div>vc pediu uma idéia para começar... segue ai, podem ter soluções melhores, mas com a cron isso aqui já te ajuda ...</div><div>incremente o shell script que dá tudo certo!</div><div><br></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><br>SIP6001=`asterisk -x &quot;sip show peers&quot; | grep -w OK | awk &#39;{print $1}&#39; | awk -F&#39;/&#39; &#39;{print $1}&#39; | grep &quot;6001&quot;`<br><br>if [ -z $SIP6001 ]; then<br>        echo &quot;OFF-LINE&quot;<br>else<br>        echo &quot;Online&quot;<br>fi<br></blockquote><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>
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>
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>
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>
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>