[AsteriskBrasil] Sistema em Teste

Gabriel Ortiz Lour ortiz.admin em gmail.com
Quarta Outubro 1 21:38:15 BRT 2008


Existem algumas maneiras de melhorar o seu script PHP

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:

----------------------
$retorno = "";
exec('sudo bash arquivo.sh' . " $ramal ", $retorno);
$canal = trim($retorno[0]);
.
.
.
------------------

e do shell script você removeria o " > teste.txt".

Voce pode ainda escrever o comando no próprio PHP para remover a necessidade
do shell script a parte.


Outra forma seria requisitar os canais via AMI, sem precisar utilizar o
exec.



Gabriel




2008/10/1 Eduardo Assis - Pro Redes <eassis em linuxmail.org>

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


Mais detalhes sobre a lista de discussão AsteriskBrasil