fbpx
Wikipedia

FreeSWITCH

FreeSWITCH es una plataforma de comunicaciones de software libre y código abierto para la creación de productos de voz, mensajería instantánea y video disponible bajo la Licencia Pública de Mozilla. La biblioteca principal, denominada "libfreeswitch", puede ser incluida en programas externos así como en aplicaciones independientes.

Historia

El proyecto FreeSWITCH fue anunciado por primera vez en enero de 2006 en la conferencia ETEL de O'Reilly.[1]​ En junio de 2007, FreeSWITCH fue seleccionado por la empresa Truphone para uso de "carrier grade",[2]​ y en agosto de 2007, Gaboogie anunció que seleccionó a FreeSWITCH para sus servicios de conferencias.[3]

El primer lanzamiento oficial de FreeSWITCH 1.0.0 (Fénix) se realizó el 26 de mayo de 2008.[4]​ El 24 de julio de 2008, fue lanzada la versión 1.0.1 que es un "parche menor".[5]​ La versión actual de FreeSWITCH es la 1.2.15 que ha sido liberada el 14 de noviembre de 2013.[6]

Diseño

Según el desarrollador principal, Anthony Minessale,[7]​ FreeSWITCH es un conmutador de software (soft-switch) construido sobre una máquina de estados.[8]​ El objetivo principal del proyecto incluye estabilidad, escalabilidad y abstracción.

Una versión anterior del sitio web de FreeSWITCH mostraba a un cavernicola moldeando una rueda de piedra, con un mensaje que decía, “Hay muchas ruedas, y nosotros también podríamos hacer uso de ellas”. Al parecer los desarrolladores de FreeSWITCH no tienen la intención de reinventar las ruedas que pueden provenir de otras fuentes. Una manera de eliminar las complejidades innecesarias es usando bibliotecas de software libre que están a disposición para realizar las funciones necesarias—aunque, por supuesto, esto puede hacer que la instalación sea más complicada (véase DLL Hell). FreeSWITCH lista los siguientes paquetes de software entre sus dependencias primarias:[9]

  • Apache Portable Runtime
  • SQLite
  • PCRE
  • Sofia-SIP
  • libspeex
  • SpanDSP
  • libsrtp

No todas estas dependencias son necesarias para construir el núcleo de la aplicación FreeSWITCH, sino que son dependencias de los diversos módulos externos, como los codecs. FreeSWITCH es una aplicación modular y los módulos pueden extender la funcionalidad de FreeSWITCH. Además, la capa de abstracción evita a que los módulos no dependan entre sí. La meta es asegurar que el núcleo no dependa de los módulos para ser iniciado y que los módulos no dependan de otros módulos para ser cargados.

Características

FreeSWITCH incluye varios módulos que proveen aplicaciones por defecto como conferencias, XML-RPC para controlar llamadas en tiempo real, Respuesta de Voz Interactiva (IVR), Conversor texto-voz / Reconocimiento Automático de Voz (CTV/RAH), Red Telefónica Conmutada (RTC), la capacidad de interconexión con circuitos analógicos y digitales, protocolos Voz sobre IP como SIP, SCCP, H.323, XMPP, Google Talk, entre otros.[10]

Las aplicaciones que utilizan la biblioteca de FreeSWITCH pueden ser escritas en C/C++, Python, Perl, Lua, JavaScript usando el motor SpiderMonkey de Mozilla, Java y Microsoft .NET a través del Microsoft CLR o a través de Mono. Además de eso, FreeSWITCH expone APIs y aplicaciones para el control de llamadas y funcionalidad IVR para el uso del programador.[11]

El manejo de llamadas puede realizarse a través del Dialplan XML o mediante la interfaz Event Socket, la cual es una conexión socket al servidor FreeSWITCH. Cualquier lenguaje de programación o software capaz de comunicarse vía socket puede ser usado para controlar la actividad del servidor FreeSWITCH. FreeSWITCH también viene con una biblioteca para el Event Socket (ESL) o "Envoltorio de ESL" para Erlang, JavaScript, Lua, Perl, PHP, Python y Ruby. Esta biblioteca se encarga de abstraer los aspectos triviales de la programación con sockets.

Codecs soportados

FreeSWITCH soporta los siguientes codecs de audio:

  • PCMU – G.711 µ-law
  • PCMA – G.711 A-law
  • G.722
  • G.722.1
  • G.722.1c
  • G.726
  • G.726 with AAL2 packing
  • G.729 (passthrough)
  • G.729 (requiere de licencia, $10/canal)[12]
  • GSM
  • CELT
  • iLBC
  • DVI4 (IMA ADPCM)
  • BroadVoice
  • SILK
  • Speex
  • CODEC2
  • Siren
  • LPC-10
  • G.723.1 (passthrough only)
  • AMR (passthrough only)

FreeSWITCH también soporta una serie de codecs de video:

  • H.261
  • H.263
  • H.263+ (H.263-1998)
  • H.263++ (H.263-2000)
  • H.264
  • Theora (passthrough)
  • MP4 (passthrough)

Algunos de estos codecs están implementados en modo passthrough, lo que significa que los datos viajan sin compresión y sin ningún procesamiento entre las personas que llaman, esto permite que los codecs con problemas de licencias o patentes puedan ser implementados, ya que los datos no son codificados o decodificados. Sin embargo, estos codecs no pueden ser transcodificados (i.e. ambas personas que llaman deben usar el mismo codec al usar un codec en modo passthrough, y algunas funciones de grabación y reproducción, tales como IVR no son compatibles)

También hay soporte para tarjetas de hardware de transcodificación, como los que produce la empresa Sangoma.[13]​ Estas tarjetas implementan los codecs en el hardware, de esta forma reduciendo el uso de CPU en el servidor. Algunos de estos codecs requieren licencia, proporcionando una alternativa a los codecs passthrough mencionados anteriormente.

Plataformas soportadas

Comparación con otros motores de telefonía

FreeSWITCH ocupa un espacio entre los conmutadores puros que simplemente encaminan llamadas, como GnuGK y SER, y los que son principalmente PBX o IVR, como Asterisk y sus derivados. FreeSWITCH proporciona bloques para el desarrollo de aplicaciones – tales como una central telefónica, un sistema de buzón de voz, conferencias, o tarjetas telefónicas – todo esto puede ser desarrollado utilizando cualquiera de los lenguajes soportados.

Véase también

Referencias

Enlaces externos

  • Sitio oficial de FreeSWITCH
  • Documentación oficial de FreeSWITCH
  • Listas de correo
  • FreeSWITCH.es - Blog sobre FreeSWITCH en español
  • #freeswitch-es en freenode
  • #freeswitch (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). en freenode
  •   Datos: Q2071303

freeswitch, plataforma, comunicaciones, software, libre, código, abierto, para, creación, productos, mensajería, instantánea, video, disponible, bajo, licencia, pública, mozilla, biblioteca, principal, denominada, libfreeswitch, puede, incluida, programas, ext. FreeSWITCH es una plataforma de comunicaciones de software libre y codigo abierto para la creacion de productos de voz mensajeria instantanea y video disponible bajo la Licencia Publica de Mozilla La biblioteca principal denominada libfreeswitch puede ser incluida en programas externos asi como en aplicaciones independientes Indice 1 Historia 2 Diseno 3 Caracteristicas 4 Codecs soportados 5 Plataformas soportadas 6 Comparacion con otros motores de telefonia 7 Vease tambien 8 Referencias 9 Enlaces externosHistoria EditarEl proyecto FreeSWITCH fue anunciado por primera vez en enero de 2006 en la conferencia ETEL de O Reilly 1 En junio de 2007 FreeSWITCH fue seleccionado por la empresa Truphone para uso de carrier grade 2 y en agosto de 2007 Gaboogie anuncio que selecciono a FreeSWITCH para sus servicios de conferencias 3 El primer lanzamiento oficial de FreeSWITCH 1 0 0 Fenix se realizo el 26 de mayo de 2008 4 El 24 de julio de 2008 fue lanzada la version 1 0 1 que es un parche menor 5 La version actual de FreeSWITCH es la 1 2 15 que ha sido liberada el 14 de noviembre de 2013 6 Diseno EditarSegun el desarrollador principal Anthony Minessale 7 FreeSWITCH es un conmutador de software soft switch construido sobre una maquina de estados 8 El objetivo principal del proyecto incluye estabilidad escalabilidad y abstraccion Una version anterior del sitio web de FreeSWITCH mostraba a un cavernicola moldeando una rueda de piedra con un mensaje que decia Hay muchas ruedas y nosotros tambien podriamos hacer uso de ellas Al parecer los desarrolladores de FreeSWITCH no tienen la intencion de reinventar las ruedas que pueden provenir de otras fuentes Una manera de eliminar las complejidades innecesarias es usando bibliotecas de software libre que estan a disposicion para realizar las funciones necesarias aunque por supuesto esto puede hacer que la instalacion sea mas complicada vease DLL Hell FreeSWITCH lista los siguientes paquetes de software entre sus dependencias primarias 9 Apache Portable Runtime SQLite PCRE Sofia SIP libspeex SpanDSP libsrtpNo todas estas dependencias son necesarias para construir el nucleo de la aplicacion FreeSWITCH sino que son dependencias de los diversos modulos externos como los codecs FreeSWITCH es una aplicacion modular y los modulos pueden extender la funcionalidad de FreeSWITCH Ademas la capa de abstraccion evita a que los modulos no dependan entre si La meta es asegurar que el nucleo no dependa de los modulos para ser iniciado y que los modulos no dependan de otros modulos para ser cargados Caracteristicas EditarFreeSWITCH incluye varios modulos que proveen aplicaciones por defecto como conferencias XML RPC para controlar llamadas en tiempo real Respuesta de Voz Interactiva IVR Conversor texto voz Reconocimiento Automatico de Voz CTV RAH Red Telefonica Conmutada RTC la capacidad de interconexion con circuitos analogicos y digitales protocolos Voz sobre IP como SIP SCCP H 323 XMPP Google Talk entre otros 10 Las aplicaciones que utilizan la biblioteca de FreeSWITCH pueden ser escritas en C C Python Perl Lua JavaScript usando el motor SpiderMonkey de Mozilla Java y Microsoft NET a traves del Microsoft CLR o a traves de Mono Ademas de eso FreeSWITCH expone APIs y aplicaciones para el control de llamadas y funcionalidad IVR para el uso del programador 11 El manejo de llamadas puede realizarse a traves del Dialplan XML o mediante la interfaz Event Socket la cual es una conexion socket al servidor FreeSWITCH Cualquier lenguaje de programacion o software capaz de comunicarse via socket puede ser usado para controlar la actividad del servidor FreeSWITCH FreeSWITCH tambien viene con una biblioteca para el Event Socket ESL o Envoltorio de ESL para Erlang JavaScript Lua Perl PHP Python y Ruby Esta biblioteca se encarga de abstraer los aspectos triviales de la programacion con sockets Codecs soportados EditarFreeSWITCH soporta los siguientes codecs de audio PCMU G 711 µ law PCMA G 711 A law G 722 G 722 1 G 722 1c G 726 G 726 with AAL2 packing G 729 passthrough G 729 requiere de licencia 10 canal 12 GSM CELT iLBC DVI4 IMA ADPCM BroadVoice SILK Speex CODEC2 Siren LPC 10 G 723 1 passthrough only AMR passthrough only FreeSWITCH tambien soporta una serie de codecs de video H 261 H 263 H 263 H 263 1998 H 263 H 263 2000 H 264 Theora passthrough MP4 passthrough Algunos de estos codecs estan implementados en modo passthrough lo que significa que los datos viajan sin compresion y sin ningun procesamiento entre las personas que llaman esto permite que los codecs con problemas de licencias o patentes puedan ser implementados ya que los datos no son codificados o decodificados Sin embargo estos codecs no pueden ser transcodificados i e ambas personas que llaman deben usar el mismo codec al usar un codec en modo passthrough y algunas funciones de grabacion y reproduccion tales como IVR no son compatibles Tambien hay soporte para tarjetas de hardware de transcodificacion como los que produce la empresa Sangoma 13 Estas tarjetas implementan los codecs en el hardware de esta forma reduciendo el uso de CPU en el servidor Algunos de estos codecs requieren licencia proporcionando una alternativa a los codecs passthrough mencionados anteriormente Plataformas soportadas EditarAuroraUX LLVM Clang gmake Sun Solaris 10 UNIX Sun Studio FreeBSD gmake Mac OS X gmake RHEL CentOS Linux Debian Ubuntu GNU Linux Windows Nativo Comparacion con otros motores de telefonia EditarFreeSWITCH ocupa un espacio entre los conmutadores puros que simplemente encaminan llamadas como GnuGK y SER y los que son principalmente PBX o IVR como Asterisk y sus derivados FreeSWITCH proporciona bloques para el desarrollo de aplicaciones tales como una central telefonica un sistema de buzon de voz conferencias o tarjetas telefonicas todo esto puede ser desarrollado utilizando cualquiera de los lenguajes soportados Vease tambien EditarVoz sobre Protocolo de Internet Protocolo de Inicio de SesionesReferencias Editar http conferences oreillynet com cs etel2006 view e sess 8270 http www prweb com releases 2007 6 prweb530752 htm https web archive org web 20080908103008 http www prleap com pr 88279 Copia archivada Archivado desde el original el 10 de agosto de 2008 Consultado el 19 de agosto de 2008 Copia archivada Archivado desde el original el 19 de agosto de 2008 Consultado el 19 de agosto de 2008 http www freeswitch org Copia archivada Archivado desde el original el 22 de octubre de 2009 Consultado el 19 de octubre de 2009 http www oreillynet com pub a etel 2006 07 25 an interview with the creator of freeswitch html CMP ILC FV7511446129 amp ATT 1837 http wiki freeswitch org wiki FreeSwitch Dependencies http wiki freeswitch org wiki Modules http wiki freeswitch org wiki Languages for Call Control https web archive org web 20101123010153 http freeswitch org node 235 http wiki sangoma com sangoma media transcoding sng freeswitch usage Archivado el 5 de julio de 2013 en Wayback Machine Enlaces externos EditarSitio oficial de FreeSWITCH Documentacion oficial de FreeSWITCH Listas de correo FreeSWITCH es Blog sobre FreeSWITCH en espanol freeswitch es en freenode freeswitch enlace roto disponible en Internet Archive vease el historial la primera version y la ultima en freenode Datos Q2071303Obtenido de https es wikipedia org w index php title FreeSWITCH amp oldid 118009653, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos