Asterisk primeros pasos
De Linuxmall Wiki
1.Instalación de ASTERISK PBX, configuraciones Básicas.
Por: Pablo Umanzor
El siguiente mini-howto esta basado en una maquina tipo PC (procesador Intel o AMD) usando Debian GNU/Linux (Etch Lenny)
La instalación de Asterisk PBX GNU/Linux no tiene mayores inconvenientes salvo las dependencias de software que se requieren para compilar, lo primero que se necesita son las cabeceras del Kernel las cuales deben corresponder a la imagen que estamos utilizando. Para conocer que versión se esta utilizando ; como root ejecutar el comando uname -a , lo que deberia entregar la información solicitada:
uname -r
Devolvera:
2.6.8-2-686
en este caso la VERSION_DE_KERNEL = 2.6.8-2-686
apt-get install linux-headers-VERSION_DE_KERNEL apt-get install libssl-dev apt-get install libncurses5-dev apt-get install zlib1g-dev apt-get install bison apt-get install make gcc g++
Las otras 4 dependencias tambien son necesarias antes de compilar (y obviamente los programas gcc y g++)
Luego ingresar al directorio /usr/src y crear un enlace simbólico apuntando a las cabeceras del kernel:
ln -sf linux-headers-VERSION_DE_KERNEL linux
posteriormente seguir los siguientes pasos:
Para Asterisk 1.4.X
Bajar en /usr/src desde http://downloads.asterisk.org/pub/telephony/
Libpri 1.4.X Asterisk 1.4.X Asterisk Addons 1.4.X
Como se pueden dar cuenta falta el paquete Zaptel, Asterisk ha creado un reemplazo de Zaptel (debido a unos problemas de licencia) el cual se llama Dahdi, el driver Dahdi se divide en 2 , Dahdi-Linux y Dahdi-tools (archivos que zaptel usaba como ztcfg zttool etc)
Si queremos seguir usando Zaptel ir al siguiente Link
*http://downloads.asterisk.org/pub/telephony/zaptel/
y bajar el archivo Zaptel requerido.
Si deseamos usar Dahdi entonces ir al enlace Downloads de la pagina de Asterisk
http://downloads.asterisk.org/pub/telephony/dahdi-linux http://downloads.asterisk.org/pub/telephony/dahdi-tools
y bajar la versión que nos acomode (ej. http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.3.0.1.tar.gz)
Descomprimir todos los archivos en el mismo directorio /usr/src y proceder a la compilación en la siguiente secuencia (donde X es la versión del release que se ha bajado):
cd /usr/src/libpri-1.4.X make make install
cd /usr/src/dahdi-linux-X make make install
cd /usr/src/dahdi-tools-X ./configure make make install
cd /usr/src/asterisk-1.4.X ./configure make make install make samples
cd /usr/src/asterisk-addons-1.4.X ./configure make make install make samples
En este punto y si la compilación no emitio errores ya deberia estar en operación la central Asterisk básica, para comprobarlo ejecutar el comando:
asterisk -vvvvvvc
Para salir del CLI de Asterisk ejecutar STOP NOW ,si desea que Asterisk se ejecute permanentemente agregar la siguiente linea en /etc/inittab (en debian)
ax:2345:respawn:/usr/sbin/asterisk -vvvcf
Para que el sistema reconozca los cambios ejecutar init q,luego para conectar con asterisk ejecutar asterisk -r
Configuracion de anexos
Si nuestro objetivo es efectuar llamadas entre 2 anexos IP usando el servidor Asterisk se requiere editar los archivos /etc/asterisk/sip.conf , /etc/asterisk/extensions.conf y obviamente tener 2 telefonos IP ya sea de hardware o softphone, primero configuramos los anexos:
Editar /etc/asterisk/sip.conf
por ej. para crear al usuario "usuario1" anexo 2030 ; el cual utilizara un softphone "X-Lite" se debe agregar al final del este archivo:
[2030] type=friend secret=123 callerid="usuario1" <2030> host=dynamic nat=yes disallow=all allow=g729 allow=ulaw allow=alaw allow=gsm context=default
El parametro type puede tener tres valores:
friend , que puede generar y recibir llamadas peer, que solo puede generar llamadas user, que solo puede recibir llamadas
allow=ulaw indica que al conectar una llamada entre el anexo IP y Asterisk se usara el codec G711 ley u, se recomienda setear este codec en el caso de que Asterisk y los anexos se encuentren en una red 10/100 Mbps Ethernet - de lo contrario usar codec gsm o G.729 (requiere licencia)
nat=yes, solo es necesario si existe algun firewall o algun NAT entre Asterisk y el anexo de lo contrario setear a "never"
context=default indica el contexto en el cual estara definido el anexo 2030 dentro del dialplan (extensions.conf)
La configuracion en dialplan del anexo de este nuevo usuario se realiza en el archivo
/etc/asterisk/extensions.conf ; y agregar las siguientes líneas (suponiendo de que el anexo a configurar es el 2030)
[anexos] exten => 2030,1,Dial(SIP/2030,45,tT) exten => 2030,2,Hangup exten => 2031,1,Dial(SIP/2031,45,tT) exten => 2031,2,Hangup
Luego se debe definir el contexto e incluir "anexos"
[default] include => anexos
Para configurar otro anexo proceder de la misma forma pero cambiando el numero de anexo ej, 2031
Ahora es preciso utilizar el softphone X-lite para ello baje desde Counterpath el instalador de XLITE, este cliente es muy estable y existe para version windows,MAC y porsupuesto para GNU/Linux , si se da cuenta en el sitio web de descarga del programa esta disponible la version 3 para window$ y las version 2 para las otros S.O.
Finalmente realice una llamada entre sus anexos
Si tiene una tarjeta X100P u otro modelo conecte el cable que viene desde la red telefónica al terminal RJ-11 aunque previamente se deben realizar algunas configuraciones en /etc/dahdi/system.conf y /etc/asterisk/chan_dahdi.conf
Configuracion de tarjeta X100P, Digium TDM01B , openvox A400P01 en Asterisk
En primer lugar hacer una lspci para ver si el kernel reconoce la tarjeta , en el listado debiera aparecer "Tiger Jet 320" , si no aparece cambie de slot pci o reserve algun recurso IRQ (desconectar dispositivos que no esten en uso)
Por ultimo editar el archivo /etc/dahdi/system.conf y agregar: fxsks=1
y en /etc/asterisk/chan_dahdi.conf
context=pstn-in channel => 1 signalling=fxs_ks
cargar dahdi y wcfxo con modprobe wcfxo dahdi
Luego ejecutar el comando:
dahdi_cfg -vvv con lo cual deberia responder con :
DAHDI Configuration ====================== Channel map: Channel 01: FXS Kewlstart (Default) (Slaves: 01) 1 channels configured.
Para generar llamados desde el anexo IP hacia algun telefono de red fija anteponiendo el 9 por ejemplo se debe modificar y agregar las siguientes sentencias en el archivo /etc/asterisk/extensions.conf
[salida-analoga]
exten => _9.,1,Dial(DAHDI/1/${EXTEN:1})
exten => _9.,2,Hangup
Ahora para que el anexo 2030 tenga acceso a este privilegio modificar el contexto default:
[default] include => anexos include => salida-analoga
Configuración de dahdi/system.conf
En el Archivo /etc/dahdi/system.conf se pueden establecer 3 elementos principales
- Una via para indentificar la interface o modulo de la tarjeta PCI (TDM01B por ej.) dentro del dialplan definido en /etc/extensions.conf
- El tipo de señalización que la interface requiere
- El "tone language" asociado a una interface en particular (ver zonedata.c) que para el caso de Chile deberia estar seteado como defaultzone=cl
Analizando el ejemplo anterior para configurar una simple tarjeta X100P el archivo zaptel.conf debería estar definido como:
loadzone=cl defaultzone=cl fxsks=1 ; usar Kewlstart FXS signalling para la wilcard X100P
El parametro fxsks=1 se compone de 3 partes, la primera fxs (Foreign eXchange Station) indica que se debe comunicar con la red de telefonia publica o con una central PBX, por tanto la interface FXO de esta tarjeta requiere un tono de alguna central o red telefonica - la interface FXO no genera tono , solo los acepta , es por ello que requiere señalización FXS (por ejemplo el modem que se usa en un PC es el clasico ejemplo de un dispositivo FXO)
En cambio un interfase FXS (por ejemplo un modulo S100M o tarjeta TDM10B) requiere de un FXO (Foreign eXchange Office), una interface FXS provee de tono y ringing voltaje para alertar al equipo telefonico de una llamada entrante. Ambas interfaces FXO FXS proveen de comunicación bidireccional.
El parametro ks que significa kewlstart signalling - determina si un canal esta abierto o cerrado , este puede tomar 3 valores, ls - gs y ks.
- Loop Start : 2 hilos transportan tanto la voz como la señalización, usada típicamente con teléfonos analógicos
- Grouns Start: 2 hilos transportan la voz y la señalización. Usada típicamente en centralitas y enlaces entre centrales (trunks)
- KewlStart : es lo mismo que loop start, salvo que ks posee una mayor inteligencia y es mas eficiente a la hora de detectar una desconexión.
Kewlstart es la señalizacíón preferida para circuitos analogos en Asterisk.
Para una mayor compresión de estos terminos ver el siguiente link de Asterisk Knowledge Base
La ultima parte =1 identifica cual es el canal que se utilizara en el dialplan (extensions.conf), en este ejemplo el canal 1 hace referencia al canal DAHDI/1 el cual se usara en /etc/asterisk/extensions.conf
loadzone=cl da las indicaciones de tonos, ringing cycles, busy tone, etc para una pais en particular, si no se setea loadzone zaptel usara lo que aparece en defaultzone
TIP: si no se encuentra el codigo cl dentro de los archivos de indicacion de tonos es valido usar el codigo fr (Francia)
Recordar lo siguiente: Una interface FXO espera una señalización FXS y una interface FXS espera por una señalización FXO de todas formas el paquete ztcfg puede ayudar si nos equivocamos en el tipo de señalización:
ZT_CHANCONFIG failed on channel 1: Invalid argument (22) Did you forget that FXS interfaces are configured with FXO signalling and that FXO interfaces use FXS signalling?
Para configurar una tarjeta TDM04B (4 puertos FXO):
loadzone=cl fxsks=1-4
Para configurar una tarjeta TDM40B (4 puertos FXS):
loadzone=cl fxoks=1-4
Cuando se trata de una tarjeta digital TE110P por ejemplo se deben tener en cuenta los siguientes parametros en el archivo zaptel.conf:
span=< numero span >,< timing >,< line build out (LBO) >,< framing >,< coding >, yellow
Un ejemplo clasico para una tarjeta TE110P E1 Pri (Chile)
span=1,0,0,css,hdb3 bchan = 1-15,17-31 dchan = 16
framing usa d4 o esf para T1 / cas o ccs cuando se trata de E1 coding usa ami o b8zs en T1 / ami o hdb3 en E1
Mas información de como configurar anexos, buzón de voz, etc. visitar:
* Asterisk + IVR + Voicemail * http://www.asterisk.org * http://www.voip-info.org
Nota: cada vez que se efectúe algún cambio en los archivos de configuracion se debe reiniciar asterisk
- CLI>reload
.
