miércoles, 20 de octubre de 2010

Jalar llamadas en Asterisk usando PICKUP

Pickup, es la aplicación que nos va ha permitir jalar llamadas dirigidas a cualquier anexo .

Esta aplicacion trabaja con el modulo app_directed_pickup.

ejemplo de configuración para jalar llamadas:

[funciones]
exten => _**1XXX,1,PickUp(${EXTEN:2}@PICKUPMARK)


[anexos]
exten=>_1XXX,1,Macro(extension,SIP/${EXTEN},${EXTEN},20,Ttr)

[macro-extension]


exten => s,1,Set(Anexo=${ARG2})

exten => s,n,Set(__PICKUPMARK=${Anexo})
exten => s,n,Dial(${ARG1},${ARG3},${ARG4})

exten => s,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?s-NOANSWER,1)

exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?s-BUSY,1)

exten => s,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?s-NOANSWER,1)

exten => s,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?s-NOANSWER,1)

exten => s,n,Hangup()


exen => s-BUSY,1,Voicemail(${Anexo},b)

exten => s-BUSY,n,Hangup()
exten => s-NOANSWER,1,Voicemail(${Anexo},u)
exten => s-NOANSWER,n,Hangup()

Nota:

exten =>_**1XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)

Para poder jalar la llamada con la aplicacion Pickup,
tenemos que tener la variable PICKUPMARK definida en el CANAL que esta timbrando,

Asterisk tiene una funcionalidad que consiste en la herencia de variables entre los canales. Podemos hacer que una variable este definida en todos los canales que se generen después, precediendo su nombre con 2 guiones bajos (__). Por lo tanto, lo que tenemos que hacer para poder coger cualquier llamada, es definir la variable de la siguiente manera:

exten => _1XXX,1,Set(__PICKUPMARK=${EXTEN})
exten => _1XXX,n,Dial(SIP/${EXTEN})

Llamadas a la PSTN con contraseña de usuario


Esta vez vamos a ver como realizar llamadas a la PSTN con autenticación de usuarios, usando la Aplicación AUTHENTICATE( )

Paso 1:

ciframos las contraseñas con encriptación md5, esta es la contraseña que se utilizara para hacer las llamadas



#echo -n 2356 md5sum

822feae78925e75b73431a991f66a2cd -

#echo -n 5146 md5sum

9c64c534bf3d8ec85db3864473b1b8a4 -


Paso 2:

creamos la categoría de Permisos para realizar llamadas a numeros fijos usando cifrado md5 en el fichero /etc/asterisk/c-loc

# vim /etc/asterisk/c-loc

Simon Bilivar:822feae78925e75b73431a991f66a2cd

Tupac Amaru:9c64c534bf3d8ec85db3864473b1b8a4

Paso 3:

Luego en el fichero extensions.conf

[local-fijo]

exten => _[2-7]XXXXXX,1,Authenticate(/etc/asterisk/c-loc|m)

exten => _[2-7]XXXXXX,n,Dial(dahdi/g0/${EXTEN})

exten => _[2-7]XXXXXX,n,Hangup()


Nota:

La opcion "a" de la aplicación authenticate permitira que la contraseña se almacene en el campo ACCOUNTCODE del CDR.

La opcion "m" - Interpreta la ruta dada como un archivo que contiene una lista de los códigos de la contraseña hashes MD5 delimitada con ':', que se enumeran una por línea en el archivo.



domingo, 10 de octubre de 2010

Instalanción de Asterisk 1.4

Instalando Asterisk 1.4

Vamos a explicar como Instalar Asterisk, una aplicación basado en software que implementa una central telefónica, tal y como si fuese una central del tipo hardware.

Pasos:

1.- Instalar el Linux, la distribución que mejor domines,
2.- Actualizar el kernel
3.- Desactivar Selinux y Cortafuegos
4.- Instalar las librerias pre-requisitos para Asterisk
5.- Descargar los paquetes de Asterisk
6.- Desempaquetar
7.- Renombrar (Opcional)
8.- Compilar e instalar

Detallando algunos puntos:

1.- Instalar el S.O, lo unico que necesitamos es el kernel y algunas librerias por lo que se podria instalar cualquier distro, en lo personal he instalado sobre Debian, Ubuntu y Centos y en todas he trabajado muy bien.

2.-#yum install kernel kernel-devel
luego reiniciar para que inicie por el kernel actualizado.

3.-#yum -y install gcc-c++ ncurses ncurses-devel zlib zlib-devel glib glib-devel openssl openssl-devel bison ntp newt*

4.- Descargaremos los paquetes en el directorio /usr/src/
#cd /usr/src/

#wget http://www.asterisk.org/downloads/asterisk/releases/asterisk-1.4-current.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.4.12.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.4.0.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.4.0.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1..11.4.tar.gz


5.- Desempaquetamos los paquetes:
#tar xvfz asterisk-1.4-current.tar.gz
#tar xvfz asterisk-addons-1.4.12.tar.gz
#tar xvfz libpri-1.4.11.4.tar.gz
#tar xvfz dahdi-linux-2.4.0.tar.gz
#tar xvfz dahdi-tools-2.4.0.tar.gz

6.-
#cd /usr/src/librpi-1.4.11.4
#make
#make install

#cd ../dahdi.linux-2.4.0/
#make
#make install

#cd ../dahdi.tools-.2.4.0
#./configure
#make menuselect
#make
#make install
#make config

#cd ../asterisk-1.4.36/
#./configure
#make
#make install
#make samples
#make config


#cd ../asterisk-addons-1.4
#./configure
#make menuselect
#make
#make install
#make samples

#asterisk -c



Ingresara a la Interface de Linea de Comandos de Asterisk *CLI>


Para salir: *CLI>!

Para Ingrasar al CLI: asterisk -r