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:
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:
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 naranjaparpadeante cuando el teléfono está «sonando».
¿Y tú? ¿Sigues sin configurar el BLF de tu teléfono?
A menudo invitamos a ciertas personas a que colaboren con Sinologic escribiendo sus artículos con el objeto de colaborar con la comunidad y ofrecer un punto de vista más fresco y diferente. En esta ocasion, Rosa Atienza nos cuenta en el siguiente artículo, cómo hacer una llamada telefónica, utilizando Asterisk y un GXV3500 cuando se activa una alarma.
Siempre hemos desarrollado soluciones para todas aquellas personas que necesitan de algo no muy habitual, es la ventaja de la VoIP, poder ofrecer soluciones a medida a las necesidades particulares y a las que, soluciones más grandes y más conocidas no llegan. Siempre hay que recordar que la ingeniería es el arte de «ingeniárselas» con lo que uno tiene para dar con una solución lo más sencilla posible.
En este caso un cliente necesitaba generar una llamada cuando se produjera una alarma (un pulsador, una puerta que se abre, una alarma de seguridad o de incendios, etc.). Para ello contaban con un aparato que genera un voltaje de 12V en el momento de la alarma, y de ahí teníamos que conseguir generar una llamada.
Para este problema seguro que hay cientos de soluciones, no obstante recordamos un caso similar de hace unos años que continúa funcionando perfectamente y que se resolvió utilizando un dispositivo bastante concreto, así que tocaba investigar como lo hicieron, y adaptarlo a las necesidades del cliente actual. Aquí os lo explico por si a alguno le interesa hacer algo parecido:
Asistir a eventos es sin duda un acto que está cada vez más de moda, la cantidad de eventos profesionales se ha multiplicado así como su calidad y la orientación que se le ha dado últimamente. De ser principalmente un lugar para socializar y presentar productos, ahora se utilizan charlas como reclamos y en los últimos eventos ya ni siquiera existen expositores, directamente el evento consiste en charlas, una tras otra o incluso varias en paralelo.
Los eventos son un lugar ideal para conocer personas con intereses similares, proveedores, clientes, nuevos productos que hacen lo que buscabas o aquello que ni siquiera sabías que necesitabas. Esta es una de las razones por la que la gente suele asistir y cuando terminan aparece lo que suelo llamar el efecto de «pizarra sucia«, un montón de nuevas ideas que has ido apuntando en tu cabeza a medida que has hablado con gente y que tienes muchas ganas de probar.
Por suerte (o por desgracia) los eventos empiezan a especializarse, ya no es un evento multitudinario de «tecnología» o «inventos» como en los años 70 u 80, si no que un evento está orientado a una temática muy concreta o incluso a una herramienta en particular con la que trabajan cientos o miles de personas. Por esta razón es muy interesante asistir únicamente a aquellos actos que realmente nos interese y agradecer el esfuerzo que hacen otros para poder grabar y transmitir lo que allí ocurre. Con ello perderemos este acto de «socializar» con otros profesionales, pero al menos nos quedaremos con las ideas principales que se presentan en las charlas.
Vamos a ver algunos eventos que me parecen interesantes a nivel técnico y dónde conseguir los videos de sus charlas de los últimos años.
Como viene siendo habitual cada año, Sinologic participa en el evento VoIP2DAY impartiendo una conferencia técnica, intentando que sea del agrado de todos los asistentes y de paso, promover ciertas técnicas, tecnologías y acercar ciertos conceptos que normalmente no están al alcance de todos, de una forma más pedagógica y amena en el tiempo disponible.
En esta ocasión, la conferencia que impartíamos era sobre Inteligencia Artificial y el Big Data, aprovechando que el mundo de la VoIP es un generador nato de información: Llamadas, parámetros de calidad, conversaciones, diálogos, números de destinos, seguridad, paquetes, y un gigantesco número de posibilidades se abren para ser estudiadas y aprovechar el impulso de nuevas técnicas que favorecen el uso de la inteligencia artificial para mejorar las tareas que realizamos en nuestro día a día.
A continuación, os mostramos el material utilizado durante la conferencia que, por problemas técnicos se quedó un poco en el aire. La razón era que el ordenador donde habíamos preparado algunos ejemplos prácticos no era compatible con la pantalla y, por esa razón, tuvimos que saltarnos las demostraciones que, entre nosotros, eran muy ilustrativas.
No obstante, en el material he publicado la parte interesante de dichas demostraciones, así como enlaces a los lugares donde podéis verlas más detenidamente.
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 Alice, Bob, 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! 😉
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:
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 -rvvvvAsterisk 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)
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.
Te dedique a lo que te dediques (y entendemos que si visitas habitualmente Sinologic.net es debido a que te sueles dedicar a alguna rama de la tecnología), te habrás dado cuenta que es muy interesante estar al día en cualquier materia que te interese, ya sea por los medios de comunicación, blogs, foros, chats o entre compañeros, muchos de los temas recurrentes son las últimas novedades en este o aquel campo, motivo por el cual nos permite estar al día (o lo más cerca) de lo último en este u otro campo. Si te gustan los móviles, seguramente estés suscrito o visites varias páginas donde se comenten las últimas novedades, rumores y noticias sobre los últimos móviles que van a salir, de la misma manera si te gusta la VoIP, seguramente estés suscrito a ciertas páginas webs, y sigas a determinadas personas y páginas en sus redes sociales para estar más o menos al día de lo que se mueve en este campo.
El mundo de las nuevas tecnologías (voy a llamar así a los campos y áreas de la Informática y las Telecomunicaciones), a diferencia de otras especialidades (como psicología, derecho, historia, etc.) no sigue una evolución lineal, si no exponencial. Por ejemplo, si bien en 1960 apenas existían 5 ó 6 lenguajes de programación, entre los nuevos lenguajes que han aparecido, y los diferentes «forks» que han ocurrido de los existentes, hoy día es difícil tener una lista medianamente actualizada de todos los lenguajes de programación que podríamos escoger de cara a desarrollar algo serio. El número de lenguajes crece de forma exponencial mientras hayan personas que los utilicen.
Infografía de los principales lenguajes de programación desde 1950 hasta 2004.
Esto hace que todos y cada uno de nosotros tenga la necesidad/obligación de aprender constantemente, aprender no solo lo que nos gusta, si no también de lo que trabajamos, de lo que hablamos, de lo que tocamos y de lo que somos expertos. No nos vale con «haber aprendido», tenemos que mantener el ritmo de aprendizaje mientras nuestro cerebro nos lo permita, y mantenerlo «ejercitado» dándole de comer conocimiento a medida que vamos «desterrando» aquella información que ya nos nos interese almacenar (a veces es más difícil olvidar que aprender). Hay que hacer este tipo de ejercicios porque uno o dos años apartado de cierta área significa el abandono completo y retomarla podría significar (en según qué áreas) empezar prácticamente de cero. De ahí la importancia de conocer algún método que te permita aprender un nuevo área en el menor tiempo posible para poder retomar «la cima de la ola».
Primer paso: El libro.
En cualquier carrera técnica como ingeniería, lo primero que hacen en cualquier asignatura es proveerte de una lista de libros de consulta. Esto es porque un libro te va a «amueblar» la cabeza para el nuevo concepto que quieras aprender. El libro no tiene porqué ser en papel, puede ser electrónico, pdf o como prefieras, lo importante es lo que transmite, no el medio. ¿Y por qué un libro?. El libro tiene varias características importantes:
Es lo suficientemente extenso como para albergar toda la información importante e imprescindible de ese tema.
Al ser un documento escrito, puedes tomarte todas las pausas necesarias para que tu cerebro procese esa información.
El lector puede consultar cualquier punto del libro en caso de que quiera «recordar» algo que se le esté olvidando.
Por esta razón, una de las primeras formas de aprender algo, es comprar un buen libro y leerlo, desde el principio, hasta el final.
Una vez hecho esto, el aprendiz tiene en su cabeza conceptos básicos. Si ha hecho ejercicios propuestos en el libro, además lo habrá practicado y habrá adquirido entre un 30 y un 50% de lo que haya puesto en práctica, de ahí que sea tan importante continuar con el aprendizaje porque en este momento tendremos una falsa sensación de que sabemos más de lo que realmente sabemos y, aunque estamos preparados para ponernos en marcha y trabajar sobre lo aprendido, tenemos que ser conscientes que aún nos falta un poco más para llegar al nivel que necesitamos.
Segundo paso: Seguir Tutoriales.
En este momento ya deberíamos empezar a plantearnos nuestro primer proyectos, cosas sencillas, cosas que podamos llegar a hacer y que asiente la información que hemos adquirido en el primer paso. A medida que empecemos a desarrollar dicho proyecto, nos daremos cuenta que nos falta información, que el proyecto parecía algo más sencillo en un principio pero necesitamos conocer cómo llegar a hacer ciertas cosas. Este es el momento de tomar dos posibles caminos:
Buscar tutoriales, blogs y páginas donde expliquen cómo hacer ciertas cosas desde un punto de vista de la experiencia que complementen lo que hemos aprendido del libro.
Apuntarnos a un curso que nos enseñe de primera mano y en un tiempo mínimo, toda la información que vamos a necesitar para llevar a cabo nuestro proyecto.
Ambos puntos no son excluyentes, seguramente la idea de asistir a un curso pueda ser un primer paso necesario e importante, pero eso no quita que tendrás que buscar información y tutoriales donde expliquen cómo hacer aquello que necesitas para llevar a cabo tu proyecto.
Considero un error sustituir el libro por el curso, ya que un curso suele servir para «acelerar» la formación, pero no para iniciarla. Fíjese en que he comentado que el libro sirve para «amueblar» la cabeza, y esto es un paso imprescindible para adquirir cualquier nueva información. El cerebro es un órgano muy complejo, del que conocemos muy poco, pero de lo poco que sabemos es que hace falta darle tiempo para poder aprender cosas nuevas.
Un tutorial suele ser un artículo de un blog, un PDF donde se explique cómo hacer algo. Un paso a paso donde se definan, no solo los pasos si no también el motivo de cada uno de ellos. Esa es la principal diferencia de un tutorial y un ejemplo. En el tutorial, si lo seguimos entero (desde principio hasta el final sin saltarnos ningún paso) llegaremos a un objetivo que es lo que veníamos buscando en un principio. Solo para aclarar, un comentario de StackOverflow no es un tutorial.
Tercer paso: Buscar Ejemplos
Una vez hayamos seguido varios tutoriales y hayamos empezado a avanzar en nuestro proyecto, nos daremos cuenta que para continuar, necesitamos ciertas respuestas a preguntas rápidas, es el momento de buscar ejemplos. Estos se encuentran en muchos sitios: Foros, Web de consulta (ahora si, StackOverflow, Github, …), salas de chat o incluso algún comentario de twitter o facebook. En este tercer paso, donde realmente se aprende es viendo el código de otras personas, asistiendo a conferencias y hablando con otros profesionales, aquí no únicamente vamos a responder nuestras dudas (que ya no serán dudas triviales) y además conseguiremos información de primera mano de personas que se han peleado en las mismas batallas en la que estás tú en este momento, además de conseguir una fuente super-valiosa de personas a las que le interesa lo mismo que a ti y que, en un momento dado, podrían ayudarte o trabajar contigo.
Cualquier código (por pequeño que sea), configuración o respuesta es un buen material que nos ayudará a perfilar el conocimiento adquirido y a prepararnos para la cima de la ola.
Cuarto paso: Mantenerse en la ola
Ya hemos visto que lo primero que hay que tener para empezar a aprender, es voluntad de aprender. El esfuerzo para aprender algo es importante, de ahí que debe ser algo que merezca la pena, ya sea porque te gusta, porque trabajes en eso, o bien porque lo necesites como camino para aprender algo, ya que hay ciertas áreas que requieren de conocimientos que hay que adquirir previamente.
Hay ciertas áreas que requieren de leer más libros, quizá menos tutoriales y más prácticas, o incluso hay campos en los que apenas vamos a poder encontrar tutoriales ni ejemplos y apenas unos pocos libros bastante introductorios, ese campo por lo general está poco desarrollado y «la cima de la ola» seguramente se encuentre más accesible.
Aunque parezca mucho esfuerzo (leer libros, buscar proyectos, seguir tutoriales, …) realmente no lo es si hemos seleccionado lo que queremos aprender con pasión, ya que con pasión, cualquier cuesta es menos pronunciada y además, con voluntad y ganas, incluso cualquier curva de aprendizaje, puede realmente ser un bello camino que recorrer, y es que lo bonito de aprender, no solo está en adquirir el conocimiento, si no disfrutar haciéndolo.
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.
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.