Esta semana que pasó 5-8 de Octubre del 2010 se llevó en ESIME IPN Zacatenco el Congreso Nacional de Software Libre 2010, en la cuál tuve la fortuna de poder participar con 2 pláticas:
vTiger CRM & Asterisk: Dónde hablamos como un CRM puede ser de utilidad en una empresa para la relación con sus clientes, mejor atención, así como su integración con Asterisk para tener información del cliente que llama en la pantalla de nuestra computadora.
Fotografía Digital & Software Libre: Fué una plática dónde comparto mi gusto por la fotografía y como hago uso de herramientas libres para darle mayor realce a mis capturas fotográficas.
Hace tiempo instalé untangle como solución para proteger la red interna así como también para bloquear el acceso a todos los sitios web y solo habilitar unos cuántos sitios, aparte que también con untangle se pudo bloquear diversos protocolos y con ello cerrar el acceso a messenger, redes p2p, etc. Solo que semanas después hubo un apagón y me dañó la instalación de untangle, por lo que antes de reinstalar untangle decidí probar otra solución y para ello encontré diversas como smoothwall, ipcop, pfsense, etc., otra cuestión que también me animó a cambiarme de untangle es que las aplicaciones básicas como filtrado y bloqueo de puertos son libres, pero ya la parte de políticas y demás aplicaciones son con costo anual y por número de máquinas por lo que la solución se volvía impagable.
Al final del día me decidí por IPCop la cuál me resultó fácil de instalar y solo al principio me causó problemas la parte de la compatibilidad de las tarjetas pero quedo solucionado con tarjetas PC 10/100 3Com que tenía por ahí.
IPCop es un proyecto GNU/GPL. Se trata de un firewall basado en Linux que nos brinda una interesante gama de posibilidades a la hora de conectar una red local a Internet. La última versión es la 1.4.20. Su interfaz de usuario es completamente web (aunque permite también acceso por SSH puerto 222) y esta disponible en múltiples idiomas.
Requiere de un hardware dedicado y permite gestionar el acceso a Internet, la seguridad y la interacción de hasta cuatro redes distintas que, en la jerga del IPCop, se denominan GREEN, BLUE, ORANGE y RED. Las mismas tienen las siguientes características:
GREEN: Esta es la interfase de red de nuestra LAN o red de área local. Aquí es donde conectaremos todos nuestros equipos que necesiten mayor protección, como servidores que no tengan que tener presencia en Internet y puestos de trabajo. Los dispositivos que se encuentren conectados a esta interfase tendrán acceso irrestricto a las interfases RED, BLUE y ORANGE, o sea que podrán salir a Internet (y conectarse a los equipos que se encuentren en cualquiera de estas otras tres redes) por cualquier puerto, pero a su vez los equipos de la interfase RED (equipos en Internet) no pueden iniciar conexiones a ningún equipo que se encuentre en las interfases GREEN, BLUE y ORANGE. En otras palabras, estarán protegidos del exterior, en el sentido que no son accesibles desde Internet.
BLUE: Es la interfase que se asigna normalmente para conectar un access point de modo que se puedan conectar dispositivos inalámbricos. De todas maneras sirve para conectar
cualquier otra red que se necesite sea esta inalámbrica o no. Los dispositivos que se encuentren en esta red, no podrán iniciar una conexión a los dispositivos que se encuentren en la interfase GREEN, pero salvo esta excepción, contarán con el mismo nivel de acceso y protección que cuentan los dispositivos conectados a la interfase GREEN. No es necesario activar esta interfase en una instalación de IPCop si no se cuenta con más de una red, o no se va a utilizar un router inalámbrico(*).
ORANGE: Esta es la interfase que se utilizará para montar una DMZ o zona desmilitarizada. Principalmente se utiliza para montar servidores web, de correo, de ftp, etc. que deban tener presencia en Internet; o sea que sean accesibles desde Internet, pero que en el caso que se produzca alguna intrusión a algún equipo de esta red, eso no comprometa la seguridad de nuestra red interna (GREEN). Los equipos que formen parte de la red ORANGE no podrán iniciar conexiones a ninguno de los dispositivos que se encuentren en las interfases GREEN y BLUE. No es necesario activar esta interfase en una instalación de IPCop si no se piensa utilizar una DMZ.
RED: Es la interfase de red que nos conectará directamente a nuestro proveedor de Internet. Puede ser una conexión ADSL, cablemodem, una línea dedicada o hasta inclusive un modem telefónico común. Obviamente que por razones de ancho de banda esta última opción es desaconsejable, pero es perfectamente factible tenerla configurada para una contingencia en la cual nuestro proveedor de Internet tenga inconvenientes para brindarnos nuestro vínculo habitual, pero si este operativo el acceso dialup. Cualquier instalación de IPCop contará con esta interfase habilitada. (Soporta tanto dispositivos ethernet como US Como aclaración cabe destacar que los equipos que están en la misma red, ya sea esta GREEN, BLUE u ORANGE, tienen la posiañlbilidad de iniciar conexiones entre ellos.
(*) En el caso de contar con un router wifi, si bien es conveniente, no es obligatorio que este conectado a la interfase blue, ya que se podrá conectar sin problemas a la interfase GREEN.
Funcionalidades
IPCop brinda una amplia gama de funcionalidades que van más allá de las que ofrecen algunos firewalls comerciales. Sin pretender explicar cada una de ellas y solo a modo de numeración, tenemos:
Acceso seguro por SSL a la interfase d »» e administración web
DHCP cliente / servidor
DNS dinámico
Lista de hosts seteable desde la interfase web
HTTP / FTP proxy (squid)
IDS (snort) en todas las interfases
Log local o remoto
NTP cliente / servidor
servidor SSH (PSK o con password)
Traffic shaping (en la interfase RED)
“Statefull” Firewall
Módulos “nat helper” para h323, irc, mms, pptp, proto-gre, quake3
Port forwarding (redireccionamiento de puertos)
DMZ pin holes
Activar o desactivar ping en todas las interfases
VPN (IPSEC)
Gráficos de monitoreo de CPU, RAM, swap, HD, tráfico de RED, etc. Hardware Soportado
Las características generales en cuanto al hardware soportado son las siguientes:
Arquitecturas: i386 y Alpha (PPC y Sparc están planeadas para versiones futuras)
Memoria: de 12MB a 4GBDiscos: IDE, SCSI y SATA, soporta configuraciones con RAID. También soporta dispositivos flash.
Placas de red: ISA/PCI (las soportadas por el kernel de Linux 2.4)
CPU: Disponibilidad de kernel SMP para CPUs multicore
Nuestro Training ha Evolucionado, ahora incluye lo mejor de Asterisk PBX-IP, junto a los mejores Temas de Programación Avanzada.
Curso Edición Especial Intermedio-Avanzado
del 8 al 11 de Diciembre
¡4 días de Entrenamiento!
Éste es un curso intensivo de Asterisk que abarcará todo lo que necesitas aprender para entender, instalar, configurar, soportar y administrar una central telefónica IP con Asterisk, incluyendo su interacción con las tarjetas de telefonía, líneas telefónicas, proveedores de telefonía y teléfonos IP. Te daremos todo el conocimiento sobre la Tecnología IP con Asterisk y como sacarle el mayor provecho.
Además aprenderás las mejores formas de integrar Asterisk con Lenguajes de Programación y Bases de Datos, lo que te dará el potencial para crear Sistemas Telefónicos de alto desempeño y complejidad.
En el curso Intermedio-avanzado conocerás la forma de poder desarrollar Aplicaciones Avanzadas y sacar mayor provecho de tu Solución con Asterisk. Te enseñaremos las funciones claves que hacen de Asterisk la mejor solución de Telefonía de todos los tiempos.
!Oferta¡ Descuento 10% a Grupos de 3 o más personas
AsterBilling SL permite mostrar el costo de la llamada en las pantallas de los Teléfonos IP que soporten SIP Messages como el Atcom 530, esto en base al destino, tiempo y tarifa configurada en la administración del sistema.
Para poder habilitar esta característica es necesario primero instalar el software de Tarificación de AsterBilling SL
#Después de instalado el software de Tarificación, ir al directorio de instalación cd/var/www/tarificador #Editar el archivo extensions-voip.php sudo editor /var/www/tarificador/extensions-voip.php #Cambiar los siguientes valores por los datos del Asterisk Manager Interface definido en /etc/asterisk/manager.conf $amiHost = "localhost"; //servidor de AMI $amiUser = "cloudvoox"; //login AMI $amiSecret = "cloudvoox";//password AMI $amiContext = "from-internal";//contexto #También asignar los datos de acceso a la base de datos del Tarificador creados anteriormente $mysql_server = "localhost"; $mysql_user = "tarificador"; $mysql_secret = "tarificador"; $mysql_db = "tarificador"; #Ahora solo ejecutar el script
php -q/var/www/tarificador/extensions-voip.php #Para probarlo puede usar un Teléfono IP Atcom 530 o un Atcom 620 el cuál tiene una Pantalla con BackLight. #Para que se ejecute el script al inicio del sistema ponerlo en /etc/init.d o gestionarlo a traves de /etc/crontab #Con esto ya podemos tener un visor en tiempo real del costo de la llamada que esté realizandose desde la cabina(Locutorio). Si se modifica en la administración las tarifas, automáticamente el sistema envía los costos configurados a las pantallas de los teléfonos IPs. La información del tiempo cambia cada vez que se completa el periodo de cargo de la tarifa.
Pongo este post para comentar y compartir un proyecto sobre un Tarificador Web basado en AsterBilling, el cuál he modificado para quitar la parte del pago de licencias por canal monitorerado de la versión original y ligar el tarificador con la base de datos MySQL del CDR de Asterisk, entre otras características que se le han añadido al Tarificador y la traducción al español de las interfaces de administración y operación..
TARIFICADOR para Asterisk "ASTERBILLING SL"
Historia
AsterBilling SL está basado completamente en AsterBilling (http://www.astercrm.org). La versión original de AsterBilling está incluída dentro del proyecto AsterCC que incluye un CRM y Tarificador para Asterisk.
AsterBilling originalmente se diseño para ser un tarificador para Asterisk en tiempo real, en este caso tiene una interfaz de administración y otra de configuración.
En la interfaz de administración se configuran las casetas, cabinas y las tarifas.
En la interfaz de Operación AsterBilling usa un mecanismo que no es OpenSource y se paga por licencias por canal para poder mostrar en tiempo real el costo de la llamada en el cajón de la cabina correspondiente de acuerdo a la configuración de las tarifas realizadas en la parte de administración.
Las interfaces Web de Administración y Operación original de AsterBilling están liberadas como Software Libre.
El motor de AsterCC es software cerrado, esta parte es la que monitorea las llamadas en Asterisk y provee a la interfaz de operación, información en tiempo real del tiempo y costo de la llamada en curso, AsterCC se cobra por el número de canales a monitorear.
¿Porqué se derivó un proyecto a partir de AsterBilling ?
Las 2 principales razones son:
*AsterBilling requiere un pago de licencias por el número de canales a monitorear.
*Algunas ocasiones AsterBilling no tarificaba el tiempo correcto (billsec) de las llamadas realizadas, esto ya que cortaba antes el conteo ó a veces paraba el conteo segundos después de que terminaba la llamada.
Otras razones:
Junto con un amigo del bachillerato (Bernardo Rodríguez Alamilla) planeamos poner un negocio de casetas telefónicas usando la plataforma de Asterisk para ruteo inteligente de llamadas, tarificación, impresión de tickets, facturación y visor en tiempo real de costo de llamadas en teléfonos IP ya que desistimos usar tarificadores chinos y argentinos.
Algunos otros aspectos por el que quitamos el motor AsterCC de AsterBilling es que consumía procesamiento de CPU adicional. No generaba e imprimía tickets ni los foliaba. Idiomas de las interfaces estaban solo en Chino e Ingles.
¿Que cambios realizamos en AsterBilling?
Se desligó la interfaz del operador del motor de AsterCC y se conectó con la base de datos de MySQL usando el CDR de Asterisk.
Se agregó impresión de Tickets usando impresoras de tickets conectadas a un puerto paralelo.
Por motivos fiscales se permite foliar los tickets.
Permite identificar si un número móvil es de Telcel, Movistar u otra compañía en base a una base de datos de la COFETEL y tarificar por compañía.
Ruteo de llamadas identificando a que compañía pertenece un número móvil.
Traducción al español de interfaz de Administración y Operación.
Se modificó el reporteador de CDR Stats para listas, filtrar y graficar llamadas, también para buscar llamadas cobradas y facturadas.
Se usan las pantallas de los teléfonos IP como Visores, para esto se creo un scripts que permite identificar que extensiones IP son tarificadas y enviarles en tiempo real el costo de la llamada en base al destino marcado y duración de la llamada.(Requiere teléfonos que soporten SIP MESSAGES).
Al realizar modificaciones de las tarifas en la administración del sistema, en automático muestra el cambio del costo de llamada en las pantallas de los teléfonos IP que estén llamando.Video Demo [ http://www.youtube.com/watch?v=hoWp4_hpFK4].
Como Mostrar Costo de Llamadas en tiempo real en las pantallas de Teléfonos IP que soporten SIP Messages (Ej. Atcom 530 )
Por ahora el proyecto aun no se sube a SourceForge.Net, pero por via de mientras enviame un correo a fileinleon ARROBA gmail DOT com para que a vuelta de correo te replique el proyecto completo con el manual de instalación y configuración.
#Requerimientos para instalación de AsterBilling SL sobre Ubuntu 8.04 Server #Paquetes requeridos para la instalación a traves de código fuente en Ubuntu Server de Asterisk + Zaptel o DAHDI + OSLEC + SPANDSP + FreePBX + AsterBilling sudoapt-getinstall--yes openssh-server ssh openssl && sudoapt-getinstall--yes openssl libssl-dev ssh&& sudoapt-getinstall--yesgccmakeg++patchautoconfautomake&& sudoapt-getinstall--yes linux-headers-2.6.24-26-server linux-source-2.6.24 linux-image-2.6.24-26-server && sudoapt-getinstall--yesnmaplynxunzip&& sudoapt-getinstall--yes festival festival-dev && sudoapt-getinstall--yes ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev && sudoapt-getinstall--yes zlib1g zlib1g-dev && sudoapt-getinstall--yesbison bison-doc libxml2 libxml2-dev libtiff4 libtiff4-dev && sudoapt-getinstall--yes libasound2 libgsm1 libltdl3 libpq5 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev mpg123 libmad0 libmad0-dev libsox-fmt-*&& sudoapt-getinstall--yes libgnokii3 libgnokii3-dev gnokii gnokii-smsd && sudoapt-getinstall--yesflex&& sudoapt-getinstall--yes openvpn unzip&& sudoapt-getinstall--yes subversion curl doxygen && sudoapt-getinstall--yes libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl && sudoapt-getinstall--yes apache2 && sudoapt-getinstall--yes php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db && sudoapt-getinstall--yes mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev #Algunos paquetes de php-pear requeridos cd/usr/src/freepbx-*/ sudo pear install db sudo pear install mdb2 #Crear el usuario Asterisk sudo groupadd asterisk sudo useradd -c"Asterisk PBX"-d/var/lib/asterisk -g asterisk asterisk sudomkdir-p/var/run/asterisk sudochown asterisk:asterisk /var/run/asterisk #Asignar al usuario y grupo asterisk al usuario y grupo de Apache sudo editor /etc/apache2/envvars
user asterisk
group asterisk #Algunos parámetros requeridos en el php.ini sudo editor /etc/php5/apache2/php.ini
default_charset = "utf8"
magic_quotes_gpc = off
upload_max_filesize = 32M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M #Despues de compilar Asterisk, Zaptel o DAHDI no olvidar compilar Asterisk-Addons con soporte de UNIQUEID cd/usr/src/asterisk/asterisk-addons-1.4.* sudo editor cdr/cdr_addon_mysql.c #agregar al principio la siguiente línea tal como está #define MYSQL_LOGUNIQUEID sudo editor cdr/Makefile #agregar al final la siguiente línea tal como está
CFLAGS+=-DMYSQL_LOGUNIQUEID sudo ./configure && sudomake&&sudomakeinstall&& sudomake samples #Editar los parámetros de mysql para que el CDR de Asterisk apunte a la base de datos del tarificador, ver más abajo la parte de configuración de la base de datos del tarificador sudo editor /etc/asterisk/cdr_mysql.conf hostname = localhost dbname=tarificador
password = tarificador
user = tarificador #Si están usando FreePBX editar los parámetros de amportal para que CDR Stats muestre el CDR del Tarificador sudo editor /etc/amportal.conf #Agregar o Editar las siguientes líneas si ya existen
#Aplicar los cambios en freepbx, hacer esto después de instalar la base del tarificador (mas abajo).
#reiniciar asterisk sudo amportal restart
#OBTENCION DEL PROYECTO #Aun no se sube el proyecto a SourceForge, enviame un correo a fileinleon ARROBA gmail DOT com para reenviarte el proyecto completo mkdir ~/asterisk cd ~/asterisk wget http://AUN_SIN_SERVIDOR/tarificador-1.1.tar
cd/var/www sudotar-xvf ~/asterisk/tarificador-1.1.tar cd tarificador
#Creamos la base de datos del tarificador, usuario y password
mysql -u root -p
create database tarificador;
grant all privileges on tarificador.* to tarificador@localhost identified by "tarificador";
flush privileges;
#pasamos el esquema de la BD al servidor de base de datos del tarificador
mysql -u tarificador -p tarificador < tarificador-1.1.sql #creamos el directorio donde colocaremos el archivo de los tickets generados para impresion sudomkdir/tickets sudochmod-R 0755 /tickets #Asignar el usuario del servidor Apache sudochown-R asterisk:asterisk /tickets #Editamos la configuración del sistema sudo editor asterbilling.conf.php #cambiar información de base de datos
dbtype = mysql
dbhost = localhost
dbname = tarificador
dbport = 3306
username = tarificador
password = tarificador #Si estamos usando FreePBX podemos modificar el reporteador para mostrar el canal de salida de la llamada, costo de la llamada y folio de facturación #buscar el archivo admin/cdr/call-log.php, en este caso usaré la ruta de mi servidor sudo editor /var/www/cloudvoox/admin/cdr/call-log.php #En la Linea 85 después de #/* --AMP Begin-- */ #if (!@include($amp_conf['ASTETCDIR'].'/call-log-table.php')) { # Quitar desde aquí todo hasta FG_COL_QUERY y poner lo siguente $FG_TABLE_COL[]=array ("Calldate", "calldate", "18%", "center", "SORT", "19"); $FG_TABLE_COL[]=array ("Channel", "channel", "13%", "center", "", "30", "", "", "", "", "", "display_acronym"); $FG_TABLE_COL[]=array ("Source", "src", "14%", "center", "", "30"); //$FG_TABLE_COL[]=array ("Clid", "clid", "26%", "center", "", "80",,,,,'','filter_html'); $FG_TABLE_COL[]=array ("Dst", "dst", "14%", "center", "SORT", "30"); $FG_TABLE_COL[]=array ("Troncal", "dstchannel", "13%", "center", "", "30", "", "", "", "", "", "display_acronym"); $FG_TABLE_COL[]=array ("Disposition", "disposition", "9%", "center", "", "30"); if((!isset($resulttype)) || ($resulttype=="min"))$minute_function= "display_minute"; $FG_TABLE_COL[]=array ("Duration", "duration", "6%", "center", "SORT", "30", "", "", "", "", "", "$minute_function"); $FG_TABLE_COL[]=array ("Precio", "price", "6%", "center", "SORT", "30", "", "", "", "", "", ""); $FG_TABLE_COL[]=array ("Folio", "folio", "6%", "center", "SORT", "30", "", "", "", "", "", ""); $FG_TABLE_DEFAULT_ORDER = "calldate"; $FG_TABLE_DEFAULT_SENS = "DESC"; // This Variable store the argument for the SQL query //$FG_COL_QUERY='calldate, channel, src, clid, lastapp, lastdata, dst, dst, serverid, disposition, duration'; $FG_COL_QUERY='calldate, channel, src, dst, dstchannel, disposition, duration, price, folio '; #listo ya tenemos el tarificador instalado ahora solo entrar a la aplicación web del tarificador
http://IP_SERVIDOR_ASTERISK/tarificador
Modo Administrador
Login : admin
Password: admin
Configurar cabinas a tarificar, costo de destinos y login-passwords de acceso modo admin y operador.
Modo Operador
Login: ventas
Password: ventas
Presionando el botón refrescar muestra las llamadas que se han hecho de la cabina seleccionada y que aun no ha sido tarificada
Pulsando el botón recibo imprime el ticket y marca las llamadas realizadas de la cabina como cobradas
Pulsando el botón recibo imprime el ticket y marca las llamadas realizadas de la cabina como facturadas asignándole un folio
En años anteriores las primeras tarjetas Digium y sus clones como las chinas OpenVox tenían serios problemas con IRQs compartidos, los IRQs son interrupciones de hardware que permiten conectar un Dispositivo con el Procesador, el detalle es que a veces estas interrupciones eran compartidas entre hardware y eso provocaba ciertos problemas con eco, ruidos incómodos, desconexiones, fallas de hardware, entre otros problemas.
Debido a que un cliente tenía ya una tarjeta OpenVox D115 para conexión con una troncal E1, me salieron alguno de los problemas anteriores por lo que investigando pude encontrar información del porqué de los IRQ y como poder solucionarlos, más info en la siguiente liga:
Hace unos días configuré un servidor OpenVPN para un cliente, esto para que remotamente pudiera conectarse a diversos equipos de su empresa desde cualquier parte de internet vía una red privada virtual encriptada, para lo anterior instalé OpenVPN.
Todo funcionó sin problema hasta que una noche me llama comentándome que el servidor OpenVPN no funcionaba, por lo que me conecté desde mi Lap y si pude hacerlo, pero me comentó que había cambiado de servicio de internet a Cablevisión por lo que en un principio pensé que hubiera un firewall que por ahí bloqueara el acceso, así que le comenté que me enviara la info que mostraba en pantalla al intentar conectarse a la VPN.
El detalle que observé es que el Servidor OpenVPN en la configuración indicaba el cambio de DNS, pero por alguna razón CableVisión al hacer el cambio de DNS generaba una desconexión de internet, por lo que implemente quité esa opción del archivo de configuración del Servidor de OpenVPN y los comenté.
Hace unos días un cliente me llamó para reconfigurar su conmutador de Voz sobre IP, esto ya que anteriormente le habían instalado un Elastix con una tarjeta Digium TDM2400P con 16 puertos FXO. Este conmutador se lo habían instalado en el 2008 solo que desde un inicio presentó problemas con su conmutador ya que sus llamadas sonaban robotizadas, entrecortadas y con muy baja calidad, incluso en la misma red local.
Por lo que después de haberle dejado un demo por una semana, decidió cambiar su conmutador por nuestra solución de Conmutador IP CloudVoox SOHO. En esta migración se usó su tarjeta Digium TDM2400P.
El conmutador junto con la tarjeta lo levantamos con todas las configuraciones anteriores del cliente y con nuevos requerimientos, el detalle fué que derepente el conmutador tenía llamadas entrantes y luego, así como las llamadas salientes fallaban, en un principio pensé que era un problema con el cableado telefónico ya que un día antes lo habían cambiado, pero al revisar línea por línea no estaba ahí el problema. Lo que se hizo a continuación fué verificar que la tarjeta estuviera arriba, al igual que asterisk y los drivers de dahdi, pero todo bien. Al revisar los logs de Asterisk no había ninguna irregularidad, pero al revisar los logs de Linux en general vería por ahí un problema de IRQs entre los USB y la tarjeta digium, por lo que el kernel tiraba la tarjeta.
Para solucionar el problema se desactivaron los USB desde el BIOS del sistema, ya que estos no se ocuparían en el Conmutador de Voz sobre IP.
Generalmente el problema de IRQ son causado por alguno de los siguientes aspectos:
Tener un entorno gráfico instalado
IRQs compartidos
Ningún disco duro DMA o Discos Duros DMA demasiado Altos
Correr Terminales Seriales o Frame Buffers
Generalmente el problema de los IRQs se soluciona cambiando de PCI la tarjeta o desactivando el hardware que causa conflicto si no se está ocupando , aunque ahora Digium ya tiene nuevas tarjetas con Digium PCI Express que son mucho más recomendables que PCI Normal.
Nosotros preferimos Tarjetas Sangoma ya que evitan los problemas de IRQs, aparte que son muy estables y con garantía de por vida, su soporte muy bueno y la información encontrada bastante buena para su implementación con Asterisk.
Hace unos días un amigo me comentó que unos teléfonos Aastra 9112i que se compraron en el 2006 le estaban fallando, por lo que aprovechando que ando de vacaciones aquí en Oaxaca los revisé y vi que tenían un problema de firmware, por lo que bajé el firmware de la página de aastra y me disponía a instalárselos en estos Tels.
Pensé en un principio que podía enviarle el firmware vía http, pero estos teléfonos solo soportan el protocolo TFTP(Trivial FTP), solo que en mi lap no tenía un servidor TFTP, primero instalé el servidor tfptd-hpa pero a pesar de que la configuración es trivial no lo pude echar andar por lo que seguí buscando y buscando, de hecho ya estaba a punto de reiniciar con Windows y probar con Solar TFTP que es un servidor que usé hace varios años cuándo le actualizaba el firmware a terminales portátiles que venían con DOS, pero antes de desistir entré a sourceforge para ver que novedad me encontraba y pude coincidir con OpenTFTP
Básicamente es descargar el código fuente, descomprimirlo, compilarlo, editar el archivo de configuración y ejecutarlo, por lo que pongo rápidamente el proceso de instalación y configuración que usé para echarlo andar en Linux.
cd/usr/src #Obtenemos el código fuente sudowget http://downloads.sourceforge.net/project/tftp-server/tftp%20server%20multithreaded/opentftpmtV1.63.tar.gz?r=&ts=1293699246&use_mirror=cdnetworks-us-1 #descomprimimos el código fuente sudotar-xzvf opentftpmtV1.63.tar.gz #entramos al directorio cd opentftp/ #compilamos el código fuente g++ opentftpd.cpp -lpthread-oopentftpd #copiamos el archivo de configuración al directorio /etc sudocp opentftpd.ini /etc/ #editamos el archivo de configuración sudonano/etc/opentftpd.ini #ponemos la dirección IP de la interfaz del servidor dónde deseamos escuchar las peticiones TFTP, si no ponemos nada el servidor TFTP escuchará en todas las interfaces de red. [LISTEN-ON]
192.168.15.100 #Debemos crear el directorio previamente y asignarle permisos de lectura y escritura [HOME] /var/spool/tftpd #Ponemos None si no queremos que guarde logs el servidor TFTP, también está Errors o All [LOGGING]
None #Indicamos los clientes que podrán conectarse al servidor, si no indicamos nada entonces todos los clientes se podrán conectar. [ALLOWED-CLIENTS]
192.168.15.1-192.168.15.254
Podemos dejar los valores por default asignados debajo de [TFTP-OPTIONS] #Guardamos el archivo de configuración #Ejecutamos el servidor de OpenTFTP sudo ./opentftpd -v #Si todo salió bien podríamos ver algo como lo siguiente
TFTP Server MultiThreaded Version 1.62 Unix Built 1621
starting TFTP...
username: root alias/ is mapped to /var/spool/tftpd/
permitted clients: all
server port range: 30000-30010
max blksize: 65464
default blksize: 512
default timeout: 3 fileread allowed: Yes file create allowed: Yes file overwrite allowed: Yes
thread pool size: 95
listening on: 192.168.15.100:69
Accepting requests.. #Si por alguna razón ya hubiera otro servidor usando el puerto 69 del TFTP entonces podríamos observar un mensaje como el siguiente:
0.0.0.0 Port 69, bind failed, Address already in use
no listening interfaces available, stopping.. #Aquí solo sería revisar que servidores están en ejecución y detenerlos si asi fuera necesario para volver a ejecutar opentftp.
Con lo anterior ya podemos poner los archivos *.st del firmware de los teléfonos aastra en el directorio del servidor TFTP y descargarlos desde los teléfonos indicando la dirección IP del servidor así como el nombre del archivo a descargar.
Comentarios Recientes