Vous êtes sur la page 1sur 28

Ing.

Carlos Acua Ramos


Centrales Telefonicas IP
basadas en Asterisk








Ing. Carlos Acua Ramos










CAPITULO 1

Introduccin





Asterisk


Qu es Asterisk?

Asterisk es una aplicacin de software libre (bajo licencia GPL) de una central telefnica (PBX).
Como cualquier PBX, se puede conectar un nmero determinado de telfonos para hacer llamadas
entre s e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto bsicos como primarios.



Mark Spencer, de Digium, inicialmente cre Asterisk y actualmente es su principal desarrollador,
junto con otros programadores que han contribuido a corregir errores y aadir novedades y
funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk
actualmente tambin se distribuye en versiones para los sistemas operativos BSD, MacOSX y otros,
aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todas.



Asterisk incluye muchas caractersticas anteriormente slo disponibles en sistemas costosos
propietarios PBX como buzn de voz, conferencias, IVR, distribucin automtica de llamadas, y otras
muchas ms. Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan en el
lenguaje de script de Asterisk o aadiendo mdulos escritos en lenguaje C o en cualquier otro lenguaje
de programacin soportado por Linux.



Para conectar telfonos estndar analgicos son necesarias tarjetas electrnicas telefnicas FXS o
FXO fabricadas por Digium u otros proveedores, ya que para conectar el servidor a una lnea externa
no basta con un simple mdem.



Quiz lo ms interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP,
H.323, IAX y MGCP. Asterisk puede interoperar con terminales IP actuando como un registrador y
como gateway entre ambos.



Lejos de poder competir con las compaas que comercializan soluciones de VoIP Hw/Sw de alta
calidad como Alcatel-Lucent, Cisco, Avaya Nortel, Asterisk se empieza a adoptar en algunos
entornos corporativos como solucin de bajo coste junto con SER (Sip Express Router).

Ing. Carlos Acua Ramos
Ing. Carlos Acua Ramos

Algunas caractersticas de Asterisk
Creacin de anexos IP (SIP).
Control, Monitoreo en tiempo real, CDR.
Acceso a base de datos (AstDB, MySQL para almacenar el CDR)
Interfaz Grfica.
Respuesta Interactiva de Voz (IVR)
Grabacin de conversaciones.
Correo de voz e-mail.


Diagramas (Topologa Arquitectura)




Figura N1





Figura N2



Figura N3


Figura N4


Figura N5




Ing. Carlos Acua Ramos
Ing. Carlos Acua Ramos

Protocolos y Codecs usados Telefona IP


Protocolos (SIP, IAX)



SIP (Session Initiation Protocol)

Session Initiation Protocol (SIP o Protocolo de Inicio de Sesiones) es un protocolo desarrollado por el
IETF MMUSIC Working Group con la intencin de ser el estndar para la iniciacin, modificacin y
finalizacin de sesiones interactivas de usuario donde intervienen elementos multimedia como el
video, voz, mensajera instantnea, juegos online y realidad virtual. En Noviembre del ao 2000, SIP
fue aceptado como el protocolo de sealizacin de 3GPP y elemento permanente de la arquitectura
IMS (IP Multimedia Subsystem). SIP es uno de los protocolos de sealizacin para voz sobre IP, otro
es H.323.




IAX2 (Inter-Asterisk eXchange protocol)

IAX (Inter-Asterisk eXchange protocol) es uno de los protocolos utilizado por Asterisk, un servidor
PBX (centralita telefnica) de cdigo abierto patrocinado por Digium. Es utilizado para manejar
conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que tambin utilizan
protocolo IAX.

El protocolo IAX ahora se refiere generalmente al IAX2, la segunda versin del protocolo IAX. El
protocolo original ha quedado obsoleto en favor de IAX2.

Codecs (G711, G729, GSM, IBLC)












Ing. Carlos Acua Ramos
Ing. Carlos Acua Ramos









Dispositivos VoIP


Telfonos IP








Softphone





Adaptadores (ATA)





Ing. Carlos Acua Ramos







Gateways (E1-SIP, GSM-SIP)









Hadware Digium



Ing. Carlos Acua Ramos

CAPITULO 2

Seleccin Hardware Servidor e
Instalacin S.O





Este captulo nos ayudara a preparar el sistema para la instalacin de Asterisk. Este funciona en
muchas plataformas y sistemas operativos, mas nosotros elegimos mantener las cosas simples y
permanecer en una nica plataforma y distribucin de Linux. Vamos usar la distribucin CentOS en
este curso. Las instrucciones realizadas en este curso pueden funcionar con otras distribuciones, pero
estas no han sido testeadas por nosotros.



Hardware Mnimo


Asterisk puede ser intensivo en el uso de procesador, pues usa el propio procesador del servidor (PC)
donde fue instalado para realizar el procesamiento de los canales de voz. Si usted estuviese
construyendo un sistema complejo con carga elevada es importante entender este concepto.



Para construir su primer PBX Asterisk un procesador compatible con Intel igual o superior a un
Pentium IV 800Mhz con 128 MB RAM es suficiente para un sistema de pruebas que soporte hasta 5
llamadas simultaneas y donde podamos explorar todas las funcionalidades de Asterisk, respecto al
sistema operativo podramos optar por una distribucin de Linux como Centos 5.8, con el objetivo de
nter comunicarnos con la red publica de telefonia (PSTN) necesitaremos de una tarjeta telefnica de
hasta 4 canales ZAP, preferente mente una TDM400P con 4 mdulos FXO correspondientes a 4
lineas analogas.



Asterisk no requiere mucho espacio en disco, cerca de 200 MB se calcula para el sistema calculado,
donde SI requerimos espacio es para el almacenamiento de mensajes de voz, llamadas grabadas, CDR
(Bases de datos).



Si usted usa nicamente VOIP, ningn otro hardware es necesario. Se puede usar softfones como los
de Counterpath (X-Lite) y realizar entroncamiento hacia proveedores de telefona IP.



Algunas aplicaciones de Asterisk como el Meetme requieren una fuente de clock para proveer la
temporizacin. Normalmente la fuente de clock de Asterisk es una placa TDM. Si su sistema no tiene
una placa TDM, usted puede usar un driver ztdummy que usa el USB como fuente de temporizacin.
Ing. Carlos Acua Ramos

Hardware Minimo-Mediano


Un servidor con un procesador Sempron o Celeron de 1 Ghz con 256 MB de RAM seria suficiente
para un sistema asterisk que podra soportar de 5 a 10 llamadas simultaneas con mximo dos tarjetas
de telefona de 4 canales analgicos cada uno y un S.O Linux kernel versin 2.6 (CentOS 5.8).



Hardware Mediano-Grande


Para un sistema mayor que logre soportar de 10 a 24 llamadas simultaneas lo ideal es un servidor con
procesador Pentium 4 o Athlon de 3 Ghz con 512 MB RAM y en ese una tarjeta de hasta 24 canales
como la Digium TDM2406B que posee 24 mdulos FXO para 24 lineas anlogas.



Hardware Mediano-Grande


Para un sistema que realice 30 llamadas simultaneas a mas lo mas recomendable es soportarse sobre
sistemas Xeon con opcin de segunda CPU adems de tarjetas Digium TE120P y hasta la TE410P o
similares (Tarjetas digitales capaces de soporta de 30 a 120 canales digitales de comunicacin). Para
arquitecturas superiores es necesario el uso de mltiples servidores y una arquitectura distribuida.

En definitiva la medicin del hardware a utilizar tiene directa relacin con la cantidad de llamadas
simultneas a realizar y la cantidad de canales ya sea anloga o digital a usar en nuestro servidor.



Montando su sistema


Elegir hardware necesario para Asterisk no es muy complicado. Usted no precisa de una tarjeta de
vdeo sofisticada o perifricos adicionales. Puertos seriales, paralelos y USB pueden ser
completamente deshabilitados desde la BIOS. Una buena tarjeta de red es esencial para nuestro
sistema. Si usted estuviese usando una de las tarjetas de telefona de Digium, seria bueno verificar las
instrucciones de su tarjeta madre para determinar si los Slots PCI soportan estas tarjetas de telefona.
Muchas tarjetas madres compartirn interrupciones (IRQ's) en slots PCI. Los conflictos de
interrupciones (IRQ's) son una fuente potencial de problemas de calidad de audio en Asterisk. Una
manera de liberar IRQs es deshabilitar desde el BIOS todo lo que no fuera necesario.
Ing. Carlos Acua Ramos

Escogiendo una distribucion de Linux.


Asterisk fue originalmente desarrollado para ejecutarse bajo plataformas con sistema operativo
Linux, Ahora puede ser usado en BSD y OS X. No obstante esto, las tarjetas telefonicas Digium
fueron diseadas para trabajar con Linux i386. Si usted fuese nuevo con Asterisk procure usar Linux.



Requisitos de Linux


Vrias distribuciones como RedHat, Mandrake, Fedora, Debian, Slackware y Gentoo fueron usadas
con Asterisk.


Diseo tabla de particionamiento tentativa para instalacin de Asterisk

Asterisk como sistema no requiere mucho espacio en disco, cerca de 200 MB se calcula para el
sistema compilado e instalado, donde SI requerimos espacio es para el almacenamiento de mensajes
de voz, llamadas grabadas, CDR (Bases de datos). Por lo tanto nuestra tabla de particionamiento
debera contar como mnimo con 4 particiones (Tomando como ejemplo un disco de 80 GB):


[root@asterisk ~]$ df -h
S.ficheros Tamao Usado Disp Uso% Montado en
/dev/sda1 100M 15M 85M 15% /boot
/dev/sda2
/dev/sda3
20G
55G
5G
10G
15G
45M
25% /
70% /var tmpfs

248M 0 248M 0% /dev/shm

En el proceso de instalacin se debe considerar una particin ms asignada para memoria de
intercambio SWAP, el tamao de esta deber ser el doble de la memoria RAM existente.
Ing. Carlos Acua Ramos

Eleccin paquetes y dependencias necesarias para compilacin de asterisk.

Antiguamente existan algunos paquetes que eran necesarios para instalar Asterisk como el readline y
readline-devel que no son necesarios hoy. No existe hardware especial tal como una placa de sonido y
el nico paquete necesario es el propio Asterisk. Si usted estuviera usando hardware de Digium o
ztdummy, usted va a precisar del paquete zaptel. El paquete zaptel es necesario para que algunas
aplicaciones sean includas en tiempo de compilacin. Si usted escoge compilar Asterisk y no el
zaptel, pero descubre que esta faltando una aplicacin relacionada al paquete zaptel (Como el
Meetme()), usted tendra que compilar el zaptel y entonces sera necesario recompilar Asterisk para
que la aplicacin sea includa. Para interfaces T1 y E1 el paquete libpri es necesario. Bison es
necesario para compilar el Asterisk. Los paquetes de desarrollo ncurses y ncurses-development son
necesarios si usted quisiera construir nuevas herramientas (Como el astman). Las bibliotecas zlib y
zlib-devel son necesarias ahora para compilar. Esto se debe a la adhesin del protocolo DUNDi
(Distributed Universal Number Discovery).



Los paquetes necesitados parael sistema operativo Linux CentOS sern:


Kernel sources y headers
gcc y sus dependencias
bison (necesario para los archivos de configuracion.
ncurses (necesario para la consola CLI)
openssl y openssl-dev o libssl-dev
libnewt (para aplicaciones tal como zttool)
lib y zlib-devel



La recomendacin es que durante el proceso de instalacin del sistema operativo se debern
seleccionar los siguientes paquetes:


Seccin Desarrollo:
* Herramientas de Desarrollo (TODO)
* Desarrollo de Software Anticuado (TODO)

Como herramientas adicionales tambin se podr instalar:
- Seccin Servidores:
* Servidor Web
* Servidor de Correo
* Servidor de Bases de Datos (MySQL y/o Postgres)
Ing. Carlos Acua Ramos

Asterisk -> asterisk-1.4.x.tar.gz
Zaptel -> zaptel-1.4.x.tar.gz
Libpri -> libpri-1.4.x.tar.gz
Asterisk-addons -> asterisk-addons-1.4.x.tar.gz

CAPITULO 3

Descarga, Compilacin Instalacin de Asterisk




Anteriormente en el capitulo 2 vimos detalles respecto a la preparacin de un sistema para instalar
Asterisk en el, adems de observaciones y consideraciones importantes a la hora de elegir hardware,
en el presente capitulo veremos como obtener e instalar Asterisk en el sistema elegido y utilizando
una distribucin de Linux basada en RedHat (CentOS) ya que es la mas comn y tambin utilizada
por el equipo de desarrolladores de Digium.



Paquetes requeridos relacionados con Asterisk


La instalacin de Asterisk esta compuesta por diversos paquetes bsicos que pueden ser por ejemplo:
asterisk, zaptel, libpri, asterisk-addons entre otros detallaremos 4 de stos

* Asterisk: Incluye el programa principal de asterisk.
* Zaptel: Incluye los drivers para las tarjetas telefnicas Zaptel.
* LibPri: Incluye las libreras PRI necesarias para conectarse al RTPC.
* Asterisk-addons: Incluye mdulos adicionales a asterisk, como por ejemplo el modulo
MySQL para conexin a bases de datos de este tipo.


El nico paquete estrictamente necesario es asterisk, ya que libpri solo se necesitara en caso de que
vallamos a utilizar interfaces PRI y zaptel en caso de utilizar tarjetas ZAPTEL, en caso de requerir
utilidades que necesiten fuente de temporizacin y no tengamos hardware Zaptel instalado, es
requerido instalar el paquete zaptel activando por defecto el modulo ztdummy.



Descarga paquetes de Asterisk


La descarga de asterisk y sus librerias pueden realizarse en forma de archivos tar.gz, para descargar
estos archivos los podemos encontrar en:


http://ftp.digium.com/pub/

La nomenclatura de estos paquetes seraasterisk-version.tar.gz por ejemplo:
Ing. Carlos Acua Ramos

Instalacin Asterisk 1.8

Vorbis que es una librera para la compresin/descompresin audio:

yum install libvorbis libvorbis-devel vorbis-tools libogg libogg-devel

CURL que es un cliente que permite recibir o enviar archivos utilizando los protocolos HTTP,
HTTPS, FTP, GOPHER, DICT, TELNET:

yum install curl curl-devel libidn-devel

Se instalan todas las libreras y dependencias que se necesitan para compilar las fuentes:

yum install gcc ncurses-devel make gcc-c++ libtermcap-devel zlib-devel libtool bison bison-devel
yum install openssl-devel bzip2-devel wget newt-devel subversion flex gtk2-devel
Bases de datos MySQL:

yum install mysql mysql-server mysql-devel

UNIXODBC que permiten conectarse a muchos sistemas de gestin de base de datos (ej: MySQL):

yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel
Se instala FESTIVAL, que es un sistema de text to speech (disponible en espaol):
yum install festival festival-devel
SPEEX que es un programa para la compresin audio especficamente diseado para la voz.

IMPORTANTE: Para todos los programas que se instalan desde las fuentes, antes de
descargarlos, averiguar si hay una versin ms reciente disponible.

cd /usr/src

wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz
tar -xf speex-1.2rc1.tar.gz
cd speex-1.2rc1

./configure --prefix=/usr
make
make install

LAME que es utiliza para codificar archivos audio en formato MP3:

cd /usr/src

wget http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.99.5.tar.gz
Ing. Carlos Acua Ramos

tar -xf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix=/usr
make
make install

LIBMAD que es un MPEG audio decodificador de alta calidad:

cd /usr/src

wget http://prdownloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
tar -xf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b

./configure --prefix=/usr
make
make install

WAVPACK es un compresor audio de alto rendimiento sin perdida de calidad:

cd /usr/src

wget http://www.wavpack.com/wavpack-4.60.1.tar.bz2
tar -xf wavpack-4.60.1.tar.bz2
cd wavpack-4.60.1

./configure --prefix=/usr
make
make install

SOX que es un programa que permite la manipulacin de archivos audio y la posibilidad de pasarlos
de un formato a otro:

cd /usr/src

wget http://downloads.sourceforge.net/project/sox/sox/14.4.0/sox-14.4.0.tar.gz
tar -xf sox-14.4.0.tar.gz
cd sox-14.4.0

./configure -prefix=/usr

Al finalizar el configure aparecer esta tabla donde se encontrarn todos los formatos audio que se
podrn manipular con SOX:
Ing. Carlos Acua Ramos




Se termina con la compilacin e instalacin:

make
make install



1.4 LIBPRI

En el caso que se quiera instalar tarjetas digitales en el servidor Asterisk (E1, T1, ISDN), antes de
instalar DAHDI, hay que instalar la librera libpri

cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.12.tar.gz

se descomprime:

tar -xf libpri-1.4.12.tar.gz

se entra en la carpeta:

cd libpri-1.4.12

se compila y se instala:

make
make install
Ing. Carlos Acua Ramos


1.5 DAHDI

El paquete DADHI (Digium Asterisk Hardware Device Interface) permite cargar los drivers y
configurar distintos tipos de tarjetas en Asterisk (analgicas, digitales, RDSI/ISDN, cancelador de
ECHO). Asterisk adems se apoya en DAHDI para las conferencias audio (modulo app_meetme) y el
trunking IAX2 (tema tratado en la configuracin del archivo iax.conf). Se instala el paquete de
desarrollo:

yum install kernel-devel

Se continua con la ultima versin disponible de DAHDI-Linux:

cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz
tar -xf dahdi-linux-current.tar.gz
cd dahdi-linux-2.6.1

make
make install

Se termina con la ultima versin disponible de DAHDI-Tools:

cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
tar -xf dahdi-tools-current.tar.gz
cd dahdi-tools-2.6.1

./configure

make menuselect

en la ventana que aparece se seleccionan todos los mdulos disponibles como indicado en la imagen
que sigue:
Ing. Carlos Acua Ramos



Se guarda la configuracin presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se
termina con la compilacin e instalacin:

make
make install
make config

Ya se puede iniciar DAHDI:

/etc/init.d/dahdi start
Loading DAHDI hardware modules:
wct4xxp: [ OK ]
wcte12xp: [ OK ]
wct1xxp: [ OK ]
wcte11xp: [ OK ]
wctdm24xxp: [ OK ]
wcfxo: [ OK ]
wctdm: [ OK ]
wcb4xxp: [ OK ]
wctc4xxp: [ OK ]
xpp_usb: [ OK ]

No hardware timing source found in /proc/dahdi, loading dahdi_dummy
Running dahdi_cfg: [ OK ]



1.7 Instalacin de Asterisk

Terminada la preparacin del servidor, se inicia con la instalacin de Asterisk. Se descarga la ltima
versin 1.8.X disponible:

cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.14.1.tar.gz
tar -xf asterisk-1.8.14.1.tar.gz
cd asterisk-1.8.14.1
Ing. Carlos Acua Ramos

./configure
make menuselect

Desde la versin 1.8.X lo que antes era un paquete a parte (asterisk-addons) ahora es presente en el
paquete principal de Asterisk. Como se puede notar, los mdulos relacionados con MySQL (menos
res_mysql) son deprecated y en las versiones futuras de Asterisk sern eliminados. Se entra en el
men Add-ons y se activan los paquetes que siguen:



En Asterisk 1.8.X est presente un nuevo men Channel Event Logging que como se ver ms
adelante, permite complementar el CDR (call detail record) con nuevas informaciones relacionadas
con las llamadas:



En Resource modules se controla que los mdulos relacionados con las funciones calendario y
cifrado del flujo media estn activados:





Se seleccionan todos los mdulos en el men Utilities y AGI Samples:
Ing. Carlos Acua Ramos







En Core Sound Packages se seleccionan todos los paquetes disponibles:



En Music On Hold File Packages se hace lo mismo:
Ing. Carlos Acua Ramos




Como se hace lo mismo en Extra Sound Packages:



Se guarda la configuracin presionando la tecla tabulador hasta posicionarse sobre Save & Exit. Se
termina con la compilacin e instalacin:

make

Si a lo largo de la compilacin aparece este error:

make[1]: *** [format_mp3.o] Error 1
Ing. Carlos Acua Ramos

make: *** [addons] Error 2 se
continua con:
contrib/scripts/get_mp3_source.sh
y luego otra vez el make:
make

se instala Asterisk:

make install

se instalan los archivos de configuracin predefinidos:

make samples

se configura el script de arranque de Asterisk:

make config

Terminada la instalacin, se procede a la configuracin de MySQL para crear la base de datos y la
tabla donde se guardarn los registros de las llamadas.

/etc/init.d/mysqld start

se configura para que arranque en automtico:

chkconfig mysqld on

y se crea una contrasea para el usuario root de MySQL (sesamo):
IMPORTANTE: para un sistema en produccin utilizar siempre contraseas fuertes
mysqladmin -u root password sesamo

Para asegurar el servidor MySQL se ejecuta el programa:

mysql_secure_installation

Se contestan las preguntas somo sigue:

Enter current password for root (enter for none): sesamo
OK, successfully used password, moving on...

Change the root password? [Y/n] n
... skipping.

Remove anonymous users? [Y/n] y
Ing. Carlos Acua Ramos

... Success!

Disallow root login remotely? [Y/n] y
... Success!

Remove test database and access to it? [Y/n] y
- Dropping test database...

Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Se reinicia el servidor MySQL:

service mysqld restart

Se crea la base de datos para guardar los registros de las llamadas. Se entra en el cliente de MySQL:

mysql -u root -psesamo

se crea la base de datos asteriskcdr:
mysql> create database asteriskcdr;
se selecciona:
mysql> use asteriskcdr

se crea la tabla cdr (copiando y pegando las lineas que siguen):

mysql> CREATE TABLE cdr (
id bigint(20) NOT NULL auto_increment,
calldate datetime NOT NULL default '0000-00-00 00:00:00',
clid varchar(80) NOT NULL default '',
src varchar(80) NOT NULL default '', dst
varchar(80) NOT NULL default '', dcontext
varchar(80) NOT NULL default '', channel
varchar(80) NOT NULL default '',
dstchannel varchar(80) NOT NULL default '',
lastapp varchar(80) NOT NULL default '',
lastdata varchar(80) NOT NULL default '',
duration int(11) NOT NULL default '0',
billsec int(11) NOT NULL default '0',
disposition varchar(45) NOT NULL default '',
amaflags int(11) NOT NULL default '0',
Ing. Carlos Acua Ramos

accountcode varchar(20) NOT NULL default '',
peeraccount varchar(20) NOT NULL default '',
uniqueid varchar(32) NOT NULL default '',
linkedid varchar(80) NOT NULL default '',
userfield varchar(255) NOT NULL default '',
PRI MARY KEY (`id`),
KEY callerid (clid)
);

Con la versin 1.8 de Asterisk se han aadido dos nuevos campos a la tabla CDR:

linkedid
peeraccount

que permiten tener informaciones ms detalladas de cada llamada.

Se otorgan los permisos de acceso a la base de datos creada al usuario asterisk, desde local

mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' IDENTIFIED
BY 'sesamo';

desde remoto:

mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'%' IDENTIFIED BY
'sesamo';

se actualizan los permisos:
mysql> flush privileges;
se sale del cliente:
mysql> quit

En Asterisk la conexin a la base de datos y la tabla de los registros de las llamadas, se configura en el
archivo cdr_mysql.conf. Se renombra el predefinido:

mv /etc/asterisk/cdr_mysql.conf /etc/asterisk/cdr_mysql.conf.old

se crea uno nuevo:

nano /etc/asterisk/cdr_mysql.conf

se aaden las siguientes lineas:

[global]
hostname=localhost
dbname=asteriskcdr
table=cdr
password=sesamo
user=asterisk
port=3306
Ing. Carlos Acua Ramos

sock=/var/lib/mysql/mysql.sock

Los datos:
1. [global] etiqueta inicial del bloque
2. hostname - nombre de dominio o IP del servidor MySQL
3. dbname - nombre de la base de datos
4. table - nombre de la tabla
5. password - contrasea del usuario que tiene los permisos para acceder a la base de datos
6. user - nombre del usuario que tiene los permisos para acceder a la base de datos
7. port puerto donde MySQL recibir las conexiones (predefinido 3306)
8. sock archivo que se crea cuando se inicia MySQL y que se necesita indicar para una correcta
conexin

Se guardan los cambios y se inicia Asterisk:

/etc/init.d/asterisk start

se averigua que est corriendo:

/etc/init.d/asterisk status
asterisk (pid 2403) is running...

se entra en la consola:

asterisk -rvvvvvvvvvvvvvvvv
se controla que la conexin a la base de datos est activa:
CLI> cdr mysql status
Connected to asteriskcdr@localhost, port 3306 using table cdr for 59 seconds.
Wrote 0 records since last restart.
Se sale de la consola:
CLI> quit
Executing last minute cleanups



Directorios Usados

A continuacin los archivos y directorios mas importantes creados en el proceso de instalacin.



/etc/asterisk
En este directorio se encuentran todos los archivos necesarios para configurar la gran cantidad de
servicios que Asterisk provee.Revisaremos los mas importantes.


asterisk.conf
Configuraciones generales de la ubicacin de directorios de archivos de configuracion, mdulos
compilados, voicemails etc. En general es buena idea no modificar estas configuraciones, salvo
Ing. Carlos Acua Ramos

casos especiales.



cdr.conf
Configuraciones referentes al "Call Detail Record". Los CDR son sumamente importantes para las
compaas telefnicas. Modificar datos en este archivo puede repercutir en la integridad de los
CDR si no se esta seguro de lo que se hace. Si la instalacin es nicamente de prueba, o los CDR no
son materia importante, no hay problema.



codecs.conf
A menos que utilices SPEEX, o quieras hacer cosas especiales con la forma en la que los codecs se
comportan, es mejor no modificar este archivo.



extensions.conf
Tal vez el archivo mas importante de Asterisk. En este archivo se toman las decisiones de ruteo de
las llamadas. Mas adelante veremosla sintaxis de este archivo.



features.conf
Este archivo es tambin muy importante. Permite habilitar y configurar servicios genricos de un
PBX como la transferencia asistida y monitoreo de llamadas.



iax.conf
Importante archivo para el funcionamiento del canal chan_iax que le permite a Asterisk interactuar
con otros dispositivos IAX, incluyendo otros PBX Asterisk.



logger.conf
Que nivel de verbosidad debentener los mensajes de log y a donde deben ser enviados.



manager.conf
Configuracin del importante servicio AMI (Asterisk Manager Interface) que permite conectarnos a
un socket TCP y manejar el PBX. De cierta forma se encuentra relacionado con el archivo http.conf,
que provee de una interfaces para programar aplicaciones con AJAX que se comuniquen
directamente con AMI.



modules.conf
Archivo sumamente importante. Determina que mdulos sern cargados por Asterisk al iniciar. Es
frecuente que cuando se instala asterisk por primera vez, no arranque debido a que no puede cargar un
mdulo para el que no tenemos soporte. Esto se soluciona comentando la lnea del mdulo en este
archivo.



sip.conf
Anlogo del archivo iax.conf para el protocolo SIP

zapata.conf
Ing. Carlos Acua Ramos

Configuracin de los canales Zap. Las configuraciones de este archivo deben coincidir con el
hardware instalado y la configuracin del driverzaptel.



voicemail.conf
Configuracin de las casillas de voz creadas para los respectivos anexos.



meetme.conf
Configuracin de las salas de conferencias.




/var/log/asterisk
En este directorio se encuentran los archivos de registro de las operaciones de Asterisk. Definamos
cada uno de los archivos encontrados dentro de este directorio.


cdr.db
Este archivo se encuentra disponible si se cuenta con el CDR handler para la base de datos SQLite.
El archivo contiene la base de datos de los registros de las llamadas.


event_log
Registro de eventos sucedidos en el PBX.


full
Creado con la intencin de contener todos los mensajes de debug del sistema.


messages
Contiene un listado de los mensajes de warning,debug y dems niveles de logeo.


queue_log
Archivo utilizado principalmente por la aplicacin app_queue.




/var/lib/asterisk
Directorio con archivos de audio, llaves RSA, scripts AGI (Asterisk Gateway Interface), base de datos
astdb y archivos para el pequeo servidor HTTP para AJAM (Asynchronus Javascript Asterisk
Manager). Aqui veremos una descripcin de cada uno de los directorios, ya que los archivos pueden
ser irrelevantes.


agi-bin/
Aqui se contienen programas en C, PHP, Python o cualquier otro lenguaje con el que se pretenda
interactuar desde Asterisk.
keys/
Directorio que contiene llaves RSA para la autenticacin de llamadas con el protocolo IAX2
Ing. Carlos Acua Ramos

sounds/
Directorio con todos los sonidos que sern utilizados por aplicaciones como Playback() y
Background()




Para asegurarnos que el proceso de asterisk inicia de forma automtica con el arranque del servidor y
en caso de reinicio del S.O completo y para el proceso de inicio o detencin de forma
manual del servicio debemos ejecutarlos siguientes comandos en la interfaz de linea de comandos:


# service asterisk start
# chkconfig asterisk on


Para acceder al monitor del sistema o tambien conosido como 'CLI>' ejecutamos el siguiente
comando:


# asterisk -r