Cursos Asterisk en México

agi mysql

Colapsar

Anuncio

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

  • agi mysql

    buen dia

    espero que me puedan ayudar con lo siguiente estoy tratando de contruir un agi que haga conexion a una base de datos y me regrese en una variable el resultado del query que haga por medio de un argumento que se le pase el cual seria el numero telefonico que se esta marcando, esta es el agi que tengo en este momento .

    #!/usr/bin/php -q
    <?
    require 'phpagi.php';
    $agi = new AGI();

    $numero = '$argv[1]';

    $db = 'asterisk';
    $dbuser = 'usuario';
    $dbpass = 'password';
    $dbhost = '192.168.1.1';

    mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db("$db"); //or die("could not open database");
    $row=mysql_query("select phone_number from vicidial_list where phone_number='$numero'");
    $agi->set_variable("phone_number",$row);
    ?>


    el dial plan para pruebas lo tengo asi.

    exten => 2225,1,AGI(manual_lalo.php,0445562542419)

    y la salida del asterisk es esta.

    Executing [2225@default:1] AGI("SIP/9694-00000205", "manual_lalo.php,0445562542419") in new stack
    -- Launched AGI Script /usr/share/asterisk/agi-bin/manual_lalo.php
    <SIP/9694-00000205>AGI Tx >> agi_request: manual_lalo.php
    <SIP/9694-00000205>AGI Tx >> agi_channel: SIP/9694-00000205
    <SIP/9694-00000205>AGI Tx >> agi_language: en
    <SIP/9694-00000205>AGI Tx >> agi_type: SIP
    <SIP/9694-00000205>AGI Tx >> agi_uniqueid: v1-1552323094.2132
    <SIP/9694-00000205>AGI Tx >> agi_version: 1.8.32.3-vici
    <SIP/9694-00000205>AGI Tx >> agi_callerid: 9694
    <SIP/9694-00000205>AGI Tx >> agi_calleridname: LALO
    <SIP/9694-00000205>AGI Tx >> agi_callingpres: 0
    <SIP/9694-00000205>AGI Tx >> agi_callingani2: 0
    <SIP/9694-00000205>AGI Tx >> agi_callington: 0
    <SIP/9694-00000205>AGI Tx >> agi_callingtns: 0
    <SIP/9694-00000205>AGI Tx >> agi_dnid: 2225
    <SIP/9694-00000205>AGI Tx >> agi_rdnis: unknown
    <SIP/9694-00000205>AGI Tx >> agi_context: default
    <SIP/9694-00000205>AGI Tx >> agi_extension: 2225
    <SIP/9694-00000205>AGI Tx >> agi_priority: 1
    <SIP/9694-00000205>AGI Tx >> agi_enhanced: 0.0
    <SIP/9694-00000205>AGI Tx >> agi_accountcode: 9694
    <SIP/9694-00000205>AGI Tx >> agi_threadid: 140182979995392
    <SIP/9694-00000205>AGI Tx >> agi_arg_1: 0445562542419
    <SIP/9694-00000205>AGI Tx >>
    <SIP/9694-00000205>AGI Rx <<
    <SIP/9694-00000205>AGI Tx >> 510 Invalid or unknown command
    <SIP/9694-00000205>AGI Rx <<
    <SIP/9694-00000205>AGI Tx >> 510 Invalid or unknown command
    <SIP/9694-00000205>AGI Rx <<
    <SIP/9694-00000205>AGI Tx >> 510 Invalid or unknown command
    <SIP/9694-00000205>AGI Rx <<
    <SIP/9694-00000205>AGI Tx >> 510 Invalid or unknown command
    <SIP/9694-00000205>AGI Rx << SET VARIABLE phone_number ""
    <SIP/9694-00000205>AGI Tx >> 200 result=1
    -- <SIP/9694-00000205>AGI Script manual_lalo.php completed, returning 0


    por ahora no esta funcionando espero que me puedan ayudar para irme dando mas idea de como podria haerla fucionar

  • #2
    Eduardo:

    El problema no es de Asterisk, sino de PHP. No estás invocando la consulta a la BD correctamente.

    Lo correcto sería:

    Código:
    mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db("$db"); //or die("could not open database");
    
    $result=mysql_query("select phone_number from vicidial_list where phone_number='$numero'");
    $row = mysql_fetch_assoc($result);
    $agi->set_variable("phone_number",$row['phone_number']);
    En dado caso, falta repasar más ejemplos puros de PHP, pero la parte de Asterisk parece estar bien.
    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


    • #3
      Hola Christian lo meti como lo mencionas sin embargo aun la variable no me regresa el resultado


      -- Executing [2225@default:1] AGI("SIP/9694-0000048d", "manual_lalo.php,0445562542419") in new stack
      -- Launched AGI Script /usr/share/asterisk/agi-bin/manual_lalo.php
      <SIP/9694-0000048d>AGI Tx >> agi_request: manual_lalo.php
      <SIP/9694-0000048d>AGI Tx >> agi_channel: SIP/9694-0000048d
      <SIP/9694-0000048d>AGI Tx >> agi_language: en
      <SIP/9694-0000048d>AGI Tx >> agi_type: SIP
      <SIP/9694-0000048d>AGI Tx >> agi_uniqueid: v1-1552332210.4749
      <SIP/9694-0000048d>AGI Tx >> agi_version: 1.8.32.3-vici
      <SIP/9694-0000048d>AGI Tx >> agi_callerid: 9694
      <SIP/9694-0000048d>AGI Tx >> agi_calleridname: LALO
      <SIP/9694-0000048d>AGI Tx >> agi_callingpres: 0
      <SIP/9694-0000048d>AGI Tx >> agi_callingani2: 0
      <SIP/9694-0000048d>AGI Tx >> agi_callington: 0
      <SIP/9694-0000048d>AGI Tx >> agi_callingtns: 0
      <SIP/9694-0000048d>AGI Tx >> agi_dnid: 2225
      <SIP/9694-0000048d>AGI Tx >> agi_rdnis: unknown
      <SIP/9694-0000048d>AGI Tx >> agi_context: default
      <SIP/9694-0000048d>AGI Tx >> agi_extension: 2225
      <SIP/9694-0000048d>AGI Tx >> agi_priority: 1
      <SIP/9694-0000048d>AGI Tx >> agi_enhanced: 0.0
      <SIP/9694-0000048d>AGI Tx >> agi_accountcode: 9694
      <SIP/9694-0000048d>AGI Tx >> agi_threadid: 140182982534912
      <SIP/9694-0000048d>AGI Tx >> agi_arg_1: 0445562542419
      <SIP/9694-0000048d>AGI Tx >>
      <SIP/9694-0000048d>AGI Rx << SET VARIABLE phone_number ""
      <SIP/9694-0000048d>AGI Tx >> 200 result=1
      -- <SIP/9694-0000048d>AGI Script manual_lalo.php completed, returning 0

      como si no se conectara a la bd e hiciera la consulta.

      Comentario


      • #4
        parece que el tema estaba en algo del query lo meti de esta manera y ya funciona sin problema.

        $query = "SELECT phone_number FROM ".$db['name'].".vicidial_list WHERE phone_number= $numero";
        $result = mysql_query($query,$data);
        $row = mysql_fetch_array($result);
        $agi->set_variable('MOVIL',$row['phone_number']);

        gracias

        Comentario

        Principales Usuarios Activos

        Colapsar

        No hay usuarios activos superiores.
        Trabajando...
        X