<div dir="ltr"><div><div><div><div><div>Danilo, <br><br></div>Como você está usando arquivos .call (que para esse seu cenário não é a melhor maneira) você poderá fazer algo na seguinte linha, considerando que os arquivos .call possuem um artifício que é o uso do <b>parametro ARCHIVE</b> que irá informar ao asterisk que, APÓS o arquivo .call ser utilizado, o asterisk deve armazenar um arquivo contendo o RESULTADO dessa ligação no diretório /var/spool/asterisk/outgoing_done/.<br><br>Basta você incluir a linha destacada em vermelho no seu código: <br><br><div><font size="1"> fputs($oSocket, &quot;Channel: $strChannel\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Callerid: $strCallerId\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Extension: $strExten\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Context: $strContext\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;MaxRetries: $strMaxRetry\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;RetryTime: $RetryTime\r\n&quot;);<font size="2"><br></font></font><font size="2"><span style="color:rgb(255,0,0)"><b> fputs($oSocket, &quot;Archive: yes\r\n&quot;);</b></span>   <span style="color:rgb(255,0,0)"><b> &lt;---------------------</b></span></font><br></div><div><font size="1"> fputs($oSocket, &quot;WaitTime: $WaitTime\r\n\r\n&quot;);<br><br></font></div>Com isso irá ter no diretório /var/spool/asterisk/outgoing_done/ um arquivo equivalente ao .call, porém contendo o resultado da ligação. <br><br></div>De posse desse arquivo, sua atuação poderia ser o seguinte: <br></div>1. após executar esse código discador.php, você direcionar para um outro script (tipo listener.php) que irá ficar em loop verificando se o arquivo de retorno do .call apareceu no diretório /var/spool/asterisk/outgoing_done/. <br></div>2. quando o arquivo aparecer, voce lê o conteúdo, e exibe para o usuario, o retorno da maneira que você desejar (se apenas o código, retorno json, se mensagem completa, etc).<br><br></div>Espero ter ajudado.<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><b><br></b></div><div><b>Atenciosamente,</b></div>
<div> </div>
<div> </div>
<div><span></span><b><font color="#45818e">Cláudio Éden</font></b>  </div><div>Consultor de TI  |  dCAA  |  MCDST  |  ITIL <br>+55 85 8972-1842 <br><br></div><div><a href="http://www.eden.com.br" target="_blank">http://www.eden.com.br</a> </div><div><a href="http://www.asteriskhandson.com.br" target="_blank">http://www.asteriskhandson.com.br</a></div><div><br></div><div><img src="https://docs.google.com/uc?export=download&amp;id=0B7kQ7o32GSoeTUstbzQyVHZlSjA&amp;revid=0B7kQ7o32GSoeY1hQSFp2aUdTaDBpWFRWRDhkUlMzL3hVOWs0PQ"><br><br></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">Em 21 de maio de 2015 11:39, Danilo Almeida <span dir="ltr">&lt;<a href="mailto:daniloricalmeida@gmail.com" target="_blank">daniloricalmeida@gmail.com</a>&gt;</span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Bom dia, Pessoal!!<div><br></div><div>Surgiu a necessidade de integrar um sistema de terceiro em um servidor que tenho em um cliente.</div><div><br></div><div>O sistema fará uma discagem através de uma URL que criei.</div><div><br></div><div><a href="http://asterisk/discador.php?user=USER&amp;pass=SENHA&amp;origem=RAMAL&amp;destino=NUMERO" target="_blank">http://asterisk/discador.php?user=USER&amp;pass=SENHA&amp;origem=RAMAL&amp;destino=NUMERO</a></div><div><br></div><div>segue codígo:</div><div><br></div><div><div><font size="1">&lt;?php</font></div><div><font size="1">include_once &quot;Connection.class.php&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> # Usuario e senha para acesso ao sistema</font></div><div><font size="1"> $origem = $_GET[&#39;origem&#39;];</font></div><div><font size="1"> $destino = $_GET[&#39;destino&#39;];</font></div><div><font size="1"><br></font></div><div><font size="1">$conn = new Connection();</font></div><div><font size="1"><br></font></div><div><font size="1">    $user = anti_injection($_GET[&#39;user&#39;]);</font></div><div><font size="1">    $pass = anti_injection($_GET[&#39;pass&#39;]);</font></div><div><font size="1"><br></font></div><div><font size="1">    $sql1 = &#39;SELECT * FROM tb_usuarios WHERE user_login = \&#39;&#39;.$user.&#39;\&#39;AND user_senha = \&#39;&#39;.$pass.&#39;\&#39;&#39;;</font></div><div><font size="1">          $rs = mysql_query($sql1);</font></div><div><font size="1">          if(mysql_num_rows($rs) &gt; 0 ){</font></div><div><font size="1">            $permissao = TRUE;</font></div><div><font size="1">          }else{</font></div><div><font size="1">            $permissao =  FALSE;</font></div><div><font size="1">          }</font></div><div><font size="1"><br></font></div><div><font size="1"><br></font></div><div><font size="1">if(($permissao == TRUE)AND($origem != &quot;&quot;)AND($destino != &quot;&quot;)){ #informe o endereco ip do seu asterisk</font></div><div><font size="1"><br></font></div><div><font size="1"> $strHost = &quot;127.0.0.1&quot;;</font></div><div><font size="1"> </font></div><div><font size="1"> #especifique o usuario que ira conectar ao CLI (deve estar definido em /etc/asterisk/manager.conf)</font></div><div><font size="1"> $strUser = &quot;USUARIO&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #senha para o usuario acima</font></div><div><font size="1"> $strSecret = &quot;SENHA&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #especifique o canal (extension) que vc deseja receber estas ligacoes</font></div><div><font size="1"> #exemplo: SIP/XXX, IAX2/XXXX, ZAP/XXXX,</font></div><div><font size="1"> $strChannel = &quot;Local/&quot;.$origem.&quot;@contexto-discador&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #informe o contexto que ira processar a ligacao para PSTN</font></div><div><font size="1"> $strContext = &quot;contexto-pabx&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #especifique a prioridade do contexto acima</font></div><div><font size="1"> $strPriority = &quot;1&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #especifique a quantidade de tentativas</font></div><div><font size="1"> $strMaxRetry = &quot;2&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> $WaitTime = &quot;30&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #Duração entre uma tentativa e outra</font></div><div><font size="1"> $RetryTime = &quot;15&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #obtem o numero a ser discado</font></div><div><font size="1"> $strExten = $destino;</font></div><div><font size="1"><br></font></div><div><font size="1"> #especifica um callerid para a ligacao</font></div><div><font size="1"> $strCallerId = $origem;</font></div><div><font size="1"><br></font></div><div><font size="1"> #nome do arquivo a ser criado</font></div><div><font size="1"> $arquivo_tmp = &quot;/tmp/&quot;.$strExten.&quot;.call&quot;;</font></div><div><span style="white-space:pre-wrap"><font size="1">        </font></span></div><div><font size="1"> #diretorio a ser movido após escrita</font></div><div><font size="1"> $arquivo_call = &quot;/var/spool/asterisk/outgoing/&quot;.$strExten.&quot;.call&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1"> #abre arquivo</font></div><div><font size="1"> $oSocket = $fp = fopen($arquivo_tmp, &quot;w&quot;);</font></div><div><font size="1"><br></font></div><div><font size="1"> fputs($oSocket, &quot;Channel: $strChannel\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Callerid: $strCallerId\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Extension: $strExten\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;Context: $strContext\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;MaxRetries: $strMaxRetry\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;RetryTime: $RetryTime\r\n&quot;);</font></div><div><font size="1"> fputs($oSocket, &quot;WaitTime: $WaitTime\r\n\r\n&quot;);</font></div><div><font size="1"><br></font></div><div><font size="1"> fclose(oSocket);</font></div><div><font size="1"><br></font></div><div><font size="1">system(&quot;mv &quot;.$arquivo_tmp.&quot; &quot;.$arquivo_call);</font></div><div><font size="1"><br></font></div><div><font size="1"> //copy($arquivo_tmp,$arquivo_call);</font></div><div><font size="1">//unlink($arquivo_tmp);</font></div><div><font size="1"><br></font></div><div><font size="1"> echo &quot;ok&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1">exit;</font></div><div><font size="1"><br></font></div><div><font size="1">}else{</font></div><div><font size="1">echo &quot;Parametros invalidos&quot;;</font></div><div><font size="1"><br></font></div><div><font size="1">exit;</font></div><div><font size="1">}</font></div><div><font size="1">?&gt;</font></div><div><br></div><div>Através dessa URL esta realizando ligação normalmente, o que gostaria da ajuda de vocês, é uma maneira de retornar o status da chamada através dessa mesma URL para o sistema.</div><div><br></div><div>EX: 0 - ok, 1 - ramal indisponivel, etc</div><div><br></div><div>Sei que tem alguma forma, gostaria de saber se alguém já desenvolveu alguma coisa assim e pode me dar uma dica.</div><div><br></div><div>OBS: Estou escrevendo um arquivo .call e jogando ele dentro do outgoing do asterisk para gerar a chamada. No asterisk 11 tentei fazer com o originate e não obtive sucesso.</div><div><br></div><div>Desde já agradeço.. abraços!!</div><div><br clear="all"><div><div><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0000ff">att</font></b><span class="HOEnZb"><font color="#888888"><div><b style="background-color:rgb(255,255,255)"><font color="#0000ff">Danilo Almeida</font></b></div></font></span></div></div></div>
</div>
</div></div>
<br>_______________________________________________<br>
WORKOFFEE KHOMP: em Junho serão 2 edições do workshop<br>
gratuito da Khomp:  dia 11 em Brasília, e dia 18 em Curitiba<br>
Aproveite e conheça os lançamentos: EBS Server PRO e UMG 100<br>
Garanta sua vaga e saiba mais em: <a href="http://www.workoffee.com.br" target="_blank">www.workoffee.com.br</a><br>
_______________________________________________<br>
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.<br>
Construa soluções de PABX IP com produtos DigiVoice - visite  <a href="http://www.digivoice.com.br" target="_blank">www.digivoice.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">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a><br></blockquote></div><br></div>