Categoría: Tutoriales

  • Cómo configurar el Addon de Elastix para High Availability

    Cómo configurar el Addon de Elastix para High Availability

    Heartbeat-twitter-01Cuando montamos un sistema de comunicaciones crítico, es imprescindible disponer de un sistema de alta disponibilidad que garantice el funcionamiento incluso en algún momento inesperado en el que el servidor principal tenga un problema y deje de dar servicio.

    Generalmente esto se suele hacer instando un sistema heartbeat, pacemaker y drbd:

    • heartbeat : Encargado de comprobar que el servidor está operativo y tiene red.
    • pacemaker : Encargado de comprobar que los servicios están funcionando al 100%.
    • drbd : Encargado de mantener perfectamente duplicado el contenido de una partición sincronizada en varios sistemas.

    Hay más herramientas que hacen esta labor, incluso hoy día existen alternativas que permiten ofrecer una alta disponibilidad no solo del sistema hardware, si no a nivel de sistemas virtualizados, pero ese es otro tema que trataremos más adelante.

    La cuestión es que instalar estas tres herramientas no es algo trivial, requiere de una configuración muy específica que suele llevar bastante tiempo, no solo para dejarlo preparado, si no para comprobar que todo es correcto y el sistema está configurado para ofrecer una alta disponibilidad confirmada.

    Hace poco tuve la oportunidad de «pelearme» con el módulo de alta disponibilidad de Elastix en varias ocasiones diferentes, un módulo que, pese a que «únicamente» instala este software y lo configura, también lleva el control del estado de redundancia y disponibilidad, lo que lo convierte en una herramienta bastante práctica para el tiempo invertido en configurarlo.

    (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…)

  • Un par de trucos para trabajar con editores de texto y VoIP

    Un par de trucos para trabajar con editores de texto y VoIP

    Captura de pantalla de 2016-01-22 10-51-48Soy de la vieja escuela, y eso significa que prefiero editar un archivo de configuración a un input text de una web, básicamente porque editar una web, generalmente implica un gasto en recursos del sistema para cargar un servidor web, un servidor de bases de datos, un intérprete por hilo, etc. Por esta razón, soy bastante amigo de los editores de texto y por esta razón os traigo un par de trucos: uno de ellos que me es bastante útil y otro que acabo de conocer gracias a mi colega Daniel Constantine.

    No voy a entrar en debates sobre qué editor es mejor o peor… todos sabemos que cada editor tiene sus ventajas y sus inconvenientes, no obstante soy un fiel defensor del ‘mcedit‘, un editor en particular que viene con el paquete «mc» (Midnight Commander) un clon para Linux del famoso Comandante Norton de MS-Dos o del Total-Commander de Windows.

    (más…)

  • La organización del VoIP2DAY publica los vídeos de las ponencias

    La organización del VoIP2DAY publica los vídeos de las ponencias

    Si os perdisteis alguna de las conferencias del VoIP2DAY 2015, la organización acaba de publicar los vídeos en español y en inglés de todas las conferencias que se impartieron.

    ponencias-voip2day-videos

    Para verlos tan solo hay que acceder a la página de las conferencias y seleccionar la ponencia que quieres ver, ahí se puede descargar la presentación y los vídeos (en inglés y en español).

  • Publicados los vídeos de la ElastixWorld 2015

    Publicados los vídeos de la ElastixWorld 2015

    La organización de la ElastixWorld ha publicado los vídeos grabados durante la ElastixWorld 2015 en su canal de Vimeo al que podéis acceder para verlos:

    elastixworld-videos

    Enlace a los vídeos: https://vimeo.com/channels/982742

    (más…)

  • Cual es el ancho de banda necesario para hablar por VoIP

    Cual es el ancho de banda necesario para hablar por VoIP

    bandwidthAhora que estamos viendo en España que los operadores de fibra óptica están ofreciendo conexiones de 300 Mb/seg y que próximamente van a empezar a ofrecer 500 Mb/seg e incluso hasta 1 Gb/seg mediante las nuevas conexiones de fibra óptica y hasta 500 Mb/seg mediante conexiones LTE.

    Una de las preguntas clásicas de las personas que empiezan con la VoIP es el ancho de banda necesario para poder hacer llamadas mediante VoIP. Generalmente se utiliza la típica tabla donde, en función del tipo de códec utilizado, se informa del ancho de banda necesario «aproximadamente», incluso, en muchas páginas existe una calculadora de ancho de banda que, introduciendo el número de llamadas y el códec utilizado nos dice el ancho de banda general que hace falta o alguna tabla como la siguiente donde poder ver el ancho de banda ethernet necesario en función del códec utilizado.

    codecs-anchodebanda

    Esto es útil si conocemos el códec que utiliza nuestra aplicación, es decir, si utilizamos un softphone que hemos configurado para que utilice G.729 (cuyo audio ocupa 8kb/seg) añadiéndole las cabeceras , ese tráfico consumirá 31,2kb/seg por sentido de la comunicación (31kb/seg de subida y 31kb/seg de bajada).

    No obstante, según el códec este tráfico no es algo constante si no que varia ligeramente (± 10kb/seg) en función del tipo de sonido que tenga que codificar. El famoso «ruido blanco» es la señal que más ancho de banda consume al codificar (tanto procesador como en ancho de banda).

    Hace poco, con la aparición de las llamadas de voz vía Whatsapp, mucha gente se preguntaba el ancho de banda que era necesario para hacer llamadas. Whatsapp utiliza el códec Opus, un códec increiblemente interesante que ajusta la calidad al ancho de banda disponible, de manera que, cuanto más ancho de banda dispongamos mejor calidad de audio, y cuanto menos ancho de banda, peor calidad, de ahí que no podamos saber exactamente el ancho de banda que utilizaremos para hacer llamadas por Whatsapp.

    (más…)

  • Cómo generar una contraseña segura

    Cómo generar una contraseña segura

    500-most-used-passwords-show-as-a-tag-cloudUno de los grandes problemas que nos encontramos al conectar un sistema a la red (Internet) es sin duda, los distintos ataques a los que tenemos que hacer frente. Por desgracia, no hay una persona como tal jugando con direcciones IP buscando a alguien a quien atacar, eso hoy día ha sido delegado a un ejército de sistemas «zombies» repartidos por todo el globo de forma que los ataques sean distribuidos, automatizados, rápidos y efectivos.

    El momento de generar una contraseña se suele tomar a la ligera y es algo bastante importante plantear:

    Primero, necesitamos una contraseña que sea fácil de recordar para poder escribirla siempre que nos la pidan.

    Por otro lado, la contraseña debe ser difícil de obtener mediante fuerza bruta, (aunque el uso de GPU para desencriptar contraseñas, unido a algoritmos distribuidos en cientos de máquinas, puede reducir el tiempo para descifrar la contraseña en apenas unos minutos), de manera que cada vez hay más sitios que utilizan sistemas de autentificación en dos pasos o bien te exigen poner una contraseña con letras, números, simbolos, mayúsculas, y una longitud mínima de 15 caracteres.

    Existen sistemas mnemotécnicos para ayudarnos a recordar contraseñas fuertes, pero lo que mucha gente empieza a hacer es disponer de un archivo donde guardar todas las contraseñas fuertes que utilizan y hacer uso del «copy+paste» para evitar recordarlas. Hay otras personas que utilizan contraseñas aleatorias y hacen uso del «he olvidado la contraseña» para evitar recordar semejante cadena. Sea como fuere, el uso de contraseñas fuertes es algo obligatorio incluso para algo rápido y sencillo.

    En VoIP, vamos a ver que la cosa es mucho más sencilla…

    (más…)

  • Descárgate el libro sobre configuración del Elastix SIP Firewall

    Descárgate el libro sobre configuración del Elastix SIP Firewall

    sipfirewall-backJuan Olivajuan-oliva-2 acaba de presentar un libro que ha creado y donde explica cómo instalar y configurar el dispositivo Elastix SIP Firewall, un sistema que, configurado convenientemente, nos ayudará a proteger nuestro sistema de comunicaciones y del que ya hemos hablado en otras ocasiones.

    El libro ha sido publicado bajo licencia Creative Common y puede descargarlo de la web de Elastix.

  • Cómo instalar un servidor Exim en Debian con SPF y DKIM

    Cómo instalar un servidor Exim en Debian con SPF y DKIM

    exim-mta-smtp-serverEn muchas ocasiones nos encontramos que nuestro servidor necesita enviarnos un mensaje, una notificación, algo… y pese a que no soy muy amigo de que un servidor envíe un email para ese tipo de notificación, es cierto que es uno de los sistemas más socorridos y fáciles de configurar. No obstante, cada día que pasa, la posibilidad de recibir un mensaje como spam, o que pongan al servidor en una lista negra por enviar mensajes «no legales», aumenta proporcionalmente por cada mensaje que el sistema envía, hasta que llega un momento que dejamos de recibir emails, momento seguro en el que el mensaje es de suma importancia y jamás llegaremos a ver.

    Visto lo cual, hay dos posibilidades: o bien utilizamos una cuenta SMTP de un servidor externo, o bien configuramos un servidor con soporte SPF y DKIM para evitar que un servidor considere nuestros mensajes como que proceden de un servidor vulnerable y cueste más meterlo en una lista negra.

    Siempre he trabajado con Postfix y con Exim, pero visto que Debian instala por defecto Exim, vamos a crear este tutorial utilizando dicha herramienta.

    (más…)

  • Cómo hacer programas con Node.JS y Asterisk

    Cómo hacer programas con Node.JS y Asterisk

    PHP-vs-Node.jsSi hay algo que podemos decir con total rotundidad, es que Asterisk permite integrarse prácticamente cualquier aplicación gracias a los diversos interfaces que incluye desde sus primeras versiones: AGI, AMI y desde Asterisk 13, también con ARI. No obstante, no todos los avances se hacen desde el lado de Asterisk, también hay novedades en el lado de los lenguajes de programación: nuevos lenguajes, nuevas metodologías, nuevos paradigmas que permiten desarrollar soluciones mucho más eficientes, más rápidas y más fácilmente.

    Quizá puede sonar extraño, pero el 90% de las aplicaciones creadas para Asterisk están desarrolladas en PHP, quizá por su sencillez, quizá por que es uno de los lenguajes más utilizados, o bien por su extensa documentación. No obstante, existen muchos otros lenguajes mucho más orientados a crear aplicaciones de comunicaciones, tiempo real, multi-hebra, etc… que PHP.

    Una de estas novedades (que ya tiene casi 6 años) es Node.js, un sistema que nos permite desarrollar aplicaciones (generalmente orientadas a comunicaciones) de una forma rápida y fácil. Lo curioso es que utilizamos un lenguaje bastante conocido como Javascript, para crear aplicaciones que se ejecutan «en el lado del servidor» en lugar de «en el lado del cliente«, pero que las aplicaciones resultantes son bastante sencillas y resultonas.

    (más…)