[AsteriskBrasil] Monitorar channel status AGI

Danilo Almeida daniloricalmeida em gmail.com
Quarta Agosto 14 17:42:53 BRT 2013


to vendo aqui a classe phpagi-asmanager.php, vou usar a função command e
passar o comando "core show channel <channel>", tentar "destrinchar" o
array e ver o que dá..rsrs

valeu


Em 14 de agosto de 2013 16:27, Danilo Almeida
<daniloricalmeida em gmail.com>escreveu:

> Olá pessoal!
>
> Estou eu aqui com meus testes tentando fazer alguma coisa em php..rsrs
>
> minha dúvida é a seguinte:
> quero monitor em tempo real as chamadas que saem do meu servidor, a mesma
> coisa que faz o FOP, Monast, etc... porém, preciso passar o status para
> outra aplicação em tempo real. Até o momento, consigo monitorar o canal no
> momento que disparo a ligação:
> obs: estou usando a classe phpagi
>
> segue arquivo.php
>
> #!/usr/bin/php -q
> <?php
> require 'phpagi/phpagi.php';
>
> $agi = new AGI(); //instanciando objeto
>
> $comp = $argv[1];
>
> //Verificando o valor da variável passada pelo AGI e passando para
> contexto correto
>
> if($comp == "inicial"){
>
> //ob_implicit_flush(true);
> set_time_limit(30);
>
> $agi->answer();
>
> $exten = $agi->get_variable('EXTEN');
> $exten = $exten['data'];
> $type = $agi->get_variable('PORTAPSTN');
> $type = $type['data'];
>
> $agi->noop("testando variaveis ");
> $status = $agi->channel_status();
> $status = $status['data'];
>    $agi->noop($status);
>
> $agi->exec_dial($type,$exten,40,"Tr");
>
> $agi->hangup();
> }
>
> no momento que disparo a ligação, tenho o seguinte retorno no CLI:
>
>   -- Executing [1237 em contexto-ramais-voip:1] NoOp("SIP/133-00000244",
> "testando agi") in new stack
>     -- Executing [1237 em contexto-ramais-voip:2] AGI("SIP/133-00000244",
> "testeagi.php,inicial") in new stack
>     -- Launched AGI Script /var/lib/asterisk/agi-bin/testeagi.php
> <SIP/133-00000244>AGI Tx >> agi_request: testeagi.php
> <SIP/133-00000244>AGI Tx >> agi_channel: SIP/133-00000244
> <SIP/133-00000244>AGI Tx >> agi_language: pt_BR
> <SIP/133-00000244>AGI Tx >> agi_type: SIP
> <SIP/133-00000244>AGI Tx >> agi_uniqueid: 1376507848.1611
> <SIP/133-00000244>AGI Tx >> agi_version: 1.8.20.2
> <SIP/133-00000244>AGI Tx >> agi_callerid: 133
> <SIP/133-00000244>AGI Tx >> agi_calleridname: Danilo Almeida
> <SIP/133-00000244>AGI Tx >> agi_callingpres: 0
> <SIP/133-00000244>AGI Tx >> agi_callingani2: 0
> <SIP/133-00000244>AGI Tx >> agi_callington: 0
> <SIP/133-00000244>AGI Tx >> agi_callingtns: 0
> <SIP/133-00000244>AGI Tx >> agi_dnid: 1237
> <SIP/133-00000244>AGI Tx >> agi_rdnis: unknown
> <SIP/133-00000244>AGI Tx >> agi_context: contexto-ramais-voip
> <SIP/133-00000244>AGI Tx >> agi_extension: 1237
> <SIP/133-00000244>AGI Tx >> agi_priority: 2
> <SIP/133-00000244>AGI Tx >> agi_enhanced: 0.0
> <SIP/133-00000244>AGI Tx >> agi_accountcode:
> <SIP/133-00000244>AGI Tx >> agi_threadid: 140522439591680
> <SIP/133-00000244>AGI Tx >> agi_arg_1: inicial
> <SIP/133-00000244>AGI Tx >>
> <SIP/133-00000244>AGI Rx << ANSWER
> <SIP/133-00000244>AGI Tx >> 200 result=0
> <SIP/133-00000244>AGI Rx << GET VARIABLE CHANNEL
> <SIP/133-00000244>AGI Tx >> 200 result=1 (SIP/133-00000244)
> <SIP/133-00000244>AGI Rx << GET VARIABLE EXTEN
> <SIP/133-00000244>AGI Tx >> 200 result=1 (1237)
> <SIP/133-00000244>AGI Rx << GET VARIABLE PORTAPSTN
> <SIP/133-00000244>AGI Tx >> 200 result=1 (DGV/g1)
> <SIP/133-00000244>AGI Rx << NOOP "testando variaveis "
> <SIP/133-00000244>AGI Tx >> 200 result=0
> <SIP/133-00000244>AGI Rx << CHANNEL STATUS
> <SIP/133-00000244>AGI Tx >> 200 result=6
> <SIP/133-00000244>AGI Rx << NOOP "Line is up"
> <SIP/133-00000244>AGI Tx >> 200 result=0
> <SIP/133-00000244>AGI Rx << EXEC Dial DGV/g1/1237,40,Tr
>     -- AGI Script Executing Application: (Dial) Options:
> (DGV/g1/1237,40,Tr)
>     -- Called DGV/g1/1237
>     -- DGV/2 is making progress passing it to SIP/100-00000243
>   == Everyone is busy/congested at this time (1:0/0/1)
> <SIP/133-00000244>AGI Tx >> 200 result=0
> <SIP/133-00000244>AGI Rx << HANGUP
> <SIP/133-00000244>AGI Tx >> 200 result=1
>     -- <SIP/133-00000244>AGI Script testeagi.php completed, returning 4
>
> Gostaria de monitorar o status do canal em todo tempo até o hangup. (ring,
> ringing, UP, busy, etc)
>
> esse caminho que estou, seria o correto? Alguém poderia e dar uma dica de
> como conseguir monitorar o canal durante a ligação?
>
> desde já, Obrigado!
> --
> *att*
> *Danilo Almeida*
>



-- 
*att*
*Danilo Almeida*
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130814/bbdde69d/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil