Asterisk 1.4 o mejor Asterisk 1.6 para entorno en producción?
En los últimos meses, asistimos a un momento bastante movido en que coexisten Asterisk 1.4 y Asterisk 1.6 ambas como versiones «estables» e ideales para un entorno en producción (un sistema estable que requiere que su funcionamiento sea lo más estable posible) por lo que es habitual hacernos la trivial pregunta: ¿Utilizamos Asterisk 1.4 ó mejor Asterisk 1.6?
Por lo general, y viendo muchos de los comentarios de usuarios de Asterisk (y Asterisk-ES) la versión más estable sigue siendo Asterisk 1.4 (concretamente los usuarios dudan entre la versión 1.4.17 y 1.4.24.2) por diferentes bugs que se han encontrado (bugs en el protocolo SIP e IAX principalmente) y que su solución no ha sido incluida en posteriores versiones. Asterisk 1.6 en cambio, sí incluye estas correcciones y algunas mejoras sustanciales en componentes tan importantes como el CDR y el soporte con MySQL.
Por contra, el mundo de los callcenters ha cambiado radicalmente en 1.6 debido principalmente a la «desaparición del agente» (componente principal en todo callcenter desarrollado en Asterisk y uno de los cambios más importantes de esta versión) del que el sustituto aconsejado no termina de agradar a las empresas que trabajan implementando este tipo de soluciones, pese a que el nuevo sistema potencia enormemente las posibilidades de desarrollo, aunque eso sí, sin el conocido «Agent/xxxx». A todo cuesta acostumbrarse, pero está claro que tarde o temprano habrá que pensar en actualizarse.
Mejoras como el soporte nativa en DAHDI de señalización BRI (para las tarjetas RDSI Básicas como la B410P) son bien soportadas en 1.6 mientras que en 1.4 seguimos necesitando el conocido mISDN (que dejó de ser estable con las últimas versiones del kernel de Linux) por lo que todo este tema se complica si nos empecinamos en utilizar Asterisk 1.4 con alguna distribución actual.
Además, Asterisk 1.4 ha sido ya considerada (muy a mi pesar) «frozen release«, esto es… ningún añadido nuevo será incluido, únicamente modificaciones para mejorar la estabilidad, por lo que si algo no terminaba de funcionar (como era el CDR) el parche no será incluido si modifica el comportamiento, así que podemos olvidarnos de encontrar una versión de 1.4 que soporte BRI mediante DAHDI a no ser que apliquemos el parche a mano.
Asterisk 1.6 por contra, incluye muchas novedades aún bastante verdes y para nada deseable de ser utilizada en un entorno en producción como el «chan_mobile», el «API Calendar» o incluso alguna feature interesante como SIP bajo TCP y TLS tampoco termina de ir todo lo bien que desearíamos.
Volvemos de nuevo a la pregunta… ¿Asterisk 1.4 ó 1.6?
Yo ando en un pequeño conflicto personal, Asterisk 1.4 lo conozco mejor, conozco sus trucos y sé por donde me puede salir en un momento dado, (después de 2 años trabajando a diario con esta versión, es normal) pero tras dar los cursos de Asterisk Avanzado en Alicante (2008) y en Bilbao (2009) y viendo las ventajas y la facilidad con la que los asistentes le cogen «el truquillo» a esta nueva versión y las distintas pruebas y perrerías que le hacen durante el curso, creo que 1.6 está bastante más maduro de lo que la gente cree.
En datos contundentes: en bugs.digium.com ahora mismo hay:
52 bugs abiertos sobre la versión 1.4.24
1 bug abierto sobre la versión 1.6.0.9
Por lo que, está claro que o hay pocos usuarios enviando bugs sobre la versión 1.6, o los desarrolladores se están centrando en resolver más rápidamente estos bugs, pero se ve que tarde o temprano habrá que actualizarse y es menos traumático actualizar de 1.6.X a 1.6.X+1 que de 1.4 a 1.6, por lo que personalmente recomiendo ir empezando a meterle mano y pensar en serio lo de utilizar Asterisk 1.6 en sistemas en producción porque es evidente que 1.4 va a dejar de tener soporte en muy poco tiempo.
Como escuché una vez a un colega programador: -«A ningún desarrollador le gusta la tarea de arreglar fallos que han provocado otros, pero aún es peor si además es sobre una aplicación ya desfasada«.
¿Y tú? ¿qué versión de Asterisk utilizas?