Archive for 'Asterisk y VoIP'

Zimlet de integración Asterisk – Zimbra

Digium y Zimbra parece que llevan tiempo siendo amiguetes.  Incluso hicieron unas curiosas declaraciones donde daban por sentado que iban a desarrollar medios de integración para las dos tecnologías… allá por el 2006.

Existe un Zimlet bastante práctico que nos da la funcionalidad de “click-to-call” y de enviar SMS a través de la interfaz web de Zimbra. De momento no funciona con Zimbra Desktop. También hay un par de zimlets oficiales que viene con la propia instalación de Zimbra, pero están dentro de la rama experimental. Este por lo menos está bastante probado y según he podido leer por los foros tiene a la gente satisfecha. Vamos al lío…

astzim

Descargamos el zimlet de la web oficial de sus desarrolladores. Para instalarlo necesitamos realizar modificaciones tanto en el servidor Zimbra como en el servidor Asterisk. Primero subimos el archivo zip a la carpeta /opt/zimbra/zimlets y lo instalamos usando el comando

zmzimletctl install /opt/zimbra/zimlets/ch_bnc_asterisk.zip

Este comando se encuentra dentro de la carpeta /opt/zimbra/bin. A continuación, extraemos el archivo XML de configuración para editar los parámetros específicos de nuestro servidor Asterisk y lo dejamos en la carpeta /tmp por ejemplo.

zmzimletctl getConfigTemplate
/opt/zimbra/zimlets/ch_bnc_asterisk.zip >
/tmp/ch_bnc_asterisk_config.xml

Editamos el archivo ch_bnc_asterisk_config.xml donde tendremos que cambiar:

  • IP o nombre dns de nuestro servidor asterisk.
<property name="astManagerIp">111.111.111.111</property>
  • Puerto de Asterisk Manager, por defecto el 5038.
<property name="astManagerPort">5038</property>
  • Usuario y contraseña del usuario de Asterisk Manager que ejecutará los comando enviado por el zimlet. Necesita privilegios de call y command. De momento nos lo podemos inventar, ya que lo daremos de alta más adelante.
<property name="astManagerUser">usuario</property>
<property name="astManagerSecret">contraseña</property>
  • El contexto. En mi caso, from-internal.
<property name="astDialContext">from-internal</property>
  • El tipo de canal en uso por las extensiones para crear correctamente el comando de click-to-call. Si tienes extensiones SIP, pues SIP. Si tienes extensiones analógicas, pues ZAP. No lo he probado con IAX, ahora que lo pienso…
<property name="astDialChannelType">SIP</property>

Estas con las configuraciones básicas para que el invento funcione, pero tiene algunas más relacionadas con el marcado y el uso de prefijos.  El siguiente paso consiste en cargar la nueva configuración para que el zimlet conecte con nuestro servidor Asterisk. Usaremos el mismo comando de antes y luego reiniciaremos el servicio de mailboxd:

zmzimletctl configure /tmp/ch_bnc_asterisk_config.xml
zmmailboxdctl restart

Ahora debemos crear un usuario en el servidor Asterisk con los privilegios necesarios para poder comunicarse con él. El sistema Asterisk Manager consiste en un pequeño servicio que escucha en un puerto TCP para ejecutar comandos remotamente. Se creó entre otras cosas para este tipo de usos, admitir integración sencilla con otras aplicaciones. Más info en VoIP-info.org. Para crear un nuevo usuario de esta plataforma editaremos el archivo /etc/asterisk/manager.conf y añadiremos las siguientes líneas:

[user] #nombre de usuario

secret = pass #contraseña

deny=0.0.0.0/0.0.0.0 #rango de direcciones no admitidas

permit=0.0.0.0/255.255.255.0 #rango de direcciones admitidas

read = system,call,log,verbose,command,agent,user

#permisos de lectura también se puede poner all

write = system,call,log,verbose,command,agent,user

#permisos de escritura también se puede poner all

Si tienes los servidores en diferentes redes, o resulta que el Zimbra está en una DMZ y no se puede comunicar con el Asterisk que está en la LAN puede que hayas pensado… como voy a conectar las llamadas entre redes?? Tendré que permitir tráfico SIP en el firewall?? La respuesta es no. Tan solo has de permitir el puerto de Asterisk Manager entre el servidor Zimbra y el Asterisk. Lo que realmente estamos haciendo es ejecutar comandos en el Asterisk de manera que el servidor llamará a nuestra extensión y al descolgar nos realizará automaticamente la llamada saliente. En otras palabras, no existe tráfico de voz entre el Zimbra y el Asterisk.

Como una imagen vale más que mil palabras, os dejo las siguientes capturas para que os hagáis una idea de la sencillez de la aplicación y de como funciona.

zimast01

Definiendo nuestra extensión.

zimast02

Información del servidor Astrerisk.

zimast03

El menú del zimlet.zimast04

Autodetección de números de teléfono con la opción de click-to-call.

zimast05Ring Ring!! El zimlet envía el comando de llamada y nuestra extensión suena. Al descolgar nos conmutará con la llamada saliente.

Economizando. Parte 3

asterisk

Una nueva entrega de la saga “Economizando”, pero dentro de la línea del ahorro telefónico.

Suponiendo que ya tenemos una máquina Asterisk, teléfonos IP o softphones, llamadas salientes por Skype (mediante Sisky o ChanSkype) y llamadas entrantes por PSTN o RDSI con tarjetas físicas… Adivinad, que vamos a cambiar.

Tras varias pruebas y cambiar el switch de la LAN por uno gestionable nos decidimos a poner en marcha un DDI de Telsome. El precio de este tipo de servicio es algo que no tiene nada que ver con un proveedor “físico”.

Una línea doméstica de Telefónica, por ejemplo, ya sabéis que tiene un elevado coste de alta (cuando no está en oferta y parece que hasta nos hacen un favor), un mantenimiento mensual y unas tarifas por las llamadas.

logo

En Telsome (como en otros tantos proveedores de VozIP, he aqui una lista) pagamos un alta de 12€ teniendo la posibilidad de elegir número nacional de diferentes numeraciones por provincia. El coste mensual por mantenimiento es de 2€ que se cobran del saldo del cliente, recargable mediante tarjeta de crédito (mínimo 15€ i.i.n.i.).

Ahora al tema de la configuración. En nuestro caso usaremos el DDI de Telsome solo para llamadas entrantes. Las salientes van por Skype mediante Sisky ya que nos interesan más sus tarifas. Así que vamos a definir un SIP Trunk solamente en su parte Incoming que meta las llamadas en el contexto from-pstn (modelo FreePBX para IP fija):

telsome_01

Tambien deberíamos autorizar las llamadas entrantes SIP anónimas desde el menú General Settings:

telsome_02Por si alguien se ha fijado, la cadena de registro del Trunk está vacía. Eso es porque deberíamos tener IP fija para un servicio de este tipo y así facilitar las configuraciones. Mi recomendación es que si dispones de un capital limitado para comunicaciones, no gastes en dos servicios mediocres (teléfono fijo e Internet). Intenta contratar una conexión de calidad y soporta sobre ella la telefonía, que funciona.

Esto viene al caso del problema del registro de Telsome. Haciendo un par de Googlazos veréis de lo que hablo. Ellos no soportan oficialmente esta configuración y el registro de los SIP Trunks realizados en máquinas Asterisk a sus servidores se cae cada 2×3. Lo ideal es que si vas a meter la telefonía de tu empresa en un servidor Asterisk, por el amor de FSM, no dejes caer todo el peso de la responsabilidad en el servidor, que luego le echan la culpa al código abierto. Pon algo de tu parte y contrata una conexión con un buen caudal y que tenga IP fija. De esta manera los técnicos de Telsome (insisto, o cualquier otra compañía proveedora) podrán enrutar directamente a esa IP todas las llamadas correspondientes a tu número de abonado. De esta manera te olvidas de caida de registros, de llamadas perdidas y de otras movidas que no tienen razón de ser en una empresa que vive (o se soporta) en las llamadas telefónica.

Ahora el test de calidad…

96 599 23 84 FashionPCs.com

Economizando. Parte 2.

Extraído y traducido en parte del manual oficial de Yeastar Sisky Enterprise Edition.

Skype, la plataforma de llamadas por internet a bajo coste (paso de llamarlo VozIP :)   se ha extendido como un reguero de pólvora en los últimos años, gracias entre otras cosas a su promoción por parte de Ebay (actual propietaria).

He leido en alguna ocasión que en Asia es mucho más utilizado que en Europa. También puede ser porque sean más. El caso es que efectivamente todos los contactos asiáticos de las empresas con las que trabajo usan Skype preferentemente.

El tema de este artículo es el siguiente: SIP softphone con llamadas entrantes y proveedor IP + Skype para otros contactos… Se puede simplificar todo en una sola aplicación y de paso economizar gracias a las bajas tarifas de Skye? La respuesta es… “Puede”. Vamos a intentarlo usando un servidor “intermedio” que traduzca clientes Skype simultáneos en trunks salientes para Asterisk. Nuestro nuevo amigo se llama SISKY.

Alguno dirá… “Jo, pues no tiene tiempo ni ná el Chan_Skype…”. Efectivamente no es una solución nueva, pero este es más económico (55$ por canal frente a 100$) y aunque me duela decirlo, su instalación es insultántemente sencilla bajo Windows. Chan_Skype necesita una máquina bastante específica y parece ser que la api de desarrollo para el Skype de Windows ofrece más posibilidades y estabilidad que la de Linux, dicho por Yeastar, los creadores de Sisky. Ellos sabrán, yo de programar ni papa.

Al lío. Nos bajamos Sisky Enterprise Edition de la web http://www.yeastar.com/Products/SiSkyEE.asp y lo instalamos en una máquina Windows XP SP2 o Windows 2003 Server SP2. Es importante no tener Skype instalado. En caso de tenerlo instalado procederemos a desinstalarlo. Luego ejecutamos la instalación de Sisky…siguiente, siguiente, siguiente… como siempre y luego a reiniciar. El software es 100% funcional sin registrar, pero oiremos cada 10 segundos una voz que dice “Yeastar!”. Si nos convence lo registramos y si no pues a tomar viento.

En el pimer inicio del programa nos aparecerá el asistente de configuración. Nos pedirá la cantidad de canales que vamos a usar y si queremos registrar una cuenta de Skype para dicho canal. Si elegimos esta opción nos aparecerá un asistente de registro de Skype por cada canal para el cual necesitemos una nueva cuenta de usuario. Si ya tenemos una cuenta que queramos utilizar, simplemente lo dejamos sin seleccionar para introducir los datos de acceso a mano.

Al acabar de configurar los canales deberemos dejar seleccionada la instalación de los “Skype Cables”. Se trata del driver que conectará la entrada/salida de audio de Skype con nuestro servidor Asterisk.

Notas para navegantes:

1- NO FUNCIONA EN SISTEMAS 64bit Y NO TIENEN MUCHAS GANAS DE PROGRAMAR UN DRIVER COMPATIBLE.

2- NO FUNCIONA POR TERMINAL SERVER. La única solución de administración remota son los sistemas tipo VNC.

3- Atención a cuando Skype pregunta si queremos permitir que una aplicación llamada “SkypeChannel.exe” controle la aplicación. Tenemos que decirle “Allow this program to use Skype”. Vamos, que sí que le deje. Como nos despistemos se nos pasa el arroz y puede que nos toque reinstalar Sisky.

Tendremos entonces a la vista los canales creados con testigo rojo a la izquierda, indicando que no están conectados correctamente a nuestra PBX. Normal. Aún no lo hemos hecho, pero tranquilos que no vais a sudar.

Botón derecho sobre el canal y seleccionamos “setting”. Podemos configurar cada canal como una extensión o como un trunk.

En este ejemplo explico una configuración con dos canales como trunk, pero con estos gráficos del manual oficial de Sisky os podeis hacer una idea de que configuración se ajusta mejor a vuestras necesidades.

Ahora nos vamos a nuestro FreePBX y creamos los trunks completando los campos Peer Details y Register String.

Instantánemente veréis como cambia el estado de los canales a color azul

Pues ale, poned el trunk en una ruta saliente y a llamar se ha dicho. Siempre que tengáis crédito SkypeOut claro ;)

En el manual oficial hay instrucciones más amplias sobre cómo configurar los trunks o extensiones sin FreePBX, cómo crear dialplans específicos o cómo crear speed-dials desde el administrador web para llamar a nuestros contacto de Skype desde extensiones SIP.

Drop the towel!

Al final he tenido que pasar el tema de las llamadas salientes por mISDN a un plano secundario. Ha sido imposible conseguir estabilidad al tener tráfico concurrente de varias llamadas entrantes y salientes. Hay algo que hace que las líneas dejen de funcionar y el router de voz se bloquea. No sé si la culpa es de las tarjetas baratas (HFC Billion) de mISDN (versión en rpm del repositorio de TrixBox Beta) o del puñetero router VoIP de Jazztel (que es lo que realmente peta).

Como último cartucho intenté hablar con los fabricantes del router, un Dataflex Vine 2404b con cuatro puertos BRI. Les llamé por teléfono y haciedo uso de mi spoken english les conté la película. Un tío bastante simpático me dio una dirección de email para que le explicara todo lo relativo al fallo y me aseguró que tal y como dice en la web, ese router es 100% compatible con Asterisk. Es más, ellos lo tienen así.

Esto me dio algo de esperanza sobre el asunto, pero desafortunadamente parece que el jefe se hizo cargo del asunto:

Sir

My colleague passed on your enquiry. Your router is managed remotely by Jazztel and we have no access to their service platform or network tools in order to diagnose issues on their behalf. Unfortunately we are not in a position to help you and can only recommend you continue to work with Jazztel towards a resolution.

La madre que os parió. Les respondí a este correo diciendo que si necesitaban acceso a lo que fuera se lo daba pero que, por favor, me intentaran ayudar. Os han respondido a alguno de vosotros? Pues a mí tampoco.

Así que he pasado del bono de tarifa plana de Jazztel para sus líneas y poco a poco iré investigando el problema. Probaré con Bristuff o con una versión de mISDN compilada a mano.

fideos

Fideos de arroz con verduras al estilo Si-Chuan salteados en wok. Yummi!

Una de cal y una de arena. Murphy estuvo allí.

TrixBox Logo

Pues sí que funcionó bien la instalación de los binarios de mISDN para TrixBox 2.4. Pero como siempre, cuando el componente software no da problemas, se te jode algo del hardware. El flamante equipo nuevo para el servidor de telefonía falleció en acto de servicio y su placa base se fue al garete. Retomamos el anterior Pentium 4 y menos mal que el disco duro con todo configurado (lease dia anterior) se portó bien en su nueva ubicación.

Volviendo al tema, hay que tener algunas cosillas elementales en cuenta, pero por lo demás cargó a la perfección. Principalmente:

1- No hay que configurar el sistema para que inicie mISDN al arrancar sin antes haber hecho mISDN scan y mISDN config. Si no ha creado los archivos de configuración no los encontrará y petará. Solución, inicio interactivo y no cargar mISDN.

2- En mi caso, tengo que modificar los archivos de configuración de mISDN porque las líneas de Jazztel másDSL no son ptmp, sino ptp.

Tampoco tuve ningun problema en compilar el IAXmodem para el servidor de fax. Por lo que parece, funciona bien y se registra correctamente en el Asterisk. Tengo que mandar un fax para probar…

Una cosa que sí que se me ha escapado de las manos ha sido la imposibilidad de hacer funcionar una X100p con una línea de Ono. La tarjeta está requeteprobada en un servidor anterior y ha sido testigo de largas conversaciones telefónicas. La configuración es exactamente la misma, incluso hace caso a las llamadas entrantes y salta el IVR como toca, pero no se oye nada ni hace caso a los tonos. Algo he oído sore configuraciones a nivel de operador por parte de Ono para usar sus primarios, pero para una triste línea?

Any help would be appreciate.