<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">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 class="" style="white-space:pre"><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 class="gmail_signature"><div dir="ltr"><b style="background-color:rgb(255,255,255)"><font color="#0000ff">att</font></b><div><b style="background-color:rgb(255,255,255)"><font color="#0000ff">Danilo Almeida</font></b></div></div></div></div>
</div>
</div></div>