<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 = "";<br>exec('sudo bash arquivo.sh' . " $ramal ", $retorno);<br>$canal = trim($retorno[0]);<br>
.<br>.<br>.<br>------------------<br><br>e do shell script você removeria o " > teste.txt".<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"><<a href="mailto:eassis@linuxmail.org">eassis@linuxmail.org</a>></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>
<?<br>
exec('sudo bash arquivo.sh' . " $ramal ");<br>
<br>
$arquivo = 'teste.txt';<br>
$fp = fopen($arquivo,'r');<br>
<br>
$canal = fread($fp, filesize($arquivo));<br>
$canal = trim($canal);<br>
<br>
$timeout = 10;<br>
$asterisk_ip = "<a href="http://127.0.0.1" target="_blank">127.0.0.1</a>";<br>
$socket = fsockopen($asterisk_ip,"5038", $errno, $errstr, $timeout);<br>
fputs($socket, "Action: Login\r\n");<br>
fputs($socket, "UserName: user\r\n");<br>
fputs($socket, "Secret: senha\r\n\r\n");<br>
<br>
fputs($socket, "Action: Redirect\r\n" );<br>
fputs($socket, "Channel: $canal\r\n" );<br>
fputs($socket, "Exten: $exten\r\n" );<br>
fputs($socket, "Timeout: 15000\r\n" );<br>
fputs($socket, "Context: contexto\r\n" );<br>
fputs($socket, "Priority: 1\r\n" );<br>
fputs($socket, "Action: Logoff\r\n\r\n");<br>
$wrets=fgets($socket,128);<br>
?><br>
<br>
arquivo.sh:<br>
#!/bin/bash<br>
<br>
asterisk -rx "core show channels" | grep "Dial(SIP/$1|" | awk '{print $1}' > teste.txt<br>
<br>
<br>
extension.conf:<br>
[contexto]<br>
<br>
exten => _X.,1,Ringing<br>
exten => _X.,n,Wait(2)<br>
exten => _X.,n,Answer<br>
exten => _X.,n,NoOp(Digitou: ${EXTEN})<br>
<br>
exten => _X.,n,MySQL(Connect connid localhost user senha basedados)<br>
exten => _X.,n,MySQL(Query resultid ${connid} select\ audio\ from\ audio\ where\ id=\'${EXTEN}\' )<br>
exten => _X.,n,MySQL(Fetch fetchid ${resultid} audio)<br>
exten => _X.,n,MySQL(Clear ${resultid})<br>
exten => _X.,n,MySQL(Disconnect ${connid})<br>
<br>
exten => _X.,n,PlayBack(${audio})<br>
exten => _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 & luxurious Maravu Resort on peaceful & 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>