Cursos Asterisk en México

script AGI orientado objeto para saber el callerID

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • script AGI orientado objeto para saber el callerID

    Buenas Tardes, estimados

    Queria consultar lo siguiente para ver si me puede apoyar en esta duda

    intento ejecutar un script agi que solo determina el CallerId y lo registra en una Base de datos, tan sencillo como eso, ya que es una primera prueba que estoy efectuando para realizar un AGI de registro medico m+as complejo

    Inicialmente programaba los AGI según la documentación anexa
    Asterisk AGI PHP: Using PHP with the Asterisk Gateway Interface (AGI) - Tips and Examples

    en donde para realziar la ejecución de agi debía ejecutar una serie de instrucciones
    execute_agi
    pcntl_signal

    ahora actualmente quiero migrar a la programación orientado a metodos como lo indico a continuación:


    #!/usr/bin/php -q
    <?php
    set_time_limit(60);
    require('/var/lib/asterisk/agi-bin/phpagi/phpagi.php');
    include_once('mysqldb.class.php');
    $conect = new Mysqldb();
    $db = $conect->newConnection('172.20.0.157', 'root', 'Admin01', 'test');
    $getQuery = $conect->executeQuery("SET NAMES 'utf8'");
    error_reporting(E_ALL);
    $agi = new AGI();
    $agi->answer();
    $cid = $agi->parse_callerid();
    $var_username = $cid["username"];
    $insert = $conect->insertRecords('calleids',array('descripcion'=>$va r_username));
    $agi->hangup();
    ?>

    pero viendo el debug, logra ejecutar el agi pero no registra nada
    == Using SIP RTP TOS bits 184
    == Using SIP RTP CoS mark 5
    -- Executing [1288@from-internal:1] NoOp("SIP/153-00000095", "Running miscapp 5: ivrCITAS") in new stack
    -- Executing [1288@from-internal:2] Macro("SIP/153-00000095", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/153-00000095", "AMPUSER=153") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/153-00000095", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/153-00000095", "1?Set(REALCALLERIDNUM=153)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/153-00000095", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/153-00000095", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/153-00000095", "1?report") in new stack
    -- Goto (macro-user-callerid,s,10)
    -- Executing [s@macro-user-callerid:10] GotoIf("SIP/153-00000095", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:11] Set("SIP/153-00000095", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/153-00000095", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] Set("SIP/153-00000095", "CALLERID(number)=153") in new stack
    -- Executing [s@macro-user-callerid:20] Set("SIP/153-00000095", "CALLERID(name)=device") in new stack
    -- Executing [s@macro-user-callerid:21] NoOp("SIP/153-00000095", "Using CallerID "device" <153>") in new stack
    -- Executing [1288@from-internal:3] Goto("SIP/153-00000095", "from-citas,ivrCitas,1") in new stack
    -- Goto (from-citas,ivrCitas,1)
    -- Executing [ivrCitas@from-citas:1] Answer("SIP/153-00000095", "") in new stack
    > 0x2b8860292850 -- Probation passed - setting RTP source address to 172.20.1.100:40038
    -- Executing [ivrCitas@from-citas:2] Wait("SIP/153-00000095", "3") in new stack
    -- Executing [ivrCitas@from-citas:3] Set("SIP/153-00000095", "TIMEOUT(absolute)=0") in new stack
    -- Channel hangup cancelled.
    -- Executing [ivrCitas@from-citas:4] Set("SIP/153-00000095", "autofallthrough=no") in new stack
    -- Executing [ivrCitas@from-citas:5] AGI("SIP/153-00000095", "IVR_CITAS.php") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/IVR_CITAS.php
    -- <SIP/153-00000095>AGI Script IVR_CITAS.php completed, returning 0
    -- Executing [ivrCitas@from-citas:6] Wait("SIP/153-00000095", "1") in new stack
    == Spawn extension (from-citas, ivrCitas, 7) exited non-zero on 'SIP/153-00000095'
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    gcSVR03*CLI>


    la plataforma donde estoy ejecutando esto es la siguiente
    elastix 2.4.0 2
    asterisk 11.5.0 0
    CentOS Linux 5.9
    PHP 5.1.6 (cli) (built: Jul 12 2013 16:52:22)


    el contexto es el siguiente
    [from-citas]
    exten => ivrCitas,1,Answer()
    exten => ivrCitas,n,wait(3)
    exten => ivrCitas,n,Set(TIMEOUT(absolute)=0)
    exten => ivrCitas,n,Set(autofallthrough=no)
    exten => ivrCitas,n,Agi(IVR_CITAS.php)
    exten => ivrCitas,n,wait(1)
    exten => ivrCitas,n,Hungup



    Gracias por la ayuda.

    saludos Cordiales

    Omar Galaviz

  • #2
    ¿Estás seguro que el error está en la interfaz con Asterisk y no en PHP? Quizá tienes mal el código que inserta a la BD. Veo esta linea:

    $insert = $conect->insertRecords('calleids',array('descripcion'=>$ va r_username));

    Y aunque no veo el código del método insertRecords(), tengo mi duda sobre si el campo efectivamente se llama "calleids" o quisiste decir "callerids". El espacio de "$va r_username" tampoco me parece adecuado.

    Ejecuta el script no como un AGI, sino desde el CLI de Linux (a mano) y dinos que te aparece.

    Saludos,
    dCAP Christian Cabrera R.
    Para aprender a usar Asterisk, asiste a uno de mis cursos Asterisk
    Si deseas asesoría pagada, por favor contáctame

    Comentario

    Principales Usuarios Activos

    Colapsar

    No hay usuarios activos superiores.
    Trabajando...
    X