Pregunta

Estoy intentando empezar a escribir aplicaciones escalables de telecomunicaciones con Asterisk y Ruby.Originalmente tenía la intención de utilizar el marco Adhearsion para esto, pero no tiene la madurez requerida y su documentación es muy deficiente.AsteriskRuby parece ser una buena alternativa, ya que está bien documentado y parece estar escrito por Vonage.

¿Alguien tiene experiencia en la implementación de aplicaciones IVR basadas en AGI?¿Qué marco, si alguno, utilizó?Incluso consideraría uno que no sea Ruby si está justificado.¡Gracias!

¿Fue útil?

Solución

Debería volver a visitar Adhearsion ya que la versión 0.8.1 ya está disponible y la documentación ha mejorado mucho recientemente.Echa un vistazo aquí:

http://adhearsion.com http://docs.adhearsion.com http://api.adhearsion.com

Otros consejos

SipX es realmente la respuesta equivocada.He escrito algo de VoiceXML extremadamente complicado en SipX 3.10.2 y todo ha sido en vano ya que SipX 4 está eliminando SipXVXML para una interfaz que requiere que los IVR sean JAR compilados.Para colmo, Nortel se declaró en quiebra, documentación extremadamente deficiente en la versión de código abierto, cumplimiento deficiente con VXML 2.0 (a partir de 3.10.2) y los estándares SIP (a partir de 3.10.2, no se conecta bien con los ITSP).Lo aplaudiré por un excelente trabajo al hacer aquello para lo que fue diseñado: ser un PBX.Pero como IVR, si tuviera que hacerlo todo de nuevo, haría algo diferente.No sé qué, pero algo diferente.Estoy jugando con Trixbox CE ahora y trabajando para vincularlo a JVoiceXML o VoiceGlue.

Además, no leas esa basura del wiki de SipX.Compara SipX 3.10 con AsteriskNOW 1 y Trixbox 1.Vamos.¡Es como comparar Mac OS X con Win95!Una comparación más realista sería SipX 4 (que saldrá en el primer trimestre de 2009) con Asterisk 1.6 y Trixbox 2.6, lo que mostraría que logran resultados casi idénticos excepto en el ámbito de la escalabilidad y la alta disponibilidad;SipX gana en eso.Pero, por madurez y estabilidad, recomendaría Asterisk.

Además, mis resultados de rendimiento en el mundo real con SipXVXML:
Dell PowerEdge R200, Xeon Dual Core 3,2 GHz, maneja 17 llamadas antes de los nervios.
HP DL380 G4, Dual Xeon HT 3,2 GHz, maneja 30 llamadas antes de largas pausas.

Publicaré mis hallazgos cuando termine de evaluar VoiceGlue y JVoiceXML, pero creo que terminaré escribiendo un PHP personalizado llamado desde AGI ya que todas las herramientas son nativas de Asterisk.

Si está buscando aplicaciones de "grado de telecomunicaciones", es posible que desee buscar SipXecs en lugar de asterisco.Es completo, gratuito y de código abierto, con soporte comercial disponible de Nortel.Puede interactuar con él a través de una API de servicios web en Ruby (o cualquier otro idioma).

Ver el Wiki SipXecs para más información.Hay una matriz de comparación en ese sitio, que compara características con AsteriskNOW y TrixBox.

Realmente no existen otros marcos.Por supuesto, existen enlaces AGI para cada idioma, pero en lo que respecta a marcos completos para desarrollar aplicaciones de telefonía, todavía no hemos llegado a ese punto.Al menos en el mundo del código abierto.

He hecho preguntas algo relacionadas. aquí, aquí, y aquí.Estoy usando Speech Server de Microsoft y estoy muy interesado en conocer las alternativas que existen, especialmente las de código abierto.Es posible que encuentre buena información en las respuestas a una de esas preguntas.

solía Servidor JAGI ampliamente, aunque ya no está en desarrollo, y es bastante bueno y fácil de usar.Es una interfaz para FastAGI, que recomiendo usar en lugar de AGI simple.

La nueva versión de este marco es Llamadas ordenadas que parece tener muchas más funciones pero como no las he necesitado, no lo he probado.

Supongo que todo depende de lo que quieras hacer con AGI;Por lo general, tengo un plan de marcado algo complejo para recopilar y validar todas las entradas del usuario y luego simplemente uso AGI para conectarme a una aplicación Java que leerá algunas variables, hará algunas cosas con ellas (realizar operaciones, consultas, etc., etc.) y luego configurará algunas más. variables en el canal AGI y se desconecta.En este punto, el plan de marcado continúa dependiendo del resultado de las variables establecidas por la aplicación Java.

Esto funciona muy rápido porque tienes un ServerSocket en la aplicación Java, que recibe conexiones entrantes de AGI, crea un JAGIClient con el nuevo socket y una nueva instancia de un JAGIProcessor (que debes escribir, es el objeto que hará todo tu procesamiento) y luego ejecute JAGIClient dentro de un grupo de subprocesos.Su JAGIProcessor implementa el método ProcessCall donde hace todo el trabajo que necesita, interactuando con JAGIClient pasado como parámetro, para leer y configurar variables o hacer cualquier cosa que la interfaz AGI le permita.

Entonces tienes una aplicación Java ejecutándose todo el tiempo y puede ser una aplicación J2SE simple o una aplicación EE en un contenedor, no importa;una vez que se esté ejecutando, procesará las solicitudes de AGI muy rápido, ya que no es necesario iniciar nuevos procesos (a diferencia del AGI simple que ejecuta un programa para cada llamada de AGI).

Smee de nuevo.Después de migrar el IVR de mi cliente de SipX a Asterisk utilizando PHPAGI, debo decir que no he encontrado ninguna otra arquitectura que sea tan simple y capaz.Hoy haré una prueba de esfuerzo de Trixbox CE 2.8 en el mismo hardware en el que había probado SipX anteriormente.Pero debo decir que usar PHPAGI para IVR y Asterisk CLI para depuración funcionó perfectamente y me permitió desarrollar IVR mucho más rápido que cualquier otra empresa.Estoy trabajando en la implementación de TTS y ASR hoy y publicaré los resultados de mi prueba de estrés cuando pueda.

Asterisk AGI IVR simple, pequeño y flexible escrito en PHPhttp://carnefresca.net/projects/phpivr

Para aplicaciones pequeñas y sencillas uso Asterisk::AGI en Perl.También hay extensiones para Fast AGI.Para aplicaciones más grandes, como los servidores de operadores de VoIP, uso algo similar a OrderlyCalls escrito en Java (mi propio código).Sin embargo, OrderlyCalls es excelente para comenzar con el motor java fastagi y ampliarlo según sus necesidades.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top