Etiqueta: tutorial

  • Software Libre para Call Centers en tiempos de teletrabajo y recesión económica

    Software Libre para Call Centers en tiempos de teletrabajo y recesión económica

    El siguiente artículo está escrito por Fabian Pignataro

    Cada vez que el caos despliega sus alas sobre la aparente ordenada realidad que subyace los cimientos sobre los que se construyen los paradigmas que rigen las sociedades, el individualismo no fue precisamente la actitud que ayudó a la humanidad a salir adelante y ponerse nuevamente en marcha. Por el contrario, el accionar COMUNITARIO resultó el mejor aliado y motor de la superación en las diversas crisis que hemos atravesado.

    Como dicen en mi país, «cuando las papas queman», afloran dos actitudes posibles:

    (a) El «sálvese quien pueda», que ante el infortunio ajeno se concentra en el cuidado exclusivo del “propio ombligo” o bien olfatea un negocio lucrativo basado en la desesperación del prójimo.

    (b) El «cuidarnos como hermanos», que fomenta una actitud de COMUNIDAD que vela y apuesta por un accionar colaborativo que tiende inequívocamente al bienestar individual y colectivo simultáneo.

    Este artículo se enmarca dentro del ítem (b) desde una perspectiva de generación de software. Un grupo de profesionales IT, impregnados con esta clase de valores humanos, está impulsando una aplicación para Call & Contact Centers de Software Libre basada en la amigabilidad de las interfaces y facilidad de gestión desde un enfoque 100% Web & WebRTC que resulta especialmente ideal para estos tiempos de TRABAJO REMOTO.

    OMniLeads es una aplicación de software libre capaz de hacer funcionar un Call/Contact Center con operaciones Inbound & Outbound (Blended).

    Supervisión de usuarios WebRTC (channel spy, wishper entre otras funciones)

    Reportes de productividad

    Consola de Agente WebRTC

    La aplicación está disponible para su libre instalación y uso. De esta manera, todo aquel que desee montar un Call/Contact Center como servicio a la comunidad, o bien para afrontar la recesión económica disminuyendo costos al prescindir del pago de licencias, puede instalarla siguiendo los pasos desplegados a continuación.

    ¿Como lo instalo?

    Para ejecutar la aplicación es necesario contar con una instancia de GNU/Linux CentOS-7 Minimal. Podemos pautar una operación de 50 a 70 usuarios con un servidor de 8GB de RAM, CPU de las características de un Core-i7 y 100 GB de disco SSD o similar. No obstante, la aplicación puede escalar fácilmente hacia cientos de operadores simultáneos amplificando la potencia del servidor o bien acudir a un despliegue clusterizado (si la cosa es bien grande).

    Deployment

    El tipo de Deploy aquí expuesto es el más básico de todos y tiene que ver con descargar el repositorio sobre el host que hospedará la Aplicación para luego ejecutar un script bash que lanza un playbook Ansible.

    Pre-requisitos

    El host sobre el cual realizaremos la instalación debe contar con acceso a internet sin ningún tipo de restricción, con un hostname y dirección IP fija configurados.

    Se plantea la instalación más básica: Ansible Self-Hosted

    Luego de ingresar por SSH como root a nuestra instancia CentOS, se ejecutan algunos comandos previos al deploy:

    yum update -y
    yum install kernel-devel git -y
    reboot

    Después del reinicio del host, debemos traernos el repositorio de la aplicación:

    git clone https://gitlab.com/omnileads/ominicontacto.git

    Para luego posicionarse sobre el directorio “deploy/ansible” y allí configurar algunos pocos parámetros del sistema como la contraseña de acceso a la aplicación y otros.

    cd ominicontacto/deploy/ansible

    La configuración de dichos parámetros se hace en el archivo allí disponible inventory.

    Como se puede apreciar cada parámetro está explicado dentro del archivo en cuestión, sin embargo resaltamos aquí debajo (en negrita) los que deben ser alterados como requisito excluyente para el despliegue de la aplicación bajo este esquema Ansible Self-Hosted.

    #############################################################
    # If you are installing a prodenv (PE) AIO y bare-metal, change the IP and hostname here #
    ##########################################################
    [prodenv-aio]
    #localhost ansible_connection=local ansible_user=root #(this line is for self-hosted installation)
    #X.X.X.X ansible_ssh_port=22 ansible_user=root #(this line is for node-host installation)
    
    #############################################################
    #                           Database                        #
    #                    SET POSTGRESQL PASSWORD                #
    #############################################################
    postgres_database=omnileads
    postgres_user=omnileads
    #postgres_password=my_very_strong_pass
    
    #############################################################
    #                           Web Admin                      #
    #            SET WEB ADMIN PASSWORD                        #
    #############################################################
    #admin_pass=my_very_strong_pass
    #######################################
    # AMI for wombat dialer and OMniLeads #
    #######################################
    ami_user=omnileadsami 
    ami_password=5_MeO_DMT
    
    
    #####################################################
    # Wombat dialer credentials and MYSQL root password #
    #####################################################
    dialer_user=demoadmin
    dialer_password=demo
    
    #mysql_root_password=my_very_strong_pass
    ###########################################################################
    # Set the timezone where the nodes are. UNCOMMENT and set this if you are doing a fresh install #
    ##################################################################################
    
    #TZ=America/Argentina/Cordoba
    

    Sobre todas las líneas indicadas, se debe extirpar el carácter ‘#’ e introducir una contraseña personalizada para los parámetros del tipo password y la zona horaria de su país para el caso del parámetro TZ (Time Zone).

    Una vez listo el archivo de inventario, se procede con la ejecución del deploy:

    ./deploy.sh -i --iface=NIC_NAME

    dónde NIC_NAME es el nombre de la interfaz de red de la instancia CentOS que implementa la dirección IP que el sistema va a utilizar.

    Una vez finalizado el deploy, nos encontramos con una pantalla similar a la siguiente que nos indica que estamos listos para comenzar a configurar el sistema.

    Finalmente se procede con el reinicio del host y posterior acceso por web.

    Primer acceso al sistema & configuraciones

    Para acceder y comenzar la configuración del sistema ingresar vía https a la IP del host.

    Utilizando admin como usuario y la contraseña establecida en el archivo inventory (admin_pass).

    De ahora en más todo apunta a comenzar con algunas configuraciones iniciales para luego generar los Troncales SIP para tomar y enviar llamadas con la red telefónica pública y posteriormente poner en marcha vuestras campañas Inbound / Outbound.

    Algunos enlaces de interés:

    Sitio Oficial
    Documentación del proyecto
    Repositorio de software
    Foro de la comunidad

  • Cómo instalar un servidor VPN para teletrabajar en menos de 10 minutos

    Cómo instalar un servidor VPN para teletrabajar en menos de 10 minutos

    Hace tiempo que quería escribir un artículo como este, pero ahora que el Coronavirus está empezando a obligar a muchas empresas a buscar mecanismos para que la gente pueda seguir trabajando desde sus casas, creo que es un fantástico momento para explicar cómo montar un servidor VPN para unas pocas personas y que puedan acceder desde cualquier lugar a la red interna como si estuvieran físicamente ahí.

    Nota importante: Hay que aclarar que esto abre una puerta (aunque sea cifrada) a que las personas del exterior puedan acceder a la red interna de nuestra oficina, que desde Sinologic no nos hacemos responsables de ningún problema de seguridad que pueda ocurrir por culpa de este tutorial y que, aunque para poder acceder es necesario disponer de un certificado creado específicamente para cada sistema, no se recomienda esto para grandes oficinas, si no para pequeñas oficinas de no más de 5 empleados que necesiten trabajar en remoto de vez en cuando. Si quieres un sistema VPN serio instala en condiciones un servidor IPSEC o un OpenVPN en un servidor de verdad con una conexión en condiciones y aplicando las medidas de seguridad necesarias y contramedidas para evitar ataques.

    El objetivo es muy sencillo de entender. Consiste en montar un pequeño servidor VPN dentro de la red interna, utilizando una Raspberry PI como servidor y así evitamos que el coste de un servidor sea un impedimento a los presupuestos organizados de la empresa. Esa VPN hará que podamos conectarnos desde cualquier lugar de Internet al sistema Raspberry y una vez conectado, tener acceso a todos los dispositivos (ordenadores, impresoras, servidores, etc.) de la red interna, así como salir nuevamente por el router de la empresa (por lo que podremos acceder a los sistemas que tengamos filtrados por IP y que únicamente se puedan acceder desde nuestra conexión).

    Qué es necesario

    Necesitaremos:

    • Nuestra oficina deberá disponer de una conexión a Internet con ancho de banda suficiente y dirección IP fija que tendremos que configurar para poder conectarnos a ella cuando queramos acceder.
    • Acceso al router de la oficina para mapear el puerto del OpenVPN y poder acceder desde el exterior.
    • Una Raspberry PI 3 (aunque mejor 4 ya que tiene más potencia, una tarjeta de red Gigabit).
    • Una tarjeta microSD de, al menos 8Gb con la distribución Raspbian.

    Esquema mental de nuestra infraestructura ideal

    Es importante que, tanto la IP interna de la oficina (192.168.1.X) como la IP interna de nuestro lugar remoto (10.10.0.25), sean subredes diferentes, ya que si son iguales puede haber problemas de enrutado y nuestro ordenador no podrá distinguir qué es «local» y qué es «remoto».

    Una vez conectado a la VPN, nuestro ordenador tendrá una IP interna (10.10.0.25) y una IP VPN interna (10.8.0.4) pero tendrá acceso a los ordenadores y servidores de la red interna (192.168.1.X) porque la Raspberry hará de puente.

    Si estamos conectados y queremos acceder a una página web, lo haremos con la conexión de la oficina (el router introducirá nuestros paquetes, lo enviará a la Raspberry y volverá a salir por el router manteniendo la IP de la oficina).

    Instalación del sistema Raspbian

    En la Raspberry PI tendremos que instalar Raspbian, esto es algo básico y sencillo, así como configurarle una IP fija dentro de la red interna, por ejemplo: 192.168.1.248

    Para ello lo mejor es acceder al router y buscar la opción para asignar una IP fija a la dirección MAC de la raspberry PI. De esta manera, aunque la raspberry PI pida una nueva IP, el router siempre le dará la misma.

    Instalar OpenVPN en la Raspberry PI

    Una vez instalada la distribución Raspbian y configurada la IP interna fija en el router, usaremos PiVPN para instalar OpenVPN, por lo que ejecutaremos en la Raspberry PI el siguiente comando:

    curl -L https://install.pivpn.io | bash

    Este comando instalará OpenVPN y hará varias comprobaciones, además de:

    • Pedirnos confirmación de que tenemos una IP interna y fija.
    • El usuario de la raspberry PI que utilizaremos para ejecutar todos esos comandos (por defecto: ‘pi‘)
    • El puerto del router que utilizaremos para conectarnos desde el exterior. (Por defecto, el puerto de OpenVPN es el 1194/UDP aunque es recomendable poner cualquier otro entre 30000 y 60000).
    • También nos preguntará el nivel de cifrado que deseamos tener entre el ordenador remoto y el servidor
    • Los servidores DNS que queremos utilizar dentro de nuestra conexión.

    Una vez hecho esto, ya tendremos un servidor VPN corriendo en nuestra flamante Raspberry PI. Ahora tendremos que crear las «llaves» para que los usuarios puedan acceder al servidor VPN.

    Crear los certificados para los usuarios

    Para crear las llaves (o los certificados) tendremos que, con el usuario por defecto ‘pi’ ejecutar el siguiente comando:

    sudo pivpn add

    Con este comando generaremos en el directorio /home/pi/ovpns un archivo llave (certificado) ARCHIVO.ovpn con todos los parámetros y certificados necesarios de OpenVPN para que alguien pueda conectarse.

    Cada certificado solo puede ser utilizado por una conexión simultanea, por lo que si quieres poder conectarte desde varios sistemas, necesitarás generar dos certificados distintos.

    Todos los clientes, una vez conectados tendrán, por defecto, una dirección IP interna del rango: 10.8.0.X (diferente al del resto de la red interna) pero todos los usuarios conectados podrán verse entre sí.

    Mapear el puerto seleccionado en el router

    Ahora tenemos que acceder al router y mapear el puerto que hayamos configurado en la raspberry para el servidor OpenVPN, de manera que cuando alguien acceda a dicho puerto, se reenvíe a la Raspberry PI. (es necesario que el puerto del router y el que hemos configurado sean el mismo).

    Configurar el cliente

    Cliente para Windows

    Una vez tenemos el archivo certificado con extensión .ovpn, es el momento de instalar un cliente en nuestro sistema operativo y cargarle dicho certificado para que pueda conectarse.

    Para Windows, OpenVPN tiene su propia aplicación OpenVPN Connect que podéis instalar desde aquí: https://openvpn.net/client-connect-vpn-for-windows/

    Para Mac, yo recomiendo TunnelBlick. Se instala, se selecciona el archivo ARCHIVO.ovpn que se desea utilizar y listo!

    Para Linux, tan solo hay que instalar el paquete ‘openvpn’ y ejecutarlo tal que así:

    openvpn –config ARCHIVO.ovpn

    Extras importantes e interesantes

    • Si en lugar de utilizar el puerto 1194/UDP, utilizásemos uno del tipo 80/TCP, podríamos usar esta conexión en aquellas redes que sólo permiten navegar a una web (como algunos hoteles, convenciones, etc.). De esta manera, este sistema nos ayudará a saltar a la red interna y poder navegar con total seguridad aunque la red en la que estemos no permita otro tipo de accesos.
    • Es importante saber que los archivos generados con los certificados de clientes van asociados a la dirección IP y puerto externo a la que nos vamos a conectar, de manera que si la oficina cambia de dirección IP habría que rehacer los certificados o modificarlos manualmente con un editor (ya que es un archivo de texto plano)
    • Si utilizas VPN para cifrar la VoIP (UDP), si para la VPN usas un protocolo TCP, entonces estarás encapsulando todo el tráfico en paquetes TCP, por lo que en VoIP pueden aparecer micro-cortes en el audio en redes de baja y media calidad, además de que para evitar contagiar de Coronavirus, es mejor no hacer handshaking y seguir usando paquetes UDP siempre. 😉
    • Este sistema es el que utilizo para conectarme a la red interna de mi casa desde hace varios años, por lo que puedo garantizar que no sólo funciona estupendamente si no que además es una de las mejores formas de acceder remotamente a la red interna.
    • Hay muchísimas opciones dentro del servidor OpenVPN, pero desde este artículo intentamos explicar brevemente cómo configurarlo para una oficina pequeña y un comportamiento estándar útil que nos facilite el trabajo en remoto ahora que desde el gobierno se está recomendando a las empresas que opten por el teletrabajo para evitar contagios.

  • HTTPS explicado con palomas mensajeras

    HTTPS explicado con palomas mensajeras

    Hace unos días, leí un artículo tan interesante y fácil de entender que me propuse traducirlo para acercarlo al público español.
    El autor original es Andrea Zanin y lo publicó en inglés en el artículo HTTPS explained with carrier pigeons. Sin duda una explicación clara sencilla de entender para cualquiera.

    Espero que os guste.


    La Criptografía puede ser un término difícil de entender. Está llena de conceptos matemáticos pero salvo que estés desarrollando sistemas criptográficos, la mayor parte de esa complejidad no es necesaria para entender cómo funciona a un alto nivel.

    Si tu has abierto este artículo esperando poder crear el próximo protocolo HTTPS, lo siento, hay que decir que utilizar palomas no será suficiente, pero si no es el caso, prepara algo de café y disfruta del siguiente artículo.

    Alice, Bob y … palomas?

    Cualquier actividad que hagas en internet (leer este artículo, comprar cualquier cosa en Amazon, subir fotos de gatitos) se basa en enviar y recibir mensajes desde y hacia un servidor.

    Esto puede ser un poco abstracto así que vamos a imaginar que esos mensajes fuesen enviados por palomas mensajeras. Yo sé que esto puede parecer un poco extraño, pero confía en mí ya que HTTPS funciona de la misma manera, aunque un poco más rápido.

    También en lugar de hablar sobre servidores, clientes y hackers, vamos a hablar sobre AliceBob, y Mallory. Si esta no es la primera vez que intentas entender conceptos criptográficos, quizá reconozcas estos nombres, ya que son ampliamente utilizados en literatura técnica.

    Una inocente primera comunicación

    Si Alice quiere enviar un mensaje a Bob, acopla el mensaje a una pata de una paloma mensajera y se la envía a Bob. Bob recibe el mensaje, lo lee y todo está bien.

    Pero qué ocurriría si Mallory intercepta la paloma de Alice durante el vuelo y cambia el mensaje? Bob no tendría manera de saber que el mensaje enviado por Alice fue modificado.

    Así es como funciona HTTP. Asusta ¿verdad?. Yo no mandaría mi usuario y contraseña bancaria sobre HTTP.

    Un código secreto.

    Ahora que Alice y Bob son más temerosos, se han puesto de acuerdo en escribir un mensaje utilizando un código secreto. Ellos escribirán la letra desplazándola 3 posiciones en el alfabeto. Por ejemplo D → A, E → B, F → C. El mensaje original «mensaje secreto» podría ser «jbkpxgc pbzobql».

    Ahora, si Mallory intercepta la paloma, no será capaz de cambiar este mensaje en algo con significado ni entenderá lo que dice, porque no conoce el código. Pero Bob puede simplemente utilizar el código al revés y descifrar el mensaje usando la técnica contraria: A → D, B → E, C → F, … El texto cifrado «jbkpxgc pbzobql» sería descifrado a «mensaje secreto».

    Bien!!!

    Esto es lo que se conoce como «clave simétrica» porque si tu sabes como cifrar un mensaje, también puedes descifrarlo.

    Este código es también conocido como «cifrado Cesar». En la vida real se utilizan códigos mucho más complejos, pero la idea principal es la misma.

    ¿Cómo se decide la clave?

    La criptografía por «clave simétrica» es muy segura si nadie más (además del emisor y el receptor) saben la clave que se fue usada. En el cifrado Cesar la clave es un desplazamiento de un número de letras por cada letra que queremos cifrar. En nuestro ejemplo, utilizamos un desplazamiento de 3, pero podríamos haber utilizado 4 o bien 12.

    El problema es si Alice y Bob no se han visto previamente antes de enviarse mensajes con la paloma, ellos no han tenido la oportunidad de establecer una clave de forma segura. Si ellos envía una clave en un mensaje, Mallory podría interceptar ese primer mensaje y descubrir la clave. Esto permitiría a Mallory leer y cambiar el mensaje antes de que Alice y Bob empiecen a cifrar sus mensajes.

    Esto es un ejemplo típico de ataque «Man in the Middle» y la única manera de evitarlo es cambiar la clave de cifrado de golpe

    Palomas llevando cajas

    Alice y bob tienen un sistema mejor. Cuando Bob quiera enviar un mensaje a Alice, se hará lo siguiente:

    • Bob envía una paloma a Alice sin ningún mensaje.
    • Alice envía de vuelta a Bob una paloma con una caja con un candado abierto pero conservando la llave de ese candado.
    • Bob pone el mensaje en la caja, cierra el candado y envía la caja a Alice.
    • Alice recibe la caja, la abre utilizando su llave y lee el mensaje.

    De esta manera, Mallory no puede cambiar el mensaje interceptando la paloma, porque no tiene la llave. El mismo proceso se utiliza cuando Alice quiera enviar un mensaje a Bob.

    Alice y Bob acaban de usar un sistema conocido como criptografía de clave asimétrica. Se llama asimétrica porque incluso si tu pudieras cifrar un mensaje (cerrar el candado) no podría descifrarlo (ya que no podrías abrir la caja con el candado).

    En términos técnicos, la caja se conoce como «clave pública» y la llave que la abre se conoce como «clave privada«.

    ¿Cómo puedo confiar en la caja?

    Si prestas atención, puedes haber notado que todavía existe un problema. Cuando Bob recibe esa primera caja abierta ¿puede estar seguro que viene de Alice y que Mallory no interceptó la paloma y cambió la caja por una que sí tuviera un candado con su llave?

    Alice decide que ella firmará la caja, de esta manera cuando Bob reciba la caja, comprobará la firma y sabrá si es Alice quien le envió la caja.

    Podrías estar pensando ¿cómo Bob podría identificar la firma de Alice en la primera caja? Buena pregunta. Alice y Bob también tuvieron este problema, así que ellos decidieron que, en lugar de que Alice firmara la caja lo hiciera Ted.

    ¿Conoces a Ted?

    Ted es una persona famosa, un chico honrado y de confianza. Ted firma todas las cajas y todos confían que únicamente firmará cajas de personas legítimas.

    Ted solo firmará una caja a nombre de Alice si quien le pide que la firme es Alice. Así que Mallory no puede hacer una caja de Alice firmada por Ted en su nombre, ya que Bob sabrá que la caja es falsa porque Ted sólo firma cajas para personas después de verificar su identidad.

    Ted en términos técnicos es lo que se conoce como Autoridad Certificadora (CA) y el navegador en el que tú estás leyendo este artículo viene en cajas con la firma de una Autoridad Certificadora conocida.

    Así cuando te conectes a una web por primera vez, tu confiarás en la caja porque confías en Ted y Ted te dice que la caja es legítima.

    Las cajas son pesadas

    Alice y Bob ahora tienen ahora un sistema para comunicarse de forma segura pero se han dado cuenta que cuando las palomas transportan cajas son mucho más lentas que cuando solo llevan el mensaje.

    Deciden que van a utilizar el método criptografía asimétrica únicamente para elegir la clave para cifrar el mensaje y después utilizarán criptografía simétrica (recuerdas el cifrado Cesar?).

    De esta manera se aprovecha lo mejor de ambos mundos. La seguridad de una criptografía asimétrica y la eficiencia de una criptografía simétrica.

    En el mundo real no hay palomas lentas, pero cifrar mensajes utilizando criptografía asimétrica es mucho más lento que con criptografía simétrica, así que solo usamos la asimétrica para intercambiar las claves de cifrado.

    Ahora tu sabes cómo funciona HTTPS y seguramente el café debería estar listo. Ve a bebértelo que te lo mereces! 😉

     

     

  • Cómo instalar Asterisk 13 como un profesional

    Cómo instalar Asterisk 13 como un profesional

    Desde que comencé con Sinologic, uno de los objetivos de esta página ha sido utilizarla como «bloc de notas» en la que publicar cosas interesantes que quiero tener «a mano» y de esa manera poder buscarla fácilmente. Por casualidades de la vida, uno de los artículos qué más he utilizado para este objetivo ha sido el que explicaba Cómo instalar Asterisk como lo haría un profesional, de una forma rápida, sencilla y completa, ya que generalmente es por donde empiezo para que personas que están aprendiendo instalen rápidamente su propio Asterisk y se pongan manos a la obra. Me he dado cuenta que la versión anterior estaba bastante desfasada, por lo que he optado por actualizarla para que sea más independiente de la versión. Quizá esta no sea la forma más rápida de instalar un Asterisk, pero casi con seguridad, es una de las más completas.

    Esta pequeña guía paso a paso ha sido probada en varios equipos y distribuciones, pero las versiones de los paquetes pueden cambiar de un día para otro y dejar de funcionar, por lo que si en algún punto ha fallado, da algún error, coméntanoslo por aquí para que corrijamos la guía y pueda seguir ayudando al mayor número de usuarios posible.

    1º.- Instalando todas las dependencias.

    Esta parte es muy importante, ya que en función de las dependencias que instalemos, podremos disponer de más o menos características en Asterisk, por lo que vamos a intentar (aunque tarde un poco más en compilar) aprovechar las herramientas que nos ofrece Asterisk para instalar una versión lo más completa posible.

    yum install git || apt-get install git aptitude

    Una vez instalada esta única herramienta, vamos a utilizarla para descargar el repositorio de Asterisk

    cd /usr/src
    git clone https://github.com/asterisk/asterisk asterisk
    cd asterisk

    Como queremos utilizar la versión LTS, indicaremos que únicamente utilizaremos la versión 13. (los pasos son idénticos en caso de querer otra versión, tan solo hay que indicar el branch –de los disponibles– que queremos utilizar):

    git checkout 13

    Y ahora por fin vamos a empezar a instalar los paquetes que nos abrirán las puertas a las funcionalidades de Asterisk:

    contrib/scripts/install_prereq install
    contrib/scripts/
    get_ilbc_source.sh
    contrib/scripts/
    get_mp3_source.sh

    2º.- Confirmando lo que queremos instalar.

    Lo primero es indicar que queremos tener la posibilidad de utilizar PJSIP. Si aún no has dado el salto, no te preocupes seguirás teniendo chan_sip, pero siempre viene bien tenerlo instalado para cuando quieras empezar a utilizarlo. La herramienta «configure» analiza todo el sistema en busca de librerías instaladas y, en base a eso crea una lista de «características» que pueden ser instaladas o no. También nos permite seleccionar algunas opciones como parámetros.

    ./configure –with-pjproject-bundled
    make menuselect

    Si quieres seleccionar cosas que, por defecto vienen desactivadas (como el codec_opus), entonces puedes ejecutar el siguiente comando y seleccionar las cosas que faltan. Si no, siempre puedes continuar al siguiente punto.

    3º.- Compilando.

    Como hemos instalado todas las dependencias y hemos seleccionado todas las opciones posibles tardará un poco más en compilar, lo que en un procesador Intel i5 puede llevarnos unos 6 minutos.
    Recuerda que la compilación tardará más o menos en función del procesador y de la memoria RAM disponible.

    make && make install

    Como vamos a querer partir con algo funcional, vamos a instalar los archivos de configuración por defecto.
    Nota importante: Si ya tienes archivos de configuración, no ejecutes este comando, ya que posiblemente renombrará los antiguos con la extensión .old.

    make samples

    Y un último comando para que instale los scripts de inicio en el sistema para que arranque cuando se reinicie el servidor:

    make config
    systemctl start asterisk
    systemctl status asterisk

    Y voilá! ya tenemos nuestro Asterisk funcionando…

    # asterisk -rvvvv
     Asterisk GIT-13-13.15.0-rc1-1415-gdfd0529, Copyright (C) 1999 - 2014, Digium, Inc. and others.
     Created by Mark Spencer <markster@digium.com>
     Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
     This is free software, with components licensed under the GNU General Public
     License version 2 and other licenses; you are welcome to redistribute it under
     certain conditions. Type 'core show license' for details.
     =========================================================================
     Connected to Asterisk GIT-13-13.15.0-rc1-1415-gdfd0529 currently running on server-testing (pid = 11994)
    
    

    ¿Y tú? ¿Ya instalas Asterisk como un profesional?

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

  • 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 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 configurar Asterisk como un profesional

    http://www.sinologic.net/

    Continuación de: Cómo instalar Asterisk como un profesional

    Si bien la explicación de cómo instalar Asterisk puede ser algo bastante sencilla, configurar Asterisk es bien diferente debido a que Asterisk no está pensado para un tipo determinado de persona con unas necesidades estándar, si no que es una herramienta que nos permite modificar su comportamiento totalmente para que actúe como deseamos: una centralita, un servidor SIP, un gateway, o un servidor de aplicaciones de voz (buzones de voz, salas de conferencia, etc…). Por lo tanto, en función de cómo configuremos Asterisk, se comportará como lo que queramos que haga, y por esta razón vamos a poner algunos ejemplos básicos que ayuden a entender cómo funcionan los archivos de configuración y qué debemos hacer para que nuestro Asterisk se comporte como queremos.

    Lo primero que debemos entender es que, el sitio donde se encuentran los archivos de configuración (el directorio /etc/asterisk/ ), aunque incluye decenas de archivos disponibles para ser configurados, realmente vamos a utilizar apenas 4 ó 5, suficientes para la mayor parte de las cosas que queramos que Asterisk haga. El resto de archivos son modificaciones particulares para casos muy concretos.

    (más…)

  • Cómo instalar Asterisk como un profesional

    http://www.sinologic.net/A principios de años comentamos que iniciaríamos una serie de artículos introductorios sobre Asterisk orientados principalmente a aquellas personas que quieren comenzar y que no saben por donde. Si bien existen libros que pueden seguir, en Sinologic vamos a crear algunos artículos que seguro que ayudarán a cualquiera a aprender cómo funciona Asterisk de una forma rápida, sencilla y eficaz.

    El primero de esta serie de artículos es «Cómo instalar Asterisk«, algo fundamental y que debemos aprender. Seguro que existen cientos de artículos donde se explican cómo instalar Asterisk, pero confío en que puedas ver algunas diferencias que pueden hacer de tu Asterisk algo mejor que el resto. 😉

    Para seguir esta lista de artículos, puedes ver el tag #ast101 con los que vamos a marcarlos, de forma que pueda ser fácilmente identificables y sirva para que cualquier visitante pueda aprender a instalar y configurar Asterisk en condiciones.

    Antes de empezar, vamos a plantear dos posibles escenarios: Centos o Debian. Ambos sistemas disponen de Asterisk en modo «paquete binario», por lo que si vemos que se nos complica la instalación, siempre podemos instalarlo mediante yumapt-get y tendremos un Asterisk listo para funcionar, aunque no tan «pro» como este que vamos a instalar ahora.

    (más…)

  • Cómo activar el SYSLOG para recibir mensajes remotos

    130130-N-HI414-003

    Seguro que todos conocéis una herramienta que viene por defecto en cualquier sistema basado en UN*X llamado syslog. Generalmente esta herramienta se suele utilizar para monitorizar cualquier evento que se produce en el servidor, permitiéndonos conocer si hay algún problema o si por el contrario, todo está funcionando perfectamente.

    No obstante, el servidor syslog sirve para recibir eventos, no solo del propio servidor si no de otros dispositivos conectados en red, lo que nos permitirá recibir los mensajes que nos envíe cualquier dispositivo que haya en la red (incluso en Internet). Syslog es una de las herramientas imprescindibles en todo sistema y como tal, debería ser un «must» en cualquier infraestructura de red seria que se precie.

    El ancho de banda que consume un mensaje de syslog suele depender de qué se envíe. Cada dispositivo puede permitirnos enviar por syslog únicamente los errores, los avisos, o prácticamente cualquier mensaje que pase por la memoria del dispositivo, por lo que hay que tener cuidado ya que habilitar un debug de un gateway de 4 primarios puede consumir bastante ancho de banda, ya que nos enviaría el protocolo SIP y el Q.931, así que es mejor utilizarlo para monitorizar errores y avisos y algo más preciso sólo cuando sea necesario. 🙂

    Vamos a comentar cómo habilitar el servidor syslog para permitir eventos de otros dispositivos.

    (más…)