[AsteriskBrasil] Monitorar channel status AGI
Danilo Almeida
daniloricalmeida em gmail.com
Quarta Agosto 14 16:27:25 BRT 2013
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*
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130814/b0fc5a59/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil