viernes, 25 de diciembre de 2009
Disponible Asterisk Unit Test Framework
Feature Overview:
- Define Unit Tests anywhere in the code using the AST_TEST_DEFINE macro
- Register Unit Tests to a central test manager using AST_TEST_REGISTER macro
- Unregister Unit Tests from the test manager using AST_TEST_UNREGISTER macro
- Execute test from CLI
- Generate xml and txt test result reports from CLI
New CLI Commands
-'test execute all'
-'test execute category'
-'test generate results xml'
-'test generate results txt'
-'test show results all'
-'test show results failed'
-'test show results passed'
-'test show registered'
Enabling TEST_FRAMEWORK
- Configure Asterisk using dev mode, './configure ?enable-dev-mode'
- In 'make menuselect' under the 'Compiler Flags' option enable the 'TEST_FRAMEWORK' flag.
- Recompile Asterisk and the test CLI options will be made available.
Lo probaré y luego les diré que tal, espero que les guste suena muy interesante por lo menos para sistemas de prueba. Feliz NAVIDAD a todos
lunes, 21 de diciembre de 2009
Compilar kernel para Asterisk + Instalacion en Debian Lenny
PASOS DE INSTALACION
Instalar librerias base
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
Descargar kernel de linux
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.8.tar.gz
tar xfv linux-2.6.26.8.tar.gz
ln –s /usr/src/linux-2.6.26.8 /usr/src/linux
Compilar kernel
make clean && make mrproper
"make mrproper se usar para limpiar los fuentes del kernel"
cp /boot/config-`uname -r` ./.config
make menuconfig
Ahora en la configuración del kernel seleccionamos:
Processor type and features >> [*]IRQ balancing ---> opcion importante para el balanceo de IRQ's de tarjetas digium
Processor type and features >> Timer frequency = 1000 Hz --> por default viene lo minimo 100 Hz
Processor type and features >> [*]High Resolution Timer Option
Processor type and features >> [*]HPET Timer Support
Device Drivers >> Character Devices >> [*]Enchanced Real Time Clock Support
Library Routines >> [*]CONFIG_CRC_CCITT
Terminada la configuración del kernel lo compilaremos. Debido a que lo estamos haciendo a la Debian way es necesario que tengamos instalado un paquete llamado kernel-package, el cual suministrará las herramientas necesarias para poder compilar y generar el paquete con nuestro kernel, para instalarla: aptitude install kernel-package. Antes de comenzar la compilación debemos estar en el directorio donde se encuentra el código fuente del kernel y luego ejecutar lo siguiente:
“PRIMERO se necesitará hacer un "make-kpkg clean" si desea recompilar el kernel usando la opción de revisión”
make-kpkg clean
Es importante realizar un cambio primero en la configuración de la imagen antes de realizar los .deb del kernel, sino nos dará un error al crear los paquetes, seguimos los siguientes pasos:
cd /usr/src/linux
vim Documentation/lguest/Makefile
Cambiamos:
all: lguest
Por:
all:
Sino lo hacen así les tirará un error como:
make[1]: Leaving directory `/usr/src/linux-2.6.31.6'
/usr/bin/make EXTRAVERSION=.6-ast01-lw ARCH=i386 \
-C Documentation/lguest
make[1]: Entering directory `/usr/src/linux-2.6.31.6/Documentation/lguest'
cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest
lguest.c:21:25: error: sys/eventfd.h: No such file or directory
lguest.c:37:18: error: zlib.h: No such file or directory
lguest.c: In function 'create_thread':
lguest.c:1021: warning: implicit declaration of function 'eventfd'
make[1]: *** [lguest] Error 1
make[1]: Leaving directory `/usr/src/linux-2.6.31.6/Documentation/lguest'
make: *** [debian/stamp/build/kernel] Error 2
make-kpkg --initrd kernel_image kernel_headers
Los que hayan compilado un kernel de Linux este comando equivale a: make dep, make clean, make bzImage y make modules
La opción --initrd crea una imagen initrd en el paquete que se guardará en /boot cuando instalemos el kernel (recordar que solo estamos compilando y empaquetando, no instalando).
El comando anterior creará dos paquetes con extensión .deb en el directorio superior. Un paquete será el kernel y el otro los kernel-headers.
Instalación de paquetes generados:
dpkg -i *.deb
Y reiniciamos el servidor, veremos la nueva versión de imagen :D
Instalación de Asterisk
Instalación de dependencias:
cd /usr/src/
aptitude install linux-headers-`uname -r` bison ncurses-dev libssl-dev zlib1g-dev initrd-tools cvs procps build-essential libnewt-dev libusb-dev libmysqlclient15-dev make sox libsox-fmt-gsm libsox-fmt-mp3 flex fail2ban subversion libiksemel-dev libcurl3-dev libvorbis-dev libspeex-dev flex xsltproc libxml2-dev bison g++ libncurses5-dev libnewt-dev libusb-dev subversion git-core
En esta ocasión voy a instalar un Asterisk estable que han tomado unos españoles se trata del
Asterisk-ES-rsp, en su página hallarán toda la información que necesiten saber acerca de este gran proyecto, entre sus ventajas es que ya trae por defecto muchos parches para usar octqe y usa por defecto oslec de manera maravillosa cabe recalcar :), porque usar esta versión de Asterisk mmm pues la ultima versión de dahdi y de asterisk la 1.4.27.1 me estaba reventando mucho, para tarjetas tdm me daba problemas de colgado al minuto casi siempre, en Digium me dijeron tienes que hace un tonezone para tu país y yo mmm, intente hacerlos pero no me sirvió, instale esta versión los problemas de eco se fueron, y la estabilidad volvió xD
En el siguiente link están todos los pasos de descarga, compilación e instalación de esta gran versión:
Para finalizar quiero dejar un parche que tuve que aplicar para un error al usar la opcion L(limit) en la aplicación dial, me daba un loop terrible
ERROR[5003]: channel.c:2043 __ast_read: ast_read() called with no recorded file descriptor
En https://issues.asterisk.org/view.php?id=14723 esta la solución, solo aplique el parche 14723_1-4-24.patch por si quieren probar wget 'https://issues.asterisk.org/file_download.php?file_id=22202&type=bug' -O - | patch -p0
y pues parece que se soluciono el problema porque ya no se me quedan pegadas las llamadas y no se genera ese mundo de log
miércoles, 2 de diciembre de 2009
Curriculas CISCO CCNP v5
Link de carpeta: IR
El password de acceso de la carpeta es: voipsystemscr
Info en la carpeta:
- Building Scalable Cisco Internetworks (BSCI)
- Building Cisco Multilayer Switched Networks (BCMSN)
- Implementing Secure Converged Wide Area Networks (ISCW)
- Optimizing Converged Cisco Networks (ONT)
- PDF's para practicas
Prueba Asterisk sin “ensuciar” tu sistema
Vamos a ver 2 maneras de hacerlo: instalando Asterisk en multiples lugares y utilizando live_ast.
Instalar Asterisk en distintos lugares
Si queremos tener un Asterisk 1.4 y un Asterisk 1.6 en el mismo sistema haremos lo siguiente para tener cada uno instalado en /opt por ejemplo:
cd asteriak14
./configure --prefix=/opt/asterisk14 --sysconfdir=/opt/asterisk14/etc --localstatedir=/opt/asterisk14}/var
make menuselect
make
make install
make samples
cd asteriak16
./configure --prefix=/opt/asterisk16 --sysconfdir=/opt/asterisk16/etc --localstatedir=/opt/asterisk16}/var
make menuselect
make
make install
make samples
En este ejemplo se asume que tenemos las fuentes de Asterisk 1.4 en un directorio llamado “asterisk14? y las de la 1.6 en “asterisk16?. De esta manera hemos conseguido tener dos versiones completamente aisladas en /opt. Las configuraciones estarán en /opt/asterisk14/etc y /opt/asterisk16/etc respectivamente.
Utilizar live_ast
Ésta es la que he descubierto hoy y me ha gustado live_ast es un script que Tzafir Cohen hizo en bash que nos permite ejecutar Asterisk en el mismo directorio en el que lo hemos descargado. Esta disponible en trunk y en Asterisk 1.6, pero también funciona con Asterisk 1.4. Veamos como funciona:
cd asterisk-1.6.2
cp contrib/scripts/live_ast .
./live_ast configure
./live_ast install
./live_ast samples
./live_ast run -vvvvvvvvvc
Lo que realiza el script es fijar las variables necesarias para que Asterisk quede completamente instalado en el subdirectorio “live”.