[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