Cursos Asterisk en México

Aplicaion de AGI?

Colapsar

Anuncio

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

  • Aplicaion de AGI?

    Hola!

    Tengo una duda existencial sobre AGIs, o asterisk en general. LLevo un par de días con el tema de las AGIs. Existe la posibilidad de alterar el extensions.conf o el SIP.conf a través de una AGI? Por ejemplo, cambiar de contexto todos los usuarios SIP definidos en SIP.conf, o si no, hacer incluir un GoTo en el extensions.conf para cambiar de contexto.

    A lo que me refiero, es que si es posible cambiar el extensions.conf de forma dinámica mediante una aplicación automática. Así poder conseguir un comportamiento variable en función de unos parámetros determinados.

    Muchas gracias,

    Saludos

  • #2
    yo aun no entro al asunto de agi, pero eso lo hago directamente con php y lanzando script en linea de comando como el sed para hacer cambios masivos en archivos

    Comentario


    • #3
      Si, si es posible. Si PHP tiene permisos sobre los archivos de configuración, puedes hacer lo que sea con ellos.

      Ya desde PHP puedes invocar un "asterisk -rx reload" para hacer la recarga de lois mismos.

      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


      • #4
        Lo primero de todo agradecer la rapida respuesta!

        Creo que me habeis salvado la vida, porque pensaba que no se podia hacer. Estoy terminando mi proyecto final de carrera y lo último que me queda es conseguir que un ordenador conectado en red con asterisk sea capaz de modificar su configuración (extensions.conf, ...)

        Con lo que me habeis comentado veo que se puede hacer, menos mal! Me podrías dar algun ejemplo o unas nociones básicas para poder empezar a montar la aplicación. Mi problema es que programo en C++, pero de PHP no tengo mucha idea y por lo que he visto, es con lo que se trabaja en todo lo relacionado con asterisk.

        Espero que con vuestra info y con un libro de PHP pueda hacerlo, más que nada porque me va la vida en ello! Tengo q presentar en tres semanas, jeje.

        Muchas gracias por toda la ayuda, de verdad.

        Saludos

        Comentario


        • #5
          Hola colega,

          Eso que intentas hacer es un poquito chungo, vas a permitir que en /etc/asterisk te pueda modificar un archivo de configuración un programa que está en otra red?? y si lo hacemos con AGI, teniendo en cuenta que estos se lanzan desde el DialPlan... a mi personalmente me daría cierto respeto y mi administrador de sistemas seguro que me regaña

          Si no es mucho preguntar, ¿Qué tipo de cosas quieres modificar en las configuraciones del Asterisk?

          Igual puedes resolver tu problema de forma más sencilla usando el RealTime y permitiendo que tu aplicación toque en la BBDD. Aquí ya puedes jugar con los permisos y demas cositas tanto a nivel de bbdd como de aplicación.

          O lo mismo usando las variables y un poco de AEL en el dialplan, eso también te da bastante flexibilidad para tener dialplans que necesiten ser dinámicos.

          Saludines,

          Comentario


          • #6
            Buenas!

            Que rapidez!
            No intento acceder desde otra red. Tanto asterisk como el otro ordenador estan en la misma red. Se me había ocurrido establecer la comunicación vía web, haciendo que el ordenador que tiene asterisk funcione como un servidor web, instalando apache.

            Mi idea, es poder cambiar los archivos de configuración ante un evento, es decir, porder modificar la configuración del asterisk de forma dinámica. Por ejemplo, poder cambiar el contexto de los usuarios SIP en un determinado momento, o añadir quitar o modificar lineas del dialplan.

            Si esto es muy complicado, habia pensado en sustituir directamente el archivo de conf por otro de forma automática.

            Espero haberme explicado. Lo que comentas sobre AGI, podría hacer esto? Se debería realizar una llamada a una extensión para ejecutar el PHP,n? Por lo que he entendido, con las AGIs puedes actuar solo sobre las variables del canal que has establecido.

            Disculpame si meto la pata en lo que digo. No controlo mucho del tema de las AGIs.

            Gracias de nuevo,

            Saludos!

            Comentario


            • #7
              Lo que buscas se llama FreePBX, http://wiki.freepbx.org/tiki-index.php

              Este software define un dialplan base que no toca y luego unos includes que son los que pueden variar.

              Por ejemplo:

              extensions.conf
              extensions_additional.conf

              Cuando hace algún cambio en la configuración por medio de la web lo que hace es regenerar el archivo _additional.conf y recargar la configuración del asterisk.

              El AGI se usa para acceder desde el dialplan (extensions) a ciertas aplicaciiones que no están implementadas en el Asterisk.

              Manager se utiliza para desde una aplicación externa al Asterisk, poder interactuar con el Asterisk.

              En php-agi creo que hay clases tanto para AGI como para Manager, ahí ya me pillas.

              Comentario


              • #8
                Buenas!

                Gracias por la info, He estado mirando y veo que es un "nuevo" AMP. Ya he probado el aah con el AMP, pero tiene demasiadas cosas que no me hacen falta y creo que la cosa se complica bastante.

                He estado mirando los archivos del AMP, y parece que trabaja contra una base de datos a la que accede el asterisk. Como funciona eso?asterisk puede importar datos desde una DB? O lo que hace es un include de un archivo que lo actualiza la base de datos? Si es así, como hace un reload?

                La verdad es que son un monton de preguntas....

                Igual se podría hacer de una forma menos elegante, pero para salir del paso...
                Si se condiguiese crear un archivo nuevo con la configuración que se quiere y sustituirlo por el antiguo? Es un poco bruto, pero mediante web y un archivo PHP que cree el fichero y lo sustituya?

                En este caso necesitaria un editor de texto, y como dijo lastdragon, se debe hacer con "sed". Y si a eso le añadimos el "asterisk -rx reload" cargaría la nueva configuración.

                Esto es lo que he pensado, os parece viable?

                Saludos

                Comentario


                • #9
                  Si, es viable.

                  Si estás usando Asterisk 1.2, recuerda que ya tienes la opción de Realtime, que te permite cargar varios parámetros desde una base de datos. Esto podría hacerte las cosas más sencillas, es una sugerencia.

                  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


                  • #10
                    Como?Realtime?Eso puede ser la solución a mis problemas!

                    Tienes alguna documentación? Lo único que tendría que cambiar es la extensión o el contexto.

                    Esta tarde he pensado una solución un poco más elegante a la que he comentado antes. He visto que las con AGIs puedes cambiar la extensión y el contexto de la "llamada" en curso. Entonces, se me ha ocurrido que si se hace un script PHP que acceda a una base de datos externa y cambie la variable "extension" o "contexto" de la llamada en curso. Entonces la siguiente prioridad del dialplan sería un DIAL (SIP/${EXTEN}).

                    Lo que pretendo es hacer un tranferencia en función de los valores que se carguen en la base de datos.

                    Aunque segun como funcione el Realtime, quiza sea todo más sencillo.

                    Veo que al final lo que necesito esconseguir importar algunas variables de una base de datos que será actualizada por el otro pc de la red!

                    Que pensais?

                    Gracias!

                    Saludos

                    Comentario


                    • #11
                      Realtime te permite mantener una BD al lado de Asterisk de modo que puedas alterar dicha BD y no tengas que recargar nada en Asterisk para ver los cambios. Entre las cosas que puedes hacer, es crear usuarios SIP, extensiones y buzones de voz.

                      Hay dos sabores de Realtime: estático y dinámico. Sus aplicaciones son diferentes así como su estructura. A grosso modo, el estático simplemente "emula" el contenido de un archivo.conf, es decir, almacena resultados y solo se carga al momento de que das un reload o reinicias Asterisk. Es el modo más sencillo, pero el menos poderoso, porque tienes casi las mismas limitaciones que con un archivo de texto.

                      Por otro lado, el dinámico te permite asignar familias relacionadas con configuraciones específicas (ejemplo: extensiones). Al asignar una familia a un contexto de extensiones, todo aquel que tenga acceso a este contexto podrá revisar la BD a ver si existe alguna nueva extension relacionada con lo marcado. De encontrarse, se aplica el dialplan normal. Es muy poderoso, y te permite manejar rápidamente cientos, miles de usuarios (actualizarlos es tan fácil como escribir SQL).

                      Para mas documentación de esto, revisa http://voip-info.org

                      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


                      • #12
                        Buenas,

                        Para no dejar muerto este tema, informo de que buscando información de las propuestas que habeis dado, he encontrado una aplicación de asterisk ideal para la comunicación con bases de datos.

                        La aplicación es MYSQL(), y según he leído en VoIp-info viene en el paquete asterisk-addons. La conoceis?Habeis trabajado con ella?

                        Ahora estoy instalando todas la sherramientas para utilizar BBDD en ubuntu. después intentaré hacer que esto funcione, si no lo consigo pasaré a lo del RealTime que comentó Chris.

                        Si os suena algo de esta aplicación agradecería mucho cualquier ayuda posible.

                        Saludos

                        Comentario


                        • #13
                          He leido, la he compilado e instalado, he estado a punto de usarla, pero hasta ahí. El funcionamineto era demasiado básico, y siempre era más sencillo invocar un AGI (o bien, un script ejecutable a través de la aplicación System) para hacerlo, de modo que nunca profundicé en su uso.

                          Recuerda que Realtime es nativo en Asterisk 1.2, así que ya viene incorporado en el código del sistema. Solo necesitas el addons para instalar el controlador de MySQL y estás listo.

                          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


                          • #14
                            Hola!

                            Yo también he conseguido compilar e instalar MYSQL(). La verdad es que me parece realmente útil. He creado una BD en mysql y desde asterisk accedo a ella. Estoy relazando diferentes consultas para ver las propiedades y comentarlas aquí si a alguien le interesan. como dices, Chris, el funcionamiento es básico, pero para mi aplicación y para demostrar q asterisk puede interactuar con software externo es útil.

                            Tengo q apurar porque presento mi PFC en breve!

                            Por ahora consigo extraer y actualizar datos de los campos de una tabla que a mí me interesan.

                            Una de mis dudas radica en los accesos concurrentes, pero eso ya depende de mysql.

                            saludos!

                            P.D:si se me complica todo, empezaré a estudiar el Realtime

                            Comentario


                            • #15
                              Aplicaion de AGI?

                              Originalmente publicado por Charly
                              Hola!

                              Tengo una duda existencial sobre AGIs, o asterisk en general. LLevo un par de días con el tema de las AGIs. Existe la posibilidad de alterar el extensions.conf o el SIP.conf a través de una AGI? Por ejemplo, cambiar de contexto todos los usuarios SIP definidos en SIP.conf, o si no, hacer incluir un GoTo en el extensions.conf para cambiar de contexto.

                              A lo que me refiero, es que si es posible cambiar el extensions.conf de forma dinámica mediante una aplicación automática. Así poder conseguir un comportamiento variable en función de unos parámetros determinados.

                              Muchas gracias,

                              Saludos
                              Yo no veo por que no dado que desde tu agi peude madar manipular mysql. puedes manipular arhivos de configuracion, puedes oupar clases como floapi para manipular el CLI y hacer reload via administratior, se que existe las configuraicones de mysql, no veo pq no se pueda hacer lo interesante aqui que es lo que quieres modifiar y que tan facil sea lograrlo sin utilizar una interfaz suerte y platicanos

                              Comentario

                              Nube de Etiquetas

                              Colapsar

                              Principales Usuarios Activos

                              Colapsar

                              No hay usuarios activos superiores.
                              Trabajando...
                              X