Cursos Asterisk en México

Pasar Parametros de Agi a Asterisk (PHP)

Colapsar

Anuncio

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

  • Pasar Parametros de Agi a Asterisk (PHP)

    Un saludo para todos

    Estoy elaborando un script en php, el cual realiza una busqueda en una base de datos para obtener la categoria de la extension

    todo me funciona perfecto pero no se como pasarle esos datos ke obtengo de la base de datos al asterisk

  • #2
    Toma en cuenta que un AGI en PHP es el equivalente a un script PHP en línea de comandos, de modo que los parámetros se los pasas igual que si ejecutaras, por ejemplo, ls -la, donde ls es el ejecutable y -la el parámetro.

    Ahora, en tu script de PHP, al invocarlo se crea automáticamente un arreglo $argv que contiene los parámetros que le pases. Si en la línea de comandos ejecutas esto:

    miscript.php Hola me llamo Chris
    En tu $argv tendrías:
    $argv[0] = miscript.php
    $argv[1] = Hola
    $argv[2] = me
    $argv[3] = llamo
    $argv[4] = Chris

    Si quieres que todo pase como un sólo parámetro, necesitas usar comillas:
    miscript.php "Hola me llamo Chris"
    $argv[0] = miscript.php
    $argv[1] = Hola me llamo Chris

    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


    • #3
      Hola!! Tengo una duda!!!!

      Como puedo ingresar datos a un agi desde mi plan de marcacion, la situacion es esta: El usuario ingresa una clave como puedo decirle que marque un fin y esta clave se pase al agi y ejecute ciertas acciones, ojala puedan ayudarme....

      Comentario


      • #4
        Justo como lo explica Christian arriba de tu post es como se pasan las variables a un Script en el caso del diaplan un ejemplo puede ser:
        Código:
        ...AGI(myagi.agi,${mivariable})
        Y para obtener la variable puedes usar la aplicación READ, más información sobre READ desde el cli de asterisk ejecuta: core show application READ.

        Comentario


        • #5
          Un ejemplo más específico y muy sencillo:

          Código:
          exten => 1234,1,Read(clave,please-enter-your)
          exten => 1234,n,AGI(miscript.agi,${clave})
          Tan solo entrégasela al AGI como un segundo argumento al invocar la aplicación AGI.

          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


          • #6
            Hola a todos, yo también tengo un problema similar, quiero pasar parámetros de un agi a la consola de asterisk. Basicamente lo que hace el agi es leer el contenido de un archivo con extensión .txt, y lo que quiero es pasar ese resultado en una variable a la consola de Asterisk.
            #!/usr/bin/php -q

            <?php

            require('phpagi.php');

            $agi = new AGI();

            $test = fopen("/mnt/prueba/pass_confirm/a.txt", 'r') or
            die("No se pudo abrir el archivo");
            while (!feof($test)){
            $line=fgets($test);
            }
            fclose($test);

            $agi -> exec('Noop',$line);

            ?>

            De antemano muchas gracias.

            Comentario


            • #7
              Usa Set_variable

              Comentario


              • #8
                Muchas gracias por tu pronta respuesta navaismo, podrías ayudarme un poquito con un ejemplo de como implementar Set_variable, lo que pasa es que soy nuevo en los agis y a pesar de que he buscado muchos ejemplos no he logrado que me funcione. De antemano muchas gracias.

                Comentario


                • #9
                  Amigo navaismo, te agradezco tu ayuda, y te comento que ya pude solucionar mi problema. Pongo la solución. Muchas gracias.

                  #!/usr/bin/php -q

                  <?php

                  require('phpagi.php');

                  $agi = new AGI();
                  // lee el contenido del archivo a.txt
                  $test = fopen("/mnt/prueba/pass_confirm/a.txt", 'r') or
                  die("No se pudo abrir el archivo");
                  while (!feof($test)){
                  $line=fgets($test);
                  }
                  fclose($test);

                  $milinea = $line;
                  $agi -> set_variable("lineResult", $milinea);
                  exit();
                  ?>

                  Con ésto ya se puede llamar el contenido que está dentro de la variable desde el dialplan.

                  Comentario

                  Principales Usuarios Activos

                  Colapsar

                  No hay usuarios activos superiores.
                  Trabajando...
                  X