Una empresa con un gasto aproximado de 110 mil pesos mensuales esta queriendo bajar sus costos de operación en el rubro telefónico.
Después de analizar el caso, veo que tienen E1 de voz, un E1 de datos.
Cambiando su PBX Pasanosic TDA-200 Híbrido IP por un super GNU/Linux con Asterisk
La configuración de este Asterisk requirió una Tarjeta E1 Digium y una TDM400 con 3 puertos FXO y un FXS y 3 Telulares con lineas corporativas de Telcel, el puerto FXS seria usado para una maquina de FAX, pero ha quedado derogado después del articulo http://www.lastdragon.net/?p=396
La solución es administrar el trunk mas económico para la intención de la llamada.
Las llamadas locales, marcadas con 7 dígitos siguen saliendo por el E1 de voz, ya que estas llamadas tienen un costo de aproximadamente 2 pesos por evento, pero el tiempo de la llamada es ilimitado.
Si el que marca 04(4-5) sabemos que se trata de un celular, entonces la llamada es desviada y sacada por los telulares
La solución telular es aplicada por que las compañías en México de teléfonos, cobran un concepto por interconexión entre otras compañías, por ejemplo una celular.
Si se saca una llamada por una linea telefónica en este caso el E1 de voz, cobran 2 pesos de interconexión y aproximadamente 2.50 pesos por minuto de celular, luego entonces el primer minuto de celular cuesta 2 + 2.50 = 4.50 pesos, un celular con plan tarifario no tiene un costo de interconexión en su misma red, como telcel y ya que el 90% de las personas tienen un telcel en mexico suena probable que la llamada a celular sea entre telcel y esta solo costara siendo un plan tarifario aproximadamente un peso el minuto.
Como es una empresa grande, las llamadas internacionales son muchas, por lo que aquí se usa VOZIP que salen por el E1 de datos, para llamadas a USA, Europa y otros países con un costo aproximado de 0.017 centavos de dolar, menos de 20 centavos de peso mexicano el minuto, sin contar que si la llamada se hiciera desde una linea o un E1 de voz, habría igualmente un costo de interconexión mas el costo de la llamada internacional que seguro seria de mas de un peso el minuto.
El dia de hoy se hizo una prueba y se encontro que:
Tratando de resolver un problema, que por cierto aun no resuelvo, me encontré con una griete en el sistema de telefonía mexicano, que de hecho conocía muy bien en otros países, pero no pensé que México fuera vulnerable a la misma acción.
Evitare dar pistas de cómo lo hice, pues aunque en un principio parece algo inocente, con algo de malicia y una mente algo perversa se puede convertir en un arma muy poderosa, la información es poder, eso es definitivo.
Muchos de nosotros contamos con identificadores de llamada en casa, confiamos ciegamente en que nos proporcionaran el número de la persona que nos habla, creemos incluso que somos inmunes a esos niños que llaman para jugar bromas telefónicas, porque podemos ver en la pantalla confiable de nuestro identificador, el número del bromista.
La grieta en el sistema consiste en poder cambiar a voluntad el número que el identificador de llamadas debe mostrar, esto equivaldría a un spoofing, de hecho lo es, pero a voluntad es un arma peligrosa.
Podríamos cambiar a voluntad nuestro número, llamar a alguien e insultarle y cuando este vea su pantalla creerá que es el vecino.
Usos en la oficina, podría obligar a un alguien del departamento de pagos a contestar una llamada si este ve en su celular que es su jefe el que le habla y con software especializado, la voz de su jefe dándole una orden de pago inmediato por una cifra interesante a X persona.
Algo mas macabro, llamar a un doliente de un fallecido, con el numero del difunto, diciéndole que le llama del mundo de la muerte con un mensaje de Dios mismo, que debe ir y matar a alguien más, tan aterrado podría estar el que recibe una llamada así, (si se cree en esos mitos) que realmente ira matar a esa persona.
Y si llamara el presidente de la república a un secretario y le da una orden, con la viva voz del presidente emulada por una computadora, o un gobernador a un secretario de su estado, el comandante de algún municipio a otro subcomandante.
Con un poco de imaginación las forma de usar esta herramienta sobran y es por eso que no puedo publicar el cómo lo he hecho en México, seguramente otros Mexicanos ya han descubierto esta misma vulnerabilidad y por el mismo nivel de responsabilidad no han publicado nada, no seré el primero en hacerlo. Solo en probar que es posible, si es que he sido el primero en esto mismo.
Para probarlo, he realizado un video en el que recibo una llamada de “Los Pinos”, en México equivale a que te llamen de “La casa blanca” en estados unidos, podría estar llamando el mismo presidente en persona.
Telefono: (55) 50935300 www.presidencia.gob.mx
Y una segunda llamando de la secretaria de la defensa nacional, suerte que ya hice mi servicio militar. Teléfono 21228800 www.sedena.gob.mx
En algunas instalaciones esta incluido, en otras las tendran que
incluir. si se tratara de CentOS, con yum install ghostscript sharutils
se puede descargar de internet e instalarlo en el servidor de FAX.
GNU/Linux siempre ha tenido la capacidad de enviar y recibir FAX, antes
del Boom el Vozip y de Asterisk, esto para GNU/Linux es cosa simple y
tenemos 2 opciones para realizarlo.
Conseguir un FAX/MODEM antiguo, algunos ni los han de conocer, son esas
cajas viejas con luces que hacían ruidos en la linea telefónica, algunos
nos conectamos con eso a Internet a una súper velocidad de 14,400 kbps,
hasta un celular sin 3G en puro EDGE es 10 veces mas rápido que eso, en
fin.
Como sera difícil conseguir un FAX/Modem de hardware, usaremos el
IAXMODEM, que es básicamente un programa que se comportara como módem y
usara el protocolo IAX para conectarse al asterisk todo en software
El Iaxmodem.tar.gz debe descomprimirse y compilarse, ya que viene en
código fuente, finalmente hay que copiar el programa de iaxmodem de
forma manual a la carpeta /usr/bin, cp iaxmodem /usr/bin
Se una vez con el ejecutable de iaxmodem, habra que configurarlo para
que sepa a que servidor IAX se conectara, en este caso nuestro asterisk.
Se crea el directorio /etc/iaxmodem y luego se crea el archivo
/etc/iaxmodem/ttyIAX donde se pondran las configuraciones
device /dev/ttyIAX
port 45699
refresh 300
server localhost
peername xxx
secret yyy
cidname Fax
cidnumber xxx
codec alaw
El asterisk se prepara para recibir la conexión de un nuevo dispositivo
IAX, que en este caso sera el software que la hara de MODEM
Donde xxx es el usuario y extensión, donde yyy es la clave para esa
extensión.
Se puede automatizar el recibir FAX, pero esto es opcional, por ejemplo
cuando una maquina FAX llamada a nuestro Asterisk, ASterisk detectara
que es un FAX y lo reenviara inmediatamente a la extension de FAX sin
que la recepcionista tenga que mover un dedo
Dependiendo si usas Dahdi o Zapata, sabrás en que archivo debes colocar
esta linea
faxdetect=incoming
En tu extension.conf debes agregar la siguiente
exten => fax,1,Dial(IAX2/xxx)
Como explico, esto es opcional, si no lo agregas, simplemente la
recepcionista tendrá que transferir manualmente al a extensión de FAX
que de hecho es la forma común en prácticamente el 99% de las empresas.
Con esto Asterisk sabe que tiene un nuevo telefono IAX conectado.
Con lo anterior terminamos con Asterisk y su manejo de un FaxModem en
Software.
Lo siguiente, los que alguna vez ya enviaron y recibieron FAX lo deben
saber, por que esto ya no es nuevo.
Preparar Linux para manejar FAX y decirle cual es su FAX modem, solo que
en lugar de usar el FAX hardware físico, usara el IAXMODEM
Configurando el Hylafax
faxsetup
La mayoria de las preguntas que este programa hara se dejan en su
contenido default, salvo se quiera modificar alguna cosa.
Afinando la configuración en el archivo
/var/spool/hylafax/etc/FaxDispatch se le dice a HylaFAX a que correo
electrónico debe enviar los faxes recibidos
SENDTO=FaxMaster;
FILETYPE=pdf;
case “$DEVICE” in
ttyIAX) SENDTO=david@lastdragon.net;; # all faxes received on ttyS1
esac
Se puede afinar mas, pero con el FAxMaster y un solo correo electrónico
debería ser suficiente para la mayoria.
Finalmente hay que ligar la parte del sistema operativo que “piensa” que
tiene un FAX/MODEM de verdad con el Fax Virtual IAXMODEM.
Reiniciamos todos los programas HylaFax, recargamos asterisk y el init.
telinit q
service hylafax restart
asterisk -rx reload
O tal vez simplemente sea mas cómodo un simple shutdown -r now y esperar
a que se reinicie todo el equipo.
Si todo salio como se espera, al marcar la extensión asignada al
iaxmodem, este debe dar todo de FAX y si recibe un FAX, lo codificara a
PDF y adjuntara al correo proveeido /var/spool/hylafax/etc/FaxDispatch
Enviar FAX
Enviar FAX es de hecho ya un proceso muy simple a partir de este punto.
El hecho lo anterior, ya también se esta en posibilidad de enviar faxes,
con el programa sendfax
por ejemplo:
sendfax -n -d 5511236741 miarchivo.pdf
Ese comando va a mandar el contenido del archivo “miarchivo.pdf” al
numero 5511236741.
El comando resuelve de hecho el problema, pero no se le puede pedir a un
usuario común que entre a una sesión de shell a un entorno tipo Unix a
enviar un FAX, por lo que hay que hacer un frontend
Hay varios metodos.
Crear un buzón de correo electrónico donde el numero telefónico sea el
correo por ejemplo 5511236741@miservidordefax.com y que el pdf adjunto sea lo que
hay que enviar. El programa de esa forma construiría el comando sendfax
y lo enviaría.
Se lee fácil, todos sabemos enviar un correo electrónico y adjuntarle
archivos.
Otro método que es el que preferí, para mi gusto mas fácil de programar
ya que lo hice en exactamente 2:30 segundos.
Escribir una pagina WEB con 2 campos, un campo para el numero a marcar y
el otro para subir el archivo PDF, al darle submit o enviar, un script
en php se encargaría de construir y ejecutar el sendfax
Yo lo resolví con este segundo método y dejare el código de no mas de 10
lineas que resolvió el asunto de enviar un FAX. Esto sigue siendo fácil
para el usuario, una pagina WEB llenar campos y listo se envía el fax
Los viajes son en la juventud una parte de educacin y, en la vejez, una
parte de experiencia.
-- Francis Bacon. (1561-1626) Filsofo y estadista britnico.
Servidor Last Dragon
Procesador:
vendor_id : GenuineIntel
model name : Intel(R) Xeon(R) CPU
cache size : 4096 KB
OS: GNU/Linux
62 days, 21:00 Sin reinicio
Bytes disponibles FS Ext3
Produccion: 805769216, Base de datos 1208020992