Hace unos días instalé un conmutador de Voz sobre IP para un cliente, el detalle en esta ocasión es que se usarían softphones pero no sobre Windows como se hacía con anteriores clientes, si no sobre Linux.
Al principio no le vi complicación pues existen diversos softphones para Linux, tanto open source, gratuitos y comerciales, pero despues de evaluar varios todos tenían una pega.
En el caso de los comerciales requerían del pago de una licencia por softphone por lo que para el cliente no le era atractivo, los gratuitos estaban muy limitados y los open source no todos funcionaban bien.
Pero buscando y buscando lei la recomendación en varios foros del SoftPhone Twinkle, el cuál es un softphone SIP que funciona solo para Linux y es Open Source.
Su interfaz no es muy atractiva, pero despues de empezar a usarla es muy funcional
Al principio tuve problemas son este softphone ya que al recibir llamadas se me quedaba colgado el softphone, pero buscando info encontré que era por falta de librerías.
Entre las principales características es que te permite elegir un dispositivo de sonido para el timbrado y otro para hablar y escuchar, esto es práctico cuándo se usan diademas ya que asi se puede conectar una diadema usb y hacer que el timbrado suene por el dispositivo principal de sonido y la conversación se realice por las diademas USB. Gracias a lo anterior también es posible elegir un tono para el timbrado por lo que es práctico cuándo se tienen múltiples extensiones en una misma oficina asi ya no se confunden entre los timbrados.
También este softphone permite elegir el tipo de códec a usar soportado G711u, G711a, GSM, iLBC, G726, Speex.
Soporta cancelación de eco, ajuste automático de volúmen de dispositivos.
Entre otras muchas características que lo hacen interesante y práctico para su uso en producción.
Su instalación en debian o Ubuntu se puede realizar por paquetes y es necesario instalar las librerías adicionales para no tener problemas de funcionamiento.
Generalmente quienes hacen esto son phreakers quienes violan sistemas IP inseguros para hacer llamadas a paises dónde los costos por minuto son muy altos como por ejemplo IRAN, COREA DEL NORTE, CUBA, LIBERIA, AFGANISTAN, etc., paises que generalmente tienen el bloqueo y embargo económico de los Estados Unidos.
Por lo que se me ocurre a primera instancia para medio asegurar un sistema de Voz sobre IP mediante los siguiente sencillos y básicos pasos:
La primera es no poner un * en una IP Pública o DMZ.
Segunda en caso de que se quiera tener extensiones remotas, es usar una VPN ya sea como un cliente VPN o si es un teléfono IP alguno que soporte PPTP.
Tercera es pedir password en la marcación a números del extranjero
La cuarta que debería ser la primera nunca usar planes de marcación XX.
La quinta usar iptables para restringir accesos de IP desconocidas a nuestro servidor.
La sexta en lo posible usar IP Fijas en vez de dinámicas.
Séptima poner en cron una aplicación que mida el consumo de alguna extensión y lanzar mediante AMI una alerta a un teléfono.
Octava que debería ser la primera también nunca usar user 101 password 101.
La novena no se me ocurren más ahorita, ¿ Más recomendaciones ?.
Instalar un Asterisk no es solo bajar elastix e instalarlo, hay que llevar a cabo medidas que ayuden a hacer un sistema confiable y seguro para nuestros clientes.
Muchos amigos me han preguntado como lanzar llamadas en automático a través de Asterisk, aparte que es muy común que en diversos foros salgan este tipo de preguntas. Por ello aquí posteo un código muy simple hecho en PHP que permite marcar a un número para luego enlazarlo a un AGI, Un grupo de marcación, grupo de extensiones, IVR, etc.,
<? #Direccion IP del Servidor de Asterisk Manager $strHost="localhost"; #Usuario dado de alta en el Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strUser="cloudvoox"; #Password del usuario del Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strSecret="cloudvoox"; #especificamos el contexto $strContext="from-internal"; #indicamos el tiempo de espera de la marcación $strWaitTime=45; #La prioridad para colocar la llamada $strPriority=1; #maximo de reintentos $strMaxRetry="2"; #Extensión a dónde mandaremos la llamada realizada, previamente debemos definirla extension en /etc/asterisk/extensions_custom.conf, esta puede ser un AGI, un Grupo de marcación, IVR, Extension, Cola de llamadas, etc. $number="1997"; #A partir de aquí podemos crear un ciclo que lea diversos números a marcar, por ejemplo podría ser un mysql_fetch_array que nos obtenga los numeros a marcar y sustituirlos en el número de abajo #Aqui podemos enlazar los destinatarios externos ya sean extensiones internas SIP o IAX, o también pueden ser números de la PSTN que salgamos mediante IAX2, SIP, Zaptel o DAHDI #En este caso estoy llamando a traves de voipjet al número de la ciudad de México 11689818 (+525511689818) $strChannel="IAX2/voipjet/011525511689818"; if($strChannel!=""): $errno=0 ; $errstr=0 ; $strCallerId=" WebCall<$number>"; $oSocket=fsockopen($strHost,5038,$errno,$errstr,20); if(!$oSocket){ echo"$errstr ($errno)<br>\n"; }else{
Ahí previamente debemos tener creada la extensión 1997 en el plan de marcación de asterisk, esa extensión es a dónde vamos a mandar las llamadas contestadas, en este caso por ejemplo se puede crear en /etc/asterisk/extensions_custom.conf en caso de que se use freepbx como lo hacemos a continuación
sudo editor /etc/asterisk/extensions_custom.conf
#Y agregamos lo siguiente o editamos en caso de que ya exista
[from-internal-custom] include=>asterisk-calls [asterisk-calls]
exten =>1997,1,Answer
exten =>1997,n,SetMusicOnHold(Publicidad)
exten =>1997,n,MusicOnHold()
exten =>1997,n,Hangup #guardamos el archivo y reiniciamos el plan de marcación en la consola de asterisk
sudo asterisk -rvvv
dialplan reload
Básicamente lo que hicimos en el plan de marcación es poner la música de fondo llamada publicidad, que previamente debimos haberla creada, aquí también puede ser un AGI, o marcar a un grupo de extensiones, IVR, etc.
Con esto fácilmente podemos subir una lista de números a marcar, para que enseguida ejecutar el script y Asterisk les llame para luego enlazar las llamadas a la extensión 1997 dónde podemos tener cualquier aplicación como puede ser un AGI que haga una encuesta por ejemplo
También podemos crear un script que genere hilos de llamadas dependiendo del número de canales de voz disponibles en nuestro conmutador de Voz sobre IP.
FreePBX tiene un módulo que nos permite crear diversas clases de música de fondo, esto nos puede servir por ejemplo para que las llamadas que entren por una línea analógica, digital o DID cuándo los clientes o proveedores nos llamen escuchen publicidad e información de nuestros productos en vez del clásico timbrado telefónico, y para las extensiones internas que la música de fondo sea música clásica, rock, etc.
En este caso FreePBX solo permite subir archivos de audio ya sea wav o mp3 como música de fondo, pero no nos permite personalizar la música en espera, por lo que si queremos poner música en espera proveniente de un servidor de audio streaming que esté transmitiendo una radio en línea no lo podremos hacer desde la interfaz de FreePBX.
Asi que para poder poner una radio en línea que esté transmitiendo los juegos del mundial de futbol 2010 de SouthAfrica y habilitar el streaming de la radio en línea como música en espera de nuestro PBX y poder usarlo en los otros módulos de FreePBX como son IVR, grupos de Marcación, etc., tendremos que hacer lo siguiente:
#Editar el archivo /etc/asterisk/musiconhold_custom.conf sudonano etc/asterisk/musiconhold_custom.conf #Agregar los parámetros de la radio en línea como se muestra a continuación, solo cambiar la url de la radio en línea: [radio] mode=custom dir=/var/lib/asterisk/mohmp3/radio application=/usr/bin/mpg123 -q-r8000-f8192-s--mono http://sc56.panda.fast-serv.com:80/ #Guardamos el archivo #creamos el directorio /var/lib/asterisk/mohmp3/radio sudomkdir-p/var/lib/asterisk/mohmp3/radio #cambiamos permisos sudochown-R asterisk:asterisk /var/lib/asterisk/mohmp3/radio #entramos a la consola de asterisk para reiniciar el módulo de moh sudo asterisk -rvvv #reiniciamos el módulo desde la consola de asterisk
moh reload #verificamos que se haya reiniciado el módulo
moh show classes #Y deberíamos ver algo como lo siguiente
Class: radio
Mode: custom
Directory: nodir
Application: /usr/bin/mpg123 -q-r8000-f8192-s--mono http://sc56.panda.fast-serv.com:80/
Format: slin
Con esto ya podemos asignar la música de fondo "radio" para cuándo entre una llamada por un DID, a un grupo de marcación, cola de llamada, etc., desde la interfaz de freePBX.
Al parecer Panasonic está aplicando está máxima, ya que Panasonic ha negociado con Digium los creadores de Asterisk para homologar sus terminales SIP como equipos compatibles con Asterisk PBX, esto ya que Panasonic uno de los grandes fabricantes de conmutadores analógicos al parecer se está dando cuenta que si no se mueve a las nuevas olas tecnológicas desaparece, por lo que ha decidido sacar nuevas terminales SIP aprovechando el boom que esta teniendo Asterisk y su tecnología PBX basada en código abierto, por lo que también Panasonic al igual que otras empresas que ya lo están haciendo tal como Siemens quieren aprovechar el nuevo mercado de las Open Communications.
Aquí la pronunciación de Panasonic al respecto.
“We are excited to work with Digium and their fast growing base of customers using open source, standards-based business phone systems,” said Kim Murtagh, Director, Panasonic System Networks Company of America. “As the market leader, Panasonic is committed to delivering innovative features and superior performance.”
“The Digium and Panasonic interoperability partnership and certification of IP phones opens new opportunities for Digium channel partners and integrators,” said Digium’s David Hardy, Director of Business Development. “The Panasonic global footprint and commitment to SIP telephony excellence creates exciting sales opportunities for our partner community and for businesses using Asterisk.”
Hace unos días un cliente nos pidió una solución de Telular GSM para un conmutador CloudVoox que le habíamos instalado hace tiempo, por lo que le ofrecimos nuestras soluciones tradicionales de Gateway GSM Analógico que se conecta a un puerto FXO para poder usarse en el conmutador, el detalle es que ya no tenía más puertos FXO en la tarjeta Sangoma que se le entregó, y la solución de Telular+FXO aumentaba el costo de la solución, por lo que le presentamos una segunda opción que fué un 30% más económica mediante un Telular GSM VoIP con protocolo SIP.
Para esto le ofertamos el Telular VoIP GSM MV-370 de la marca Portech. Lo que nos llamó la atención de este Telular es su costo prácticamente es comparable a un Telulink Xibelis de YX Wireless el cuál es analógico.
La configuración del Portech es relativamente sencilla, para llamadas entrantes básicamente lo que se requiere hacer en el gateway GSM IP es registrarlo al PBX como si fuera un usuario SIP, indicar un DID que se enviará al PBX cuándo entre una llamada por el GSM, de esta forma se podrá configurar a que aplicación enviar la llamada entrante como puede ser un IVR, DISA, Grupo de marcación, Callback, etc.
Para llamadas salientes del PBX solo hay que crear una troncal IP con el gateway GSM, para esto el GSM requiere tener una IP Fija ya que ahí se enviarán los números a marcar, para esto también es necesario crear una ruta de salida dónde se designarán los prefijos y numeración a salir por el Gateway GSM como por ejemplo 044 o 045 para el caso de México. También es necesario por seguridad definir en el Gateway GSM de que IP se permitirá la generación de llamadas, en este caso sería la IP del PBX así como también definir el plan de marcación en el Telular GSM.
Con respecto a los códecs soporta los siguientes G.711 u-Law,G.711 a-Law,G.729A,G.729A/B, que son un estándar, aparte que el G729 puede tener mayor utilidad en caso de que el telular estuviera en una red IP remota.
Más detalles técnicos pueden consultarlo en la página web del fabricante :
El desarrollo de los softphones cada vez son más sorprendentes, recuerdo en el 2004 cuándo vi corriendo un softphone en Windows XP, posteriormente en el 2005 sobre Linux y en ese mismo año andaba corriendo un softphone en una terminal MC50 con Windows Mobile 2003 que en ese tiempo era de Symbol Technologies ahora Motorola. Recuerdo también cuándo salio ifon el primer softphone son soporte de videoconferencia para Windows Mobile con lo cuál podrías andar en cualquier parte teniendo una charla de video usando Asterisk con WiFi, vaya hasta cuándo usé el MSN Messenger versión 4.3 con Asterisk por hay del 2005.
Sin duda los softphones han ido progresando conforme pasan los años, como por ejemplo cuándo se desarrolló el Softphone Open Source de OpenWengo que sacó también una versión para Windows Mobile con el .Net CF2, pero no sé que pasó después que este proyecto se desvaneció, aunque si resurgió otro proyecto interesante de la empresa Wengo que es una telefónica francesa y el proyecto que sacaron fue un webphone de pago para un servicio tipo sección amarilla pero con el plus de que podías llamar a los anunciantes de los servicios desde su anuncio en la página web y los podías localizas en su móvil, teléfono fijo o extension VoIP. Esta solución me pareció muy interesante.
Hace un par de años le eché un ojo a DoodlePhone cuándo sacó su primera versión de WebPhone gratuito, aun en ese tiempo tenía muchas "pegas" cómo dijeran los eshpañolesh, pero hoy viendo nuevamente su sitio web veo que relanzaron su WebPhone SIP el cuál está basado en Java el cuál promete mucho y en su versión beta está siendo gratuito con una versión de pago aparte que tiene la posibilidad de ser personalizado.
Entre las características principales del WebPhone podemos listar:
WebPhone personalizado para Blogs, Sitios Web, Redes Socales y tarjetas de negocios virtuales.
Solución Persona y de Negocios con posibilidad de personalizarlo.
Cumple con el estándar SIP, por lo que se puede integrar con Asterisk o con tu proveedor IP favorito.
Compatible con Adaptador de Teléfonos Análogos.
Integración del lado del servidor vía J2EE/.Net/PHP/Bases de datos
API Javascript (Mac OS X, Windows, Linux)
Mediante dispositivos SIP conectados al router no se requiere tener una PC prendida para recibir llamadas.
WebPhone, Click para hablar, Botón de llámame, Directorio Telefónico, etc.
Soporte de VPNs
Entre otras funcionalidades dónde tu imaginación es el límite.
Sin más preámbulos puedes echarle un ojo en la siguiente URL:
Con el desarrollo que ha tenido Asterisk en los últimos años prácticamente la cantidad de soluciones que se han generado a partir de este Killer App han sido impresionantes.
Lo interesante de Asterisk no solo es el proyecto en si, si no la combinación con otras tecnologías, como para el caso de hoy que hablaremos de la tecnología de radio.
La tecnología de radio se ha dado desde el siglo XIX, muchos cuándo oyen radio se imaginan a una estación que transmite alguna canción de universal stereo o algo asi, pero en si Radio se refiere a la tecnología de Radiofrecuencia, la cuál permite transmitir datos a traves de las ondas hertzianas mejor conocidas como frecuencias.
La radiofrecuencia está en la señal de TV, Señal de Satélite, Señales de WiFi, Microondas, GPRS, GSM, Edge, WiMax y un sin fin de tecnologías propietarias y abiertas. Cada uno de estos servicios se transmiten en diversas frecuencias, es como si fuera una autopista con diversos carriles, un carril para Trailers, otro para autobuses y otros para automóviles por ejemplo, cada una en su carril para no amontonarse y no causar interferencias. Algunas de estas frecuencias requieren permisos para poder usarse, de ahí que no cualquiera tenga una estación de radio, monopolio de tv o de telefonía celular, pues estas frecuencias están concesionadas y requieren de infiltrados, compadrazgos y permisos otorgados por las comisiones de comunicaciones del país dónde se requieran.
Dicho lo anterior ya sabemos que es la tecnología de RadioFrecuencia, que permisos se requieren e imaginamos que pasaría si las usáramos sin permiso, quien los da y que no a cualquiera se los otorgan. Ahora pasemos al tema principal del Post
Cómo comentamos al inicio el mezclar Asterisk con otras tecnologías como este caso de radio podría llevarnos a desarrollar interesantes cosas algunas de prueba e investigación y algunas más con otros fines. Y una de esas tecnologías combinadas puede ser USRP ( Universal Software Radio Peripheral ) dispositivo desarrollado y distribuído comercialmente por Matt Ettus, dispositivo que tiene el aspecto interesante de ser Hardware Abierto, lo que implica que cualquiera puede bajarse las especificaciones y desarrollarlo por si mismo, claro contando con el conocimiento técnico avanzado.
¿Qué es USRP?
Este dispositivo está diseñado básicamente para ser un radio por software, lo interesante es que con el Mainboard más los daughterboards podemos tener diversos radios como para transmitir estaciones de radio musicales, televisión, telefonía celular, bluetooth, microondas, señal de radioaficionados, RFID, etc.,
Esto ya que las diversas 'Tarjetas Hermanas' transmiten a diversas frecuencias por lo cuál mediante software puede definirse la frecuencia a usar y tener diversas aplicaciones.
Dicho lo anterior entonces la combinación de Asterisk + USRP puede llevarnos a crear una pequeña red de telefonía GSM local, recordemos que la tecnología GSM transmite en las frecuencias licenciadas de 850/900/1800/1900 por lo que usando el MainBoard USRP más la DaughterBoard correcta que permita transmitir a esas frecuencias como puede ser el WBX podríamos tener una red GSM local.
+
Aja!, OK! suena lindo, pero ¿ Y cómo ?
En los últimos años han salido diversos proyectos OpenSource alrededor de Asterisk, cómo el caso de OpenBTS.
OpenBTS es un proyecto que une el USRP+Asterisk para interconectar teléfonos móviles a traves de USRP y Asterisk, para hacer y recibir llamadas.
Básicamente lo que hace OpenBTS es usar la tecnología del USRP más el módulo adecuado para poder crear una red GSM con la cual los teléfonos puedan registrarse, pues al final una red GSM es como si fuera un Access Point WiFi solo que en vez de estar en la frecuencia de los 2.4 Ghz(802.11b) o 5.8 Ghz(802.11g) está sobre la de los 850/900/1800/1900 Mhz, entonces ya teniendo registrado los teléfonos OpenBTS hace interfaz con Asterisk para poder hacer y recibir llamadas entre los mismos móviles o hacia la red PSTN.
¿Y esto funciona ? ¿O solo es vaporware ?
Por supuesto que ya funciona, incluso se han hecho pruebas reales para dar cobertura a decenas de usuarios en un evento masivo en el desierto, área dónde no había cobertura celular, para esto se instaló una antena del USRP que estaría conectada con Asterisk, y en Asterisk se registraron los teléfonos móviles y a cada uno se le asignó un DID con el cuál podían hacer y recibir llamadas a la PSTN usando un servicio de Voz sobre IP. Se puede ver una presentación picándole AQUI
Bonito, bonito, bonito.. pero una imagen vale más que mil palabras ¿ Hay algún video de prueba ? Por supuesto gracias a la magia de youtube que es como la espada del augurio que nos permite ver más allá de lo evidente aquí está un video con unas pruebas que se hicieron usando OpenBTS y se pueden encontrar más en youtube.
Skype fué de los primeros servicios de VoIP que salieron en el mercado hace años, actualmente tiene cientos de miles de usuarios en todo el mundo y muchos aun creen que Skype es el estándar de facto en tecnología de Voz sobre IP.
Ciertamente Skype es uno de los líderes en servicio de VoIP, pero no el estándar, ya que Skype está basado en un protocolo propietario punto-a-punto, por lo que solo pueden hacer uso del servicio software y hardware específicos y que cumplan con el protocolo de Skype.
Lo anterior fué en el pasado, ya que ahora Skype ya soporta SIP(Session Initial Protocol) el cuál si puede considerarse como el protocolo estándar de la tecnología de Voz sobre IP, esto ya que el RFC del protocolo fué liberado desde 1996 por lo que cualquier compañía de tecnología puede desarrollar hard y softphones compatibles con el protocolo como por ejemplo Aastra, Grandstream, Linksys, Cisco, Polycom, Avaya, y un sin fin de marcas chinas.
Ahora ya es posible poder conectar Asterisk con Skype directamente mediante una troncal SIP
A pesar de que Skype ya habla SIP, preferiría seguir usando troncales con proveedores IP que soporten SIP & IAX dónde no tenga que pagar una renta mensual adicional aparte de las tarifas de llamadas.
Leyendo el blog de Sinologic.net el cuál es un blog de noticias sobre el mundo de Voz sobre IP, leo un post acerca de un video que hay en youtube dónde sincronizan una escena de la película de hitler con todo un diálogo acerca del fracaso de las comunicaciones unificadas propietarias y su interconexión.
Ja, bastante entretenido, que al final el Führer se ve desesperado por encontrar a un Asterisk Guy para que le implemente una solución de comunicaciones unificadas reales.
Comentarios Recientes