Mi cambio de asterisk a FreeSWITCH

Mi primeros pasos fueron con asterisk en ese tiempo fue con la versión 1.4 (Acabando de salir la versión 1.6, pero nadie recomendaba utilizar esa versión). continué probando, configurando y desarrollando sobre asterisk hasta la versión 11, realice algunas pruebas con las versiones 12 y 13.

Comencé mi experiencia con FreeSWITCH hace dos años, mi intención en ese tiempo era ver las cualidad y diferencia con asterisk. Yo personalmente quería ver lo que Anthony Minessale había desarrollado a partir de este post.

Mis primeras impresiones

Mis primeras instalaciones fueron por compilación por código, igual como hacia la instalación de asterisk, me fue algo tedioso por la dificultan y prácticamente es una versión no estable para mi gusto y algunas dependencias rotas o versión de librerías no implementadas en un debían estable o centos que son los SO que mayormente utilizo para las implementaciones.

La instalación de asterisk por código siempre me fue mas sencilla que la de freeswitch para versiones estables de debian en este caso fueron las versiones 6, 7 y 8. 

La instalación de freeswitch es mejor realizarla por los repositorios, para mejor integración, actualizaciones sencillas con aptitude o apt-get. ademas de que instalar o quitar modulos esta al alcance de un comando.

Mis primeros pasos

Las primeras configuraciones en asterisk me resultaron muy pero muy sencillas, configurar sip.con, luego extensions.conf y ya tenia dos PC con zoiper realizando llamadas entre ellos. nada mas complejo que un Dial. Archivos de configuración muy fáciles de leer y estructura sencilla.

Las primeras configuración con freeswitch fue algo muy complejo de aprender, dado que tiene o tenia algo compleja y muy amplia a lo que tenia asterisk en su momento que actualmente están implementando en las nuevas versiones de asterisk, como multi-tenant, configuración sip mas avanzada, perfiles sip, chat basado en paquetes sip. Freeswitch viene con una configuración preliminar, mi idea era entender y configurar todo desde cero para tener una comparación completa entre los dos softwares. Me resulto bastante complejo cambiar mi logica mas que todo a perfiles SIP, internal.xml, external.xml en ese momento no lo logre cambiar y mucho menos entender, con el tiempo comprendí perfectamente para que sirve y que beneficio tendría con eso. 

La otra parte compleja de freeswitch son los archivos de configuración que están basados en XML (realmente estos archivos apestan para mi gusto), para editarlos a mano son bastante molesto y complejos de configurar. básicamente no estan hechos para editarlos a mano, si no para lograr una mejor integración con software de terceros.

Mi cambio total a FreeSWITCH

Dada mi complejo inicio con freeswitch, seguía aprendiendo sobre el quería saber el por que de todas esas maravillas de las que tanto hablaban en los blog.

Después de mi desarrollo 100% basado en asterisk PBXOP.com, es una pbx virtual, para múltiples usuarios y múltiples empresas, asterisk 1.4, 1.6, 1.8, 1.11 (actual versión), no tenia estas opciones recurrí a escribir todo el software en python, para poder dotar a asterisk de estas opciones y poder desarrollar mi idea, En ese momento ya conocía a freeswitch y sabia que podía  hacer todo esto con gran facilidad, pero no sabia como. Igual ya tenia gran parte de código hecho para asterisk.

Después de un tiempo desarrolle una plataforma de facturación en asterisk orientada a cliente final (callshop), distribuidores, nada complejo pero muy funcional y sencilla. Hay fue cuando comencé a tener problemas y ver a freeswitch como una gran opción para continuar o cambiar la base de mi desarrollo.

Los problemas mas recurrentes eran, que asterisk no esta hecho para softswitch es mucho mas funcional para PBX, tenia problemas canales pegados o zombies (nunca supe la razón) esto al pasar el tiempo engorda al asterisk haciéndolo mas pesado, al basar todo en script de python cada llamada carga un script de python para ejecutar el dialplan esto quiere decir que por cada llamada asterisk abre un interprete de python, un script de python y una instancia de asterisk, esto consumía muchos recursos, decidí cambiar los AGI's por los FASTAGI's mejoro el rendimiento notablemente pero aun así consumía muchos recursos para un software muy pequeño. Llegue hasta el punto de copilar los script de python con cython, ayudo mucho pero seguía sin convencerme. 

El cambio a freeswitch comenzó cuando se me acaban las soluciones a los detalles de asterisk, cuando me decidi cambie todo el dialplan que estaba en python a lua que era lo que recomendaba freeswitch y las opciones del mismo freeswitch como la conexion a la base de datos, nibblebill, evento_socket, fueron las tres que me facilitaron el trabajo. lo mejor de todo es que por el mismo hardware tenia mas cantidad de llamadas, menos carga del servidor.

Por mi experiencia asterisk y freeswitch son software para voip muy bien construidos y bien hechos con sus pros y contras para diferentes campos de la voip.

Para PBX sencillas me es mucho mas fácil un asterisk puro o PBX complejas algún enlatado como FreePBX, Elastix (aun que ya muerto, sirven las versiones 2).

Para configuraciones de alto volumen de llamadas, facturación de llamadas (con posibilidad de facturación en tiempo real, por algo mas de recursos), proxy media, es mejor un freeswitch. 




Entradas más populares de este blog

Convertir disco virtualbox.ova a qemu.qcow2

Python, Redis una combinacion estupenda.

disqus

comments powered by Disqus