<div dir="ltr">Existem algumas maneiras de melhorar o seu script PHP<br><br>a primeira seira utilizar o segundo parametro da função exec, que já te traz o retorno do comando executado, assim vc nao precisa direcionar para um arquivo e depois ler ele. O PHP ficaria ssim:<br>
<br>----------------------<br>$retorno = &quot;&quot;;<br>exec(&#39;sudo bash arquivo.sh&#39; . &quot; $ramal &quot;, $retorno);<br>$canal = trim($retorno[0]);<br>
.<br>.<br>.<br>------------------<br><br>e do shell script você removeria o &quot; &gt; teste.txt&quot;.<br><br>Voce pode ainda escrever o comando no próprio PHP para remover a necessidade do shell script a parte.<br><br>
<br>Outra forma seria requisitar os canais via AMI, sem precisar utilizar o exec.<br><br><br><br>Gabriel<br><br><br><br><br><div class="gmail_quote">2008/10/1 Eduardo Assis - Pro Redes <span dir="ltr">&lt;<a href="mailto:eassis@linuxmail.org">eassis@linuxmail.org</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Estou desenvolvendo um sistema para uma empresa de Teleconsulta de Telefones(Projeto Piloto).<br>

<br>
Como funciona a empresa.<br>
<br>
Alguem liga cai em um P.A. o atendente solicita o nome da empresa.<br>
<br>
Procura-se então em um sistema feito em Delphi por nome, atividade, achado lhe informa os dados necessarios:<br>
Nome, Endereço, Telefone.<br>
<br>
<br>
No sistema de teste ficou com Asterisk ficou:<br>
<br>
O Atendente atende a ligação, pergunta o que a pessoa quer saber (Empresa/Ramo de Atividade)<br>
procura no sistema em Delphi, achado a empresa, pergunta se é somente isso.<br>
<br>
No cadastro da empresa que ela procurou no Sistema, tem um link que quando clicado<br>
ele abre uma pagina do asterisk, passando o codigo do cliente e o ramal em que o atendente está logado.<br>
<br>
O Asterisk recebe então o código da empresa e o ramal, faz uma procura no banco de dados pelo código<br>
transfere a ligação da atendente para uma URA onde toca o audio que foi localizado no Banco Mysql.<br>
<br>
Com isso, depois de transferido para a URA, deixa a Atendente livre para receber novas ligações.<br>
<br>
<br>
Seguem os arquivos:<br>
<br>
Lembrando que não tenho experiencia com AMI, Perl, Python e tive que me virar para fazer o projeto funcionar.<br>
<br>
Claro se alguem puder alterar e nos enviar, seria de muito bom grado.<br>
<br>
Pagina que é carregada:<br>
<br>
&lt;?<br>
exec(&#39;sudo bash arquivo.sh&#39; . &quot; $ramal &quot;);<br>
<br>
$arquivo = &#39;teste.txt&#39;;<br>
$fp = fopen($arquivo,&#39;r&#39;);<br>
<br>
$canal = fread($fp, filesize($arquivo));<br>
$canal = trim($canal);<br>
<br>
$timeout = 10;<br>
$asterisk_ip = &quot;<a href="http://127.0.0.1" target="_blank">127.0.0.1</a>&quot;;<br>
$socket = fsockopen($asterisk_ip,&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: senha\r\n\r\n&quot;);<br>
<br>
fputs($socket, &quot;Action: Redirect\r\n&quot; );<br>
fputs($socket, &quot;Channel: $canal\r\n&quot; );<br>
fputs($socket, &quot;Exten: $exten\r\n&quot; );<br>
fputs($socket, &quot;Timeout: 15000\r\n&quot; );<br>
fputs($socket, &quot;Context: contexto\r\n&quot; );<br>
fputs($socket, &quot;Priority: 1\r\n&quot; );<br>
fputs($socket, &quot;Action: Logoff\r\n\r\n&quot;);<br>
$wrets=fgets($socket,128);<br>
?&gt;<br>
<br>
arquivo.sh:<br>
#!/bin/bash<br>
<br>
asterisk -rx &quot;core show channels&quot; | grep &quot;Dial(SIP/$1|&quot; | awk &#39;{print $1}&#39; &gt; teste.txt<br>
<br>
<br>
extension.conf:<br>
[contexto]<br>
<br>
exten =&gt; _X.,1,Ringing<br>
exten =&gt; _X.,n,Wait(2)<br>
exten =&gt; _X.,n,Answer<br>
exten =&gt; _X.,n,NoOp(Digitou: ${EXTEN})<br>
<br>
exten =&gt; _X.,n,MySQL(Connect connid localhost user senha basedados)<br>
exten =&gt; _X.,n,MySQL(Query resultid ${connid} select\ audio\ from\ audio\ where\ id=\&#39;${EXTEN}\&#39; )<br>
exten =&gt; _X.,n,MySQL(Fetch fetchid ${resultid} audio)<br>
exten =&gt; _X.,n,MySQL(Clear ${resultid})<br>
exten =&gt; _X.,n,MySQL(Disconnect ${connid})<br>
<br>
exten =&gt; _X.,n,PlayBack(${audio})<br>
exten =&gt; _X.,n,Hangup()<br>
<br>
Bem, espero que ajude alguem ou que possam contribuir.<br>
<br>
PS: fico o dia todo no knal #asterisk-br e tive ajudas de:<br>
caio1982<br>
DagMoller<br>
Victor_Yuri<br>
ccesario<br>
annonymous<br>
Porks<br>
wilianweb<br>
<br>
Bem o pessoalzinho gente boa.<br>
<br>
Abraços.<br>
<br>
Eduardo Assis<br>
Pro Redes<br>
<a href="http://www.proredes.com.br" target="_blank">www.proredes.com.br</a><br>
(19) 3406-7524<br>
<br>
=<br>
Tropical Honeymoon Hideaway Fiji Islands<br>
Romantic &amp; luxurious Maravu Resort on peaceful &amp; exotic Fiji Island.<br>
<a href="http://a8-asy.a8ww.net/a8-ads/adftrclick?redirectid=601ee5df3ec03c4096df8b0d56fbaa22" target="_blank">http://a8-asy.a8ww.net/a8-ads/adftrclick?redirectid=601ee5df3ec03c4096df8b0d56fbaa22</a><br>
<br>
<br>
--<br>
Powered by Outblaze<br>
_______________________________________________<br>
Compre uma camiseta da AsteriskBrasil.org!<br>
<a href="http://www.voipmania.com.br" target="_blank">http://www.voipmania.com.br</a><br>
<br>
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br<br>
_______________________________________________<br>
Lista de discussões AsteriskBrasil.org<br>
<a href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a><br>
<a href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target="_blank">http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a><br>
</blockquote></div><br></div>