Etiqueta: tutoriales

  • Configurar el BLF de colores en el Snom d735 y superiores

    Continuamos con el artículo sobre el Snom d735 y vamos a explicar cómo manejar los botones BLF y los colores extra que traen los teléfonos Snom.

    Para ello debemos hacerlo utilizando la configuración avanzada: En Snom la configuración vía web es la utilizada para cosas simples y si queremos algo más avanzado y profesional, hay que hacerlo utilizando un archivo de aprovisionamiento. Para ello tan solo necesitamos un servidor web en algún sitio donde el teléfono pueda acceder (puede ser un servidor web local o remoto, no importa mientras tenga acceso).

    Accedemos a Status > Settings y, una vez ahí, pulsamos en el enlace ‘save‘ de la configuración XML y guardamos ese archivo en el servidor web para poder acceder a él. Inicialmente podemos usar ‘settings.xml’ como nombre de archivo, aunque lo ideal sería utilizar ‘settings-DIRECCIONMAC.xml’ para que ese archivo sirva únicamente al teléfono que tenga esa dirección MAC.

    Una vez lo tengamos y podamos acceder al archivo en cuestión, incluso con el navegador, debemos buscar la línea que comienza en ‘<led_on perm=»»> y a partir de ahí, configurar las siguientes líneas:

    <led_on perm="">idle ON BUSY IN_A_CALL CALLING IN_A_MEETING URGENT_INTERRUPTIONS_ONLY DND UNAVAILABLE ACTIVE INACTIVE BE_RIGHT_BACK AWAY SEIZED CONNECTED ON_HOLD OFFHOOK RINGBACK I-Am-Ready AVAILABLE I-Am-Busy PhoneHasCall PhoneHasMissedCalls</led_on>
    
    <led_blink_slow perm="">INACTIVE OFFLINE PARKED HOLDING I-Am-Almost-Ready PhoneHasCallInStateHolding held_local held_remote KeyConfigActive</led_blink_slow>
    
    <led_blink_medium perm="">RECORDING MESSAGE DateOngoing DateReminding</led_blink_medium>
    
    <led_blink_fast perm="">RINGING INACTIVE</led_blink_fast>

    Con eso indicamos los eventos en los que queremos que el led (sea del color que sea) se mantenga encendido, parpadee lentamente, medio o rápidamente.
    A continuación configuramos los colores y con qué eventos se lanzarán:

    <led_red perm="">BUSY DND_ALL OFFLINE DND_SELF I-Am-Busy IN_A_CALL IN_A_MEETING URGENT_INTERRUPTIONS_ONLY UNAVAILABLE seized_remote alerting_remote active_remote held_remote</led_red>
    <led_green perm="">IDLE AWAY AVAILABLE AVAILABLE_ON_MOBILE AVAILABLE_AT_DESK I-Am-Ready I-Am-Almost-Ready seized_local alerting_local active_local held_local</led_green>
    <led_orange perm="">RINGING INACTIVE</led_orange>

    Aunque existe un <led_blue>, el teléfono con el que hago pruebas no tiene led de color azul, así que si ponemos algo ahí, seguramente se encienda en naranja o en rojo.

    Con un poco de maña y alguna prueba, seguro que le pilláis el truco rápido. En negrita he puesto los eventos que utiliza Asterisk, aunque según el sistema de presencia, podemos obtener otros valores. Snom soporta presencia de Broadsoft (XMPP) y de algún otro tipo, aunque esto último no he podido probarlo.

    Con esta configuración conseguiremos el comportamiento estándar:
    Led verde cuando el usuario está disponible.
    Led rojo cuando el usuario está hablando.
    Led naranja parpadeante cuando el teléfono está «sonando».

    ¿Y tú? ¿Sigues sin configurar el BLF de tu teléfono?

  • Qué son las llamadas fantasmas y cómo evitarlas

    Qué son las llamadas fantasmas y cómo evitarlas

    Seguramente os ha ocurrido alguna vez que vuestro teléfono IP ha empezado a sonar tras recibir una llamada extraña de algún número como «1000» o «101» o similar, en cualquier momento, a horas en las que vuestro servidor SIP está configurado para no dejar pasar más llamadas… Lo primero que uno piensa es que hay algún fallo de seguridad, algo que no debía estar pasando o incluso peor, si tenéis un teléfono IP en casa, es recibir llamadas a las tantas de la madrugada.
    Éstas llamadas se conocen como: «llamadas fantasma» y son totalmente inofensivas, aunque sí que pueden llegar a ser bastante molestas. Vamos a ver qué son, por qué ocurren y cómo se evitan:

    Qué son las llamadas fantasmas

    Antes de empezar: Muchas empresas de telemarketing hacen llamadas utilizando marcadores predictivos, que hacen llamadas a clientes esperando que éste conteste y una vez descuelgue, pasar la llamada al agente correspondiente. Si no hay ningún agente disponible en el momento, la sensación es idéntica a la de una llamada fantasma y ahí poco podríamos hacer salvo poner ese número en la lista negra o esperar un poco antes de colgar para saber quién nos llama, o apuntarnos a la Lista Robinson para evitar que nos molesten con publicidad pero efectivamente, esto no es una llamada fantasma.

    Para entender qué son las llamadas fantasmas, tenemos que saber que, cuando un ordenador establece una comunicación otro, abre un socket que no es más que un puerto que se comunica con otro.

    Vamos a ver un ejemplo básico: Petición HTTP

    Cuando nos conectamos a una página web desde nuestro navegador, un puerto de nuestro sistema se abre para enviar información sobre la página web que queremos visitar y nos conectamos al puerto 80 o 443 del servidor (de ahí que el router del servidor web tenga configurada una opción para enviar todas las peticiones del puerto 80 y 443 al servidor web de la red). Por nuestra parte, el router ve que, desde nuestro ordenador se abre un puerto (uno aleatorio, alto, sin mucha fanfarria) y lo abre durante el tiempo que dure la conexión. Hay que recordar que en HTTP, cada página, cada gráfico, cada archivo JS o CSS son conexiones separadas e independientes, por lo que, por cada página que enlaza a un archivo Javascript, un CSS y una imagen, tendríamos 4 conexiones:

    En este caso, el navegador es quien decide utilizar un puerto «aleatorio» para comenzar la conexión, es lo que se conoce como «puerto local» y como es interesante mantenerlo abierto hasta que se recibe el archivo, se utiliza un puerto local por cada archivo que se desea obtener. (Nota: Esto es así en HTTP1, en HTTP2 funciona diferente).

    En VoIP, al igual el puerto local es seleccionado como aleatorio por el propio navegador, en SIP el puerto local lo controla el teléfono y como es UDP y no tiene que esperar a recibir una petición para enviar otra, ya que todo el tráfico SIP se puede enviar en la misma conexión, únicamente se utiliza el puerto local definido por el teléfono. Por una razón de estándar, cada dispositivo o software SIP debe utilizar el puerto 5060/UDP, de manera que la conexión se pueda hacer directamente conociendo la IP, de manera que si encontramos un dispositivo con el 5060 abierto, debemos entender que entenderá SIP, por lo que si le enviásemos un paquete SIP con un INVITE a ese dispositivo, en teoría, debería empezar a sonar o redirigirla a donde esté configurado para hacerlo.

    Si nuestro teléfono tiene configurada una cuenta en un operador IP o en un servidor SIP remoto es normal que, de vez en cuando, se intercambien paquetes a fin de mantener la conexión (OPTIONS, REGISTER, etc.) y si, por lo que hemos explicado antes, tiene configurado el puerto SIP local con el 5060, nuestro router también abrirá ese puerto para mantener la conexión.

     

    Como podéis ver, en nuestro router también se abre el puerto 5060 para enviar el paquete a nuestro servidor SIP.
    Ahora bien… como también sabréis, existen numerosos bots que escanean Internet completamente buscando sistemas VoIP vulnerables, por lo que en cuestión de minutos pueden tener una lista de todos los ordenadores con el puerto 5060 abierto. Si encuentran una IP externa con ese puerto, intentan enviar un paquete INVITE para comprobar si es vulnerable…

    Por lo que nuestro teléfono recibirá una llamada. Está claro que es completamente inofensiva, ya que nuestro teléfono no puede procesar la llamada más allá del auricular y si descolgamos no escucharemos nada, ya que el bot no envía audio únicamente señalización, pero es bien molesto.

    Cómo evitar las llamadas fantasma

    Para evitarlas, tenemos la forma más sencilla que es entrar en la configuración de nuestro teléfono y modificar el parámetro SIP LOCAL para cambiar el puerto del 5060 a cualquier otro. Esto cambiaría el puerto con el que saldremos (no al que nos vamos a conectar) y de esa manera el bot seguramente no nos detecte y nos ahorraríamos esa molesta llamada.

    Otra posibilidad es activar la opción que tienen algunos teléfonos para evitar recibir INVITES de otros dispositivos que no sean el servidor SIP al que estamos conectados.

    Sea de la forma que sea, las llamadas fantasmas son tan habituales como la propia Voz sobre IP y por lo tanto evitarla está de nuestra mano.

  • Qué hace tu Asterisk cuando no miras

    Qué hace tu Asterisk cuando no miras

    Para todos aquellos que no pudieron ir al VoIP2DAY, o aquellos que fueron y se lo perdieron y tienen curiosidad por ver lo que presenté, aquí os dejo el material sobre la conferencia «Qué hace tu Asterisk cuando no miras«:

    Un resumen sobre la importancia de los logs, cómo trabaja Asterisk con los logs y cómo utilizar los nuevos sistemas de monitorización para almacenar datos y poder obtener información relevante de cada instante de vida de nuestros sistemas.

    que-hace-tu-asterisk-cuando-no-miras

    Si tenéis alguna pregunta o sugerencia, solo tenéis que dejármela en los comentarios.

  • Cómo medir la calidad de una llamada

    Cómo medir la calidad de una llamada

    altispace-main-screen-3
    Cuando trabajamos con VoIP, somos conscientes de que estamos trabajando con una tecnología digital, formada por un flujo de datos dedicado a señalización, y otro flujo de datos dedicado a media esto es: audio, vídeo, archivos, etc. Todo es digital por lo que el ruido electromagnético que suele afectar a la información transmitida por líneas analógicas no nos afecta en este caso, y además es IP, de manera que en cada dispositivo inteligente routers, switches, etc, existen herramientas de verificación de datos que comprueban que lo que entra por un puerto, sale por otro exactamente igual y en el menor tiempo posible. No obstante, hay motivos por los que, durante una conversación, nos interesa conocer la calidad de audio a fin de descubrir fallos, problemas y ponerles solución.

    El 80% de las veces, los errores de audio suelen ser debido a problemas de calidad de servicio o ancho de banda insuficiente. Generalmente esto se soluciona configurando QoS en el router, separando las redes de VoIP y la de datos a fin de que «las actualizaciones de windows no se coman el ancho de banda de una llamada». un 5% de las veces suele ser por problemas con auriculares de mala calidad (micrófonos demasiado cerca de la boca, lo que provoca un volumen excesivo y ruidos propios del movimiento de la boca que son capturados por el micrófono).

    Imagina que estás trabajando, haces una llamada y esta se escucha entrecortado… ¿por qué ocurre? ¿cómo se puede solucionar? seguramente diremos que es por falta de ancho de banda, o algún cuello de botella pero, ¿ y si no es eso?.

    Necesitamos medir la calidad de una llamada a fin de garantizar que las conversaciones tienen la calidad mínima exigible. Esa medición debe ser objetiva y comprobable, de ahí que tengamos que adentrarnos en un tema nuevo.

    (más…)

  • Cómo instalar y configurar PJSIP en Asterisk 13

    Cómo instalar y configurar PJSIP en Asterisk 13

    Somos muchos los que esperábamos con ansia la llegada de PJSIP en Asterisk como «sustituto» de chan_sip por varias razones. El gran problema era que, pese a que chan_pjsip es un conector hacia PJProject, tras hacer un par de pruebas, uno descubre que no todo es tan fácil como esperaba y que utilizar PJSIP en lugar de chan_sip se hace más cuesta arriba, por lo que al final el 99% de los usuarios siguen utilizando chan_sip. Resultado: frustrante.

    La primera cuesta arriba que nos encontramos cuando trabajamos con PJSIP es la instalación. Hay que compilar previamente PJPROJECT, por lo que descargamos la última versión, la instalamos y una vez finalizado correctamente (y sin que nos de ningún error) al compilar Asterisk, este falla por alguna razón. ¿qué hemos hecho mal? ni idea… como todo buen usuario, vamos al wiki de Asterisk y seguimos las instrucciones paso a paso… vemos que la versión que aparece en el wiki no es la última, así que vamos a probar por si la última versión no fuera todo lo estable que pensábamos y volvemos a intentarlo… utilizamos una línea mágica que viene en el wiki:

    ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'

    Con esto, parece que debería funcionar bien… volvemos a compilar… vuelve a fallar… ¿puede ser porque hemos instalado antes la versión más moderna? Eliminamos las librerías que tenemos para asegurarnos que no tenemos nada de PJ… instalado previamente y volvemos a recompilar… y así, durante un par de horas más.

    Finalmente encontramos las versiones correctas de PJSIP, PJProyect, Asterisk 13 y demás lindezas, con la línea correcta de ./configure y parece que por fin compila y tenemos nuestro PJSIP configurado y funcionando. Vamos a configurar ahora nuestras cuentas SIP…

    (más…)

  • Cómo instalar el Asterisk 10 más completo

    Una de las cosas recomendadas para ver el potencial de Asterisk, comprobar si todo funciona correctamente y hacer pruebas, es instalar la última versión disponible, aplicarle una configuración que tengamos ya, adaptarla a la nueva versión y ver los cambios que trae dicha versión, para ver cómo poder exprimir estos cambios, con objeto de aplicarlo a los distintos proyectos que surgen.

    En muchas ocasiones, la última versión no es seguramente la más idónea para utilizar en un proyecto, pero es imprescindible conocer el comportamiento, las características y las novedades que trae la última versión. Si un cliente nos pidiera una característica que únicamente trae la última versión, ¿le vas a decir que no se puede porque no viene implementada en la versión antigua que utilizas habitualmente?  muy al contrario, lo importante es conocer las novedades, ir siempre un paso por delante y hacer el mayor número de pruebas posibles para cuando la versión se convierta en «estable», poder utilizarla con conocimiento.

    Vamos a explicar los pasos que hay que seguir para tener un sistema completo con la mayor cantidad de características posibles habilitadas. Esto seguramente no sea práctico ¿para qué queremos un sistema Asterisk con absolutamente todas las características habilitadas?, pero bueno, seguramente para hacer alguna prueba o una demostración, nos puede servir. 🙂

    (más…)

  • Cómo configurar IPv6 en Linux

    Mucho se habla de las bondades del IPV6, de que cuando este sistema se aplique globalmente, el proveedor nos ofrecerá no una dirección IP si no un rango de 16 millones de IP externas:

    IPv6 permite actualmente que cada persona en la tierra tenga asignada varios millones de IPs, ya que puede implementarse con 2128 (3.4×1038 hosts direccionables). La ventaja con respecto a la dirección IPv4 es obvia en cuanto a su capacidad de direccionamiento. Vía Wikipedia.

    No obstante es complicado encontrar un paso a paso básico para que una persona, en su ajetreo diario, encuentre el tiempo necesario para aprender cómo funciona esto del IPv6 y más importante aún, cómo configurarlo de una forma fácil y rápida.

    Para ello, para estas personas que tienen curiosidad y quieren empezar a trabajar con IPv6 o simplemente probarlo, vamos a explicarlo a continuación:

    Mucho se habla de las bondades del IPV6, de que cuando este sistema se aplique globalmente, el proveedor nos ofrecerá no una dirección IP si no un rango de 16 millones de IP externas:

    IPv6 permite actualmente que cada persona en la tierra tenga asignada varios millones de IPs, ya que puede implementarse con 2128 (3.4×1038 hosts direccionables). La ventaja con respecto a la dirección IPv4 es obvia en cuanto a su capacidad de direccionamiento. Vía Wikipedia.

    No obstante es complicado encontrar un paso a paso básico para que una persona, en su ajetreo diario, encuentre el tiempo necesario para aprender cómo funciona esto del IPv6 y más importante aún, cómo configurarlo de una forma fácil y rápida.

    Para ello, para estas personas que tienen curiosidad y quieren empezar a trabajar con IPv6 o simplemente probarlo, vamos a explicarlo a continuación:

    (más…)

  • Probando y explicando CEL en Asterisk 1.8

    Una de las grandes novedades que traía Asterisk 1.6.2 y que forman parte del gran número de novedades de Asterisk 1.8 es el soporte de un nuevo sistema de logueo de eventos llamado CEL (Channel Event Logging) que, supuestamente viene a solucionar los grandes problemas que tiene el CDR de Asterisk, como cuando se utilizan transferencias SIP en lugar de las transferencias nativas de Asterisk.

    Esta característica es seguramente, una de las mejores razones por las que actualizar nuestro Asterisk de 1.4 o Asterisk 1.6.0 a la nueva versión de Asterisk 1.8. ya que son muchas las empresas que utilizan a diario el listado de llamadas realizadas junto con toda la información que suele incluir el CDR y necesitan aún más información o por lo menos, que esta se muestre adecuadamente.

    Para que el no lo sepa, el CDR (Call Detail Record) es un registro «log» que gestiona y almacena todo el detalle de llamadas que se realizan a través de Asterisk por lo que, tanto para las empresas que necesitan llevar un control riguroso de llamadas, como para los proveedores que utilizan el CDR de Asterisk para poder facturar a sus clientes, este registro es de vital importancia.

    La mayoría de las centralitas traen integrado un sistema que permite extraer el listado de llamadas, así como el resto de sus datos: fecha y hora de inicio de la llamada, duración, origen, destino, si la llamada se ha podido realizar correctamente o si ha ocurrido algún error, etc. Aunque la principal diferencia es que para acceder al CDR, o bien hay que pagar un ‘extra’, necesitar de otro sistema independiente que se conecta a la PBX mediante un puerto serie, y además no es todo lo fiable que debería ser.

    El CDR que incluye Asterisk tampoco es una maravilla (aunque en comparación con el resto de sistemas PBX comerciales, es la mayor joya jamás inventada), y es que cuando se realizan llamadas que queremos monitorizar, existen algunas ciscustancias en las que el CDR no sabe interpretar correctamente: Por ejemplo, una transferencia realizada mediante la función SIP REFER (Transferencias SIP) que trae el propio terminal SIP, es algo que el CDR no implementa bien y en estos casos (y más aún si necesitamos facturar dicha llamada) se puede complicar bastante y para estos casos y muchos otros aparece CEL del que vamos a explicaros qué es y cómo funciona…

    (más…)

  • Tutorial para interconectar Asterisk 1.6 con Kamailio 3.0

    A traves de Manwe veo un fantástico tutorial paso a paso sobre cómo integrar Asterisk 1.6.2 con Kamailio 3.0 escrito por Daniel Constantin Mierla en la que nos explica cómo configurar Kamailio para registrar y gestionar las llamadas entre usuarios SIP mientras que reenvía ciertas peticiones SIP a Asterisk (para acceder a la red telefónica, por ejemplo).

    El tutorial está hecho realmente para torpes y es que siguiendo los pasos cualquiera puede instalar su propio OpenSER como servidor de registro y conectarlo a Asterisk para utilizarlo como gateway o servidor de aplicaciones de voz, aunque lo verdaderamente interesante es que seguro que esto hará que muchos que ya conocéis Asterisk y queréis aprender cómo funciona una aplicación como  Kamailio servirá como punto de partida para algo práctico para continuar aprendiendo.

    Seguramente, muchos lectores estarán deseando poner en práctica este tutorial, aunque debemos recordar que, de poco sirve hacer copy+paste de los comandos y de la configuración si no se entiende lo que se está haciendo y aunque parezca sencillo, realmente lo es, tan sólo hay que dedicarle su tiempo para leer la documentación y entender qué hace y porqué.

    (más…)

  • Cómo instalar un servidor de comunicaciones Asterisk en tu Mac

    Asterisk es una herramienta que funciona en una gran cantidad de sistemas operativos, no únicamente Linux. De hecho, últimamente en la lista de desarrolladores de Asterisk está aumentando el número de hilos que tratan de solucionar pequeñas incompatibilidades con sistemas basados en FreeBSD (el núcleo en el que está basado Newton, el kernel del MacOS X).

    A pesar de este esfuerzo, siempre se ha dicho que Asterisk es compatible con prácticamente cualquier sistema operativo basado en el sistema UNIX, los fabricantes únicamente desarrollan drivers o módulos para compatibilizar con sistemas Linux por lo que en caso de desarrollar algo «serio» y que utilice tarjetas de comunicaciones, es altamente recomendable utilizar un sistema Linux en lugar de cualquier otro.

    Aunque las tarjetas de comunicaciones sólo sean compatibles con sistemas Linux siempre podemos utilizar gateways como Epygi, VegaStream, GrandStream, Soundwin, Linksys o cualquier otro basado en SIP (para algo es el protocolo REY para VoIP).

    No obstante, en algunos casos nos puede interesar montarnos nuestro propio Asterisk bajo MacOS X algo que es tan sencillo, que una vez termines de leer este artículo te darás cuenta que es tan sencillo como siempre.

    Incluso, debo reconocer que me sorprendió gratamente encontrarme un directorio en la página de descargas de Asterisk, llamado dahdi-freebsd-complete, lo que indica que posiblemente pronto, se ampliaría la compatibilidad del hardware a otros sistemas.

    (más…)