Cuántas veces hemos pensado eso de "Y pensar que el jefe hoy está de viaje y no va a ir a la oficina. Lo que daría por poder quedarme en casa y hacer mi trabajo desde allí". Con los recursos de conexión de los que disponemos en nuestros días, el teletrabajo es una opción excelente, pudiendo estar conectados por VPN a la oficina, sin importar si llueve o nieva ahí fuera.
Sin embargo, si queremos evitar sospechas por parte del jefe, y dejar constancia de que estamos en la oficina, una solución es hacerle una llamada, con cualquier excusa, desde el número de la oficina y así se quedará tranquilo.
Para esto, tenemos como opción utilizar alguno de los servicios que permiten
falsificar el número llamante o CallerID. Sin embargo, imaginemos que al jefe, justo al colgarle, se acuerda que olvidó decirnos algo y nos llama al número de la oficina. Habiendo falsificado el origen de la llamada, desde el sofá de casa, o enrroscados en la cama, nunca oirías esa llamada y el jefe te pillaría.
Para evitar esto (y para otras miles de funcionalidades), podemos hacer lo que hoy os planteo. Montar un dispositivo ATA que reenvíe la señal analógica, que llega por el cable RJ-11 del teléfono, de la oficina a una centralita con
Asterisk mediante
VoIP.
La idea es utilizar Asterisk como centralita y un soft-phone instalado en nuestro PC, que nos permita conectarnos a dicho Asterisk "como si estuviésemos en la oficina".
En el dibujo de abajo podéis ver la idea:
Ciertamente, tenía la espinita clavada, desde hacía tiempo, de no haberme sentado nunca a trastear con centralitas de VoIP. Hablando, entre cervezas, con Domingo, uno de mis mejores amigos, que montó hace unos años la empresa
Monema, que
ofrece servicios de telefonía en la nube para PYMES, me animó a ello y me orientó a cómo hacerlo desde casa con un equipamiento bastante económico.
Todos los manuales, foros y documentación en general que me he encontrado por Internet, sobre este tipo de proyecto basados en Asterisk, es bastante "difusa" (por decirlo finamente). Y como lo que he visto no me ha resultado muy claro, he decidido, una vez que ya se de qué va el tema, contarlo con el mejor de los detalles desde aquí.
El dispositivo ATA a utilizar es un
Cisco Linksys SPA3102. Este simpático cacharro cuenta con un conector FXO o POTS o, para que me entendáis, un conector de teléfono RJ-11 como el que enchufáis desde la roseta a un teléfono normal. Además cuenta con otro conector RJ-11 llamado FXS en el que se podría enchufar un teléfono convencional. Por otra parte, tiene dos conectores Ethernet RJ-45, que permiten separar dos redes, la que conecta a Internet de la que conecta a los dispositivos de telefonía IP. En mi caso, lo he configurado en modo bridge, de manera que ambos interfaces de red llevan a la misma red. Además he conectado el conector FXO a la roseta del teléfono. De esta manera, unimos el mundo del cable de teléfono con nuestra red, como si fuera un router ADSL, pero para hacer y contestar llamadas.
Lo siguiente que hemos de configurar es una centralita de telefonía IP con Asterisk. En el caso de poder engañar al jefe diciendo que estamos en la oficina, necesitaremos un acceso VPN ya establecido. Situaremos la centralita, o en la propia red de la oficina o en la de casa, pero el Linksys y el Asterisk tienen que tener conectividad. En este ejemplo vamos a suponer que tanto Linksys como Asterisk están en la misma red.
En el dispositivo Linksys SPA3102, configuramos lo siguiente:
En Voice -> PSTN Line:
- En Proxy and Registration -> Proxy, indicamos la dirección IP de la centralita VoIP, donde enviaremos las llamadas que nos lleguen por la línea de teléfono convencional.
- En Register decimos "YES", y en "Make Call without Reg" y "Ans call without reg" decimos "NO" -> Así hacemos que el Linksys tenga que registrarse en la centralita como dispositivo, antes de poder enviar o recibir llamadas.
- En Subscriber Information, configuramos UserID con el valor "SPA", en Password asignamos "LaPassSPA"
- En Dialplans, escribimos "(S0<:s>)" en el número 2.
- En "VoIP-To-PSTN Gateway Enable" decimos "yes"
- En "PSTN-To-VoIP Gateway Enable" y en "PSTN CID to VoIP CID" decimos "Yes". En "PSTN Caller Default DP" decimos el "2" -> Esto es el Dial Plan, que antes hemos personalizado para el número 2.
- En "FXO timer values", en "VoIP Answer Delay" ponemos "1" y en "PSTN Answer Delay" ponemos 10. Esto es, cuántos segundos queremos esperar en cada sentido. En el caso de PSTN answer Delay es, desde que empieza a sonar el teléfono, cuánto rato tarda el Linsys en "contestar" y enviarle las llamadas a la centralita. El VoIP answer delay es el tiempo de espera en el otro sentido.
En Voice -> Line1:
- En Proxy and Registration -> Proxy, indicamos la dirección IP de la centralita IP, donde enviaremos las llamadas que nos lleguen por la línea de teléfono convencional.
- En Register decimos "YES", y en Make Call without Reg y Ans call without reg decimos "NO" -> Así hacemos que el Linksys tenga que registrarse en la centralita como dispositivo antes de poder enviar o recibir llamadas.
- En Subscriber Information, configuramos UserID con el valor "SPA", en Password asignamos "LaPassSPA"
Con estos pasos tendremos el Linksys listo para enrrutar las llamadas entrantes y salientes entre Asterisk y la línea telefónica.
Para la instalación de Asterisk, he utilizado
AsteriskNOW, una distribución creada por Digium (los creadores de Asterisk) basada en CentOS Linux 5, que instala el software de la centralita, así como
FreePBX, una GUI web para su configuración, con aquello que necesitamos. La distribución es francamente sencilla de instalar, aunque si no conoces Asterisk, no es tan fácil de parametrizar. Así que os quiero contar los pasos que hay que hacer para que lo veáis más claro:
- En FreePBX, lo primero es crear una extensión para el usuario a conectarse (nosotros desde el sofá de casa). En Setup -> Basic -> Extension -> Generic SIP Device, y creamos una nueva extensión de tipo SIP. Importante indicar una contraseña con letras y números, en Host indicamos que es dynamic (que se puede conectar desde cualquier IP), y ponemos que es de tipo "peer" o "friend".
- En Setup -> Basic -> Trunks (o Líneas si lo tenemos en español) añadimos un nuevo Trunk. Seleccionamos que es de tipo SIP también. En reglas de marcación añadimos "XXXXXXXXX" -> 9 Xs seguidas que indican 9 dígitos del 0 al 9, para que acepte todas las llamadas con ese formato. En el campo nombre del Trunk indicamos "SPA" (que es lo mismo que pusimos en el Linksys para el valor UserID) y en detalles del Peer (o del par, en español) indicamos lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | disallow=all
allow=ulaw
canreinvite=no
context=from-trunk
dtmfmode=rfc2833
host=dynamic
incominglimit=1
nat=never
port=5061
qualify= yes
secret=LaPassSPA
permit=0.0.0.0 /0 .0.0.0
type =friend
username=SPA
faxdetect= yes
|
Ahora, añadimos la ruta saliente por defecto. Para ello en Setup-> Basic-> Outbound Routes, yo he editado la ruta que viene como 9_Outside y la he dejado como se puede ver en la imagen siguiente:
Así indicamos a Asterisk que cuando detecte un patrón "XXXXXXXXX" o "0|XXXXXXXXX" (es decir 9 dígitos del 0 al 9 o 0 + 9 dígitos del 0 al 9), quita el 0 del principio y le pasa la llamada al Trunk SPA que hemos definido. Es decir, le dice: Marca este número por tu interfaz RJ-11 telefónico.
Lo siguiente a crear es la
ruta entrante por defecto. Si queremos que según entra la llamada, nos suene en nuestra extensión, "estemos donde estemos" ;) tendremos que ir a Setup -> Basic -> Inbound Routes y crear una ruta nueva. Hay que indicar en Set Destination la extensión que hemos creado inicialmente.
IMPORTANTE: Esto son cambios hechos en los ficheros, pero no aplicados aún, por lo que hay que pinchar arriba en "Apply Configuration Changes" y podremos probar si funciona o no lo que hemos configurado.
Una vez configurada la centralita para recibir el tráfico entrante y permitir el saliente a través del Linksys, tendremos que comprobar si la SPA se "registra" correctamente en Asterisk. Pensad en que la SPA3102 es un dispositivo SIP más, que se conecta como si fuera una extensión, aunque sea un Trunk. Para ello, lo más cómodo y potente es hacerlo en modo UNIX-like, es decir, mediante una conexión SSH a AsteriskNOW. Ejecutamos "asterisk -vr" para obtener una conexión al servidor y, una vez dentro, con lo siguiente:
1 2 3 4 5 | LawAsterisk*CLI> sip show peers
Name /username Host Dyn Nat ACL Port Status
SPA /SPA 192.168.52.26 D A 5061 OK (10 ms)
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]
LawAsterisk*CLI>
|
Aquí vemos que el Trunk SPA se ha conectado correctamente.
El próximo paso es conectar el cliente soft-phone que queramos a la centralita Asterisk, para poder probar si todo va como corresponde. Sin embargo, recordad que tanto el Linksys como Asterisk están en la red de la oficina y nosotros en casa, por lo que tendremos dos opciones:
La MUY insegura, consistente en hacer NAT entrante de la red de la IP del router de la oficina de los puertos UDP 5060 y UDP 5061 hacia la IP interna de la centralita (
OJO, que podéis provocar un punto de entrada enorme para un desfalco en la factura telefónica de vuestra empresa. Imaginad por ejemplo una
fuerza bruta de extensiones/contraseñas registrándose en la centralita
para hacer llamadas gratis desde vuestra línea!); La forma segura, es no publicar hacia Internet este servicio, conectandónos inicialmente a la empresa vía VPN. Una vez "dentro" de la red interna de la oficina, ya podemos configurar el soft-phone con la IP de la centralita, el usuario SIP creado con su contraseña correspondiente y vemos que éste se registra correctamente en la centralita. Como soft-phone, he probado
Zoiper para Mac OSX en su versión libre.
Desde la propia consola de Asterisk, veremos que efectivamente ambos dispositivos están conectados a la centralita:
1 2 3 4 5 | LawAsterisk*CLI> sip show peers
Name /username Host Dyn Nat ACL Port Status
101 /101 192.168.52.215 D N A 5060 OK (102 ms)
SPA /SPA 192.168.52.26 D A 5061 OK (4 ms)
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]
|
A partir de ahora, a llamar a los clientes desde casa con el número de la oficina, y si el jefe llama al número fijo para saber si has ido a trabajar, podrás salvar el tipo!
Conclusiones
- El coste de mejorar nuestro bienestar, no yendo a trabajar a la oficina cuando el jefe no está, es de unos 60 dólares envío incluido a través de Ebay y unos 70 euros en tiendas online especializadas... En mi caso, gracias a que mi amigo Domingo disponía de un Linksys SPA3102, he podido configurarlo para trastear convenientemente.
- Evidentemente, que nadie se piense que esto es infalible para engañar al jefe. Es más la broma que he querido hacer en el post que otra cosa. Tened en cuenta que cuando Asterisk descuelga la llamada, el transferir a la extensión definida, genera un tono completamente diferente al habitual y, a no ser que el jefe sea muy despistado, os pillará ;D
- En mi caso, he montado este sistema para poder hablar desde casa a través de telefonía IP (de la que aún no tengo dispositivos), y para poder configurar un FAX por software con IAXMODEM, así como con el mejor servidor de FAX para mi gusto: Hylafax. De momento, los Faxes que yo envío llegan correctamente a su destino. Sin embargo, los fax entrantes, aunque la comunicación se establece correctamente, llega vacío. Tenía entendido que la VoIP y los FAXES no se llevan bien, aunque prometo pegarme con ello.
- En el ejemplo puesto en el post, no es necesario añadir ningún módulo más que lo que AsteriskNOW ya incorpora. Sin embargo, para un uso más profesional y con una mayor utilidad, os volveréis locos buscando opciones de configuración en FreePBX, si no instaláis los módulos opcionales correspondientes. Interesantes son: IVR, Ring groups, Time Conditions o Announcements, entre otras.
- A la hora de configurar Asterisk, de una forma más profesional, hay que cumplir una serie de "buenas prácticas" (que yo no he cumplido al 100%) para evitar, por ejemplo enumeración de usuarios, ataques de fuerza bruta o de diccionario, que puedan derivar, como decíamos anteriormente, en un problema serio en la factura del teléfono, o la suplantación de extensiones, entre otros posibles ataques. Pero eso, lectores, será en otro post!
Fuente;http://www.securitybydefault.com/2011/11/como-llamar-desde-casa-simulando-que.html