Cursos Asterisk en México

MusicOnHold en background

Colapsar

Anuncio

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

  • MusicOnHold en background

    Hola apañeros,

    Tengo un pequeño AGI que lee las noticias RSS de la web de un compañero. La cuestión es que me gustaría matar esos tiempos mudos mientras extrae el contenido de la Web con el MoH.

    El problema está que si ejecuto el MusicOnHold, el AGI se queda y no pasa a extraer el contenido. Si intento hacer un Background sobre los archivos de música tampoco me vale, porque resulta que uso el formato raw (del faking mpg123) en lugar de mp3 luego no es capaz de entender a los archivos.

    Hmmmm como podría hacer que se ejecutara ese MusicOnHold y se cerrara cuanto tuviera el contenido la información.

  • #2
    ¿Podría valer el comando BackgroundDetect?

    Comentario


    • #3
      yo creo que podrías poner un while con MusicOnHold y ya cuando obtenga todo el contenido sales de ese while.

      pasame el codigo de como obtienes el contenido y veo si se puede implementar como te digo, yo he puesto music and hold en un while y si digita algo se sale, creo que podría ser similar determinando cuando se obtiene todo el contenido mediante un eof o algo asi.

      Comentario


      • #4
        Muy sencillo,

        Ejecuto esta instrucción para traerme una página de Internet

        $page = get('http://espanol.weather.com/weather/local/SPXX0045');

        Mientras se conecta, descarga y demás ocurre un tiempo que me gustaría ocupar con un MusicOnHold.

        He visto soluciones alternativas y que me gustán más, como es programar un CRON que se descargue la página en un archivo y luego basta con leerlo, algo mucho más rápido.

        Con esto me encontré un problema y es que cuando hago cualquier acceso a disco desde PERL (open, opendir, ...) me mata el AGI, devolviendo el control al Dialplan :?

        Aunque aún sigo en mis trece de solucionar ese MusicOnHold en background. Para este caso en concreto está solucionado, pero que ocurre si accedemos a una BBDD con mucha carga o necesitamos un procedimiento almacenado que tarda tiempo en devolver el control.

        Otra solución que pensé y que suena a casi locura (por complicada), es crear un Thread con el MusicOnHold y cuando acabe la petición que se está procesando entonces que mate a ese Thread, ¿Cómo lo ves Rowter? No he podido hacer pruebas porque el Perl que uso no tiene soporte para Threads y tenía que compilar con el CPAN una nueva versión y no era plan para un fin de semana.

        Comentario


        • #5
          Lo encontré y es que de cuando en cuando viene bien hacer un show agi desde el CLI. Esta es una funcionalidad que no implementa el PERL:Asterisk y me las hizo pasar canutas

          print "SET MUSIC ON default\n";

          $page = get('http://espanol.weather.com/weather/local/SPXX0045');

          print "SET MUSIC OFF default\n";

          Gracias a todos por su paciencia,

          Comentario


          • #6
            ah fijate te iba a pegar esa justa linea, asi es como lo meti en el que te comentaba..

            $agi-> exec("SET MUSIC ON default");

            excelente antoniofcano.

            Comentario


            • #7
              Gracias, solo fue cuestión de despiste. Lo intenté con el $AGI->exec(), pero me devolvía un error, como el AGI va con los STDI, STDOUT pos engañando al Perl con el print va como la seda.

              Comentario


              • #8
                ¿como haces para que asterisk te lea un fichero de textos?
                Manuel. J. Villaverde
                FWD 686463
                jabber [email="souman@jabber.org"]souman@jabber.org[/email]
                Web: [url="http://manuel.tonteria.org/blog"]http://manuel.tonteria.org/blog[/url]

                Comentario


                • #9
                  busca cepstral
                  esta muy bueno

                  Comentario

                  Principales Usuarios Activos

                  Colapsar

                  No hay usuarios activos superiores.
                  Trabajando...
                  X