jueves, 14 de abril de 2011

Personaliza Tu ChanSpy para escuchar una extension en particular

Hola..

Asterisk cuenta con una aplicación llamada chanspy la cual se encuentra en la ruta /etc/asterisk/extension_additional.conf y por default viene así:

[app-chanspy]
include => app-chanspy-custom
exten => 555,1,Macro(user-callerid,)
exten => 555,n,Answer
exten => 555,n,Wait(1)
exten => 555,n,ChanSpy()
exten => 555,n,Hangup

; end of [app-chanspy]


Esto nos permite realizar escucha de llamadas al azar de las extensiones registradas en nuestro asterisk.
Pero si lo que queremos es monitorear una extensión en particular lo que debemos hacer es incluir en /etc/asterisk/extension_custom.conf lo siguiente:

[app-chanspy-custom]
exten => _*51xx,1,ChanSpy(SIP/${EXTEN:2},q)


Recuerda que el número 2 que esta seguido de la palabra EXTEN lo que hace es eliminar *5 de tus extensiones 1XX
Es solo un ejemplo. Espero Les Sirva!!

jueves, 17 de marzo de 2011

Modulo Freepbx para leer contexto editado en los archivos de configuración

Saludos Encontré esta información en un blog de asterisk el cual puede ser de mucha utilidad.

En un comienzo FreePBX se diseñó para ser una herramienta simple y fácil para programar tanto el flujo de las llamadas como el dialplan de Asterisk. Sin embargo, en nombre de la simplicidad a veces es necesario sacrificar características avanzadas y formas muy complicadas para hacer las cosas. FreePBX llega a un razonable punto medio entre ambos mundos: por una parte tiene una GUI sumamente poderosa que se mantiene intuitiva y simple, y por la otra tiene una manera ordenada para extender de forma consistente la GUI en un dialplan ‘crudo’(me refiero a la estructura del archivo extensions.conf).

Primero, un pequeño refresco de los conceptos del dialplan de Asterisk. Cada instrucción de Asterisk está compuesta de cuatro partes:

* Contexto

* Extension

* Prioridad

* Aplicación

Por ejemplo:

[gritan-monos]
exten => 66,1,Playback(tt-monkeys)

En este ejemplo, cuando llega una llamada a la extension 66, con prioridad 1 dentro del contexto “gritan-monos”, Asterisk reproducirá (Playback) el archivo de sonido “tt-monkeys”. Adicionalmente, Asterisk tiene la habilidad de incluir uno (o más contexto) dentro de otros contextos utilizando el comando “include”, por ejemplo:

[algun-contexto]
exten => … otras cosas
include algun-otro-contexto

FreePBX toma ventaja de la característica include para mantener el dialplan simple y limpio dividiéndolo en contextos más pequeños. El contexto que utiliza FreePBX para el enrutamiento de llamadas se llama “from-internal”. A excepción de dos inclues, el contexto “from-internal” está casi vacío. El contenido de “from-internal” se puede ver aquí:

=========== extensions.conf ==============
[from-internal]
include => from-internal-xfer
include => bad-number
===========================================

El contexto “from-internal-xfer” su vez incluye (entre otros) “from-internal-additional” y “from-internal-custom”. El contexto “from-internal-additional” es también bastante disperso -a excepción de algunos includes más de contextos aún más pequeños, correspondiendo al dialplan completo generado por FreePBX. También se incluye siempre el contexto “from-internal-custom” -anque siempre está vacío- de tal manera que se pueda utilizar de la manera que se quiera. La manera simple de comenzar un nuevo contexto es en “/etc/asterisk/extensions_custom.conf” y agregar nuestro propio dialplan allí. Luego, para incluir nuestro contexto “[gritan-monos]” en el contexto generado por FreePBX deberíamos agregar lo siguiente a “/etc/asterisk/extensions_custom.conf”:

[from-internal-custom]
include => gritan-monos

[gritan-monos]
exten => 66,1,Playback(tt-monkeys)

Luego debemos re-cargar el dialplan (asterisk -rx “dialplan reload”, o asterisk -rx “extension reload” si se está usando Asterisk 1.2). Eso es todo!! Ahora utilizando alguna extensión discamos 66. Se debería oír la reproducción del archivo “tt-monkeys”.

Aunque este método es realmente simple, tiene algunos inconvenientes: Si se definiera algún código como 66, y luego se configurase algún anexo (y por lo tanto un teléfono) con la extensión 66 en FreePBX – ¿qué sucedería cuando se disca 66?

Correcto!, Asterisk se confundiría: no sabría a cuál de los ’66′ llamar (de hecho Asterisk elegiría uno de los dos, pero saber cuál es otra historia). Con el fin de prevenir tal situación, FreePBX protege rigurosamente el dialplan de tener entradas repetidas. No se pueden tener dos extensiones utilizando el mismo número (inténtelo!). Tampoco es posible tener otros ‘destinos’ (los cuales son también llamados ‘extension’ en el lenguaje del dialplan de Asterisk) tales como ‘ring groups’(grupos de extensiones) o ‘queues’(colas de llamados) con un mismo número de extensión ya existente.
Para incluir un dialplan propio en la ruta que sigue la llamada, se puede utilizar una combinación de módulos. Primero, se necesita decirle a FreePBX en qué parte del dialplan propio debe apuntar. Para hacer ésto, se debe crear un “Custom Destination“(Destino Personalizado en español, se encuentra en la pestaña “Tools”) con la opción “Custom Destination”apuntando al dialplan personalizado en el siguiente formato: contexto,extensión,prioridad. Para referirse al ejemplo previo, se debería elegir el destino personalizado como: gritan-monos,66,1. También se agrega una Descripción de manera que sea más fácil recordar qué hace este dialplan. Se llamará gritan-monos. Luego presionar submit(enviar).

A continuación necesitamos crear una “Miscellaneous Application”. El módulo “Misc Application” nos permite establecer una extensión (recuerde que, en Asterisk una extension el ‘algún lugar’ en el dialplan al que se llama, no necesariamente es un teléfono) que apunte a cualquier lugar. Por ejemplo, si desea que sus usuarios sean capaces de call a un IVR (lo cual está disponible solamente para las llamadas entrantes), puede elegir un “feature code”(Código de Función, por ej. *133,33,etc.). Ahora se elegirá un “Feature Code” para llamar al contexto personalizado: Click en “Misc Application” en la pestaba “Setup”, ingresar algún código, por ejemplo: 11234. A continuación rellenar la casilla “Enter a Description”, con ‘llamar monos’. Finalmente, elegir la aplicación personalizada desde el menú “Destination” Custom Application: gritan-monos y finalmente click en submit.

miércoles, 16 de marzo de 2011

DENEGAR Y PERMITIR LLAMADAS SALIENTES DESDE FREEPBX

.....................................................................................

Outbound Route Permissions


Otro Modulo muy Util del freepbx en el cual tenemos la opcion de permitir y denegar acceso de llamadas salientes a usuarios es el Outbound Route Permissions

Al descargar dicho modulo encontraran instrucciones sobre el manejo de dicho modulo.

Como Bloquear Extensiones desde FreePBX

.....................................................................................

Saludos

Hace unos días un cliente me solicitó bloquear las extensiones de su red telefónica IP basada en asterisk por motivos de seguridad.

Después de buscar una forma de hacerlo por el dial plan de asterisk, me encontré que existe un modulo de Freepbx el cual me permite realizar esta acción, dicho modulo es el key-lock.

http://www.freepbx.org/support/documentation/module-documentation/third-party-unsupported-modules/keylock

La instalación es sencilla y por default tiene los siguientes códigos.

Key Lock Toggle: *56
Key Lock: *57
Key Unlock: *58
Key Setpass: *59

miércoles, 16 de febrero de 2011

Iniciar servicio de Call Center Elastix

Para la instalacion del Modulo Callcenter ejecute

yum install elastix-callcenter

Iniciar servicio de Call Center Elastix

service elastixdialer start

Parar servicio de Call Center Elastix

service elastixdialer stop

Iniciar Servicio de Call Center Cuando Arranque el PC

/sbin/chkconfig elastixdialer on

miércoles, 2 de febrero de 2011

Cuando el Cache de APT sufre un desbordamiento


Saludos !! Hago Referencia a este LINK

http://j053d.net/blog/dynamic-mmap-ran-out-of-room/

por que a mi me funcionó.. de igual forma la solucion a este problema es la siguiente.


Cuando el Cache de APT (si el apt-get que usamos de vez en cuando) ha sufrido un overflow por alguna enorme cantidad de paquetes en su lista de repositorios que al hacer un update indique la sobrecarga en algun punto de su update y es entonces cuando debemos aumentar el espacio de esta memoria cache del APT.

Bien sea en spanish: Dynamic MMap corrió fuera de la sala
O bien sea en English: Dynamic MMap ran out of room

El día de hoy me ocurrieron unos errores (precisamente al purgar la versión 1.3.3 de Turpial para instalar la version 1.3.4). Al realizar un update por la terminal, el proceso termino con las siguientes ultimas lineas:

1E: Dynamic MMap corrió fuera de la sala. Incremente el tamaño de APT::Cache-Limit. Valor actual: 25165824. (man 5 apt.conf)
2E: Ocurrió un error mientras se procesaba language-pack-kde-he (NewVersion1)
3E: Problem with MergeList /var/lib/apt/lists/ve.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages
4W: Unable to munmap
5E: No se pudieron analizar o abrir las listas de paquetes o el archivo de estado.

Lo cual indica que la memoria caché apt está fuera del espacio, suponiendo que es por muchos paquetes cargados de los repos y ha sobre-excedido el cache de apt.

Bien sea si intentase hacer un apt-get install -f o un apt-get clean o un apt-get autoclean o un autoremove el resultado era el mismo. Al abrir el Synaptic, este sacaba un aviso que informaba sobre el mismo fallo y se cerraba luego de informar esto:

1E: Dynamic MMap corrió fuera de la sala. Incremente el tamaño de APT::Cache-Limit. Valor actual: 25165824. (man 5 apt.conf)
2E: Ocurrió un error mientras se procesaba language-pack-kde-it (NewVersion1)
3E: Problem with MergeList /var/lib/apt/lists/ve.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages
4E: Las listas de paquetes o el archivo de estado no se pueden analizar sintácticamente o abrir.
5E: _cache->open() failed, please report.

De esta informacion sobre el fallo, resaltaba a la vista la sugerencia indicada:

1Incremente el tamaño de APT::Cache-Limit. Valor actual: 25165824. (man 5 apt.conf)

Preferí pasar por el IRC de ubuntu-es para preguntar como podría incrementar este cache indicando en un paste la información de todo este fallo. El buen Geek erUSUL el cual en muchas ocasiones esta en el IRC de ubuntu-es tomando como referencia esta información me ayudo a resolver dicho problema.

Entonces, desde la terminal:

1echo 'APT::Cache-Limit "100000000";' | sudo tee -a /etc/apt/apt.conf.d/70debconf

Y con esto el update correrá normalmente sin problemas como debe ser e igual al abrir el Synaptic por ser una extensión gráfica de este.

Es de recordar que si gustas puedes borrar la linea agregada: APT::Cache-Limit “100000000″;
Pero volverás a caer en el mismo fallo del desbordamiento del Cache del APT por lo que mejor es dejarlo y recordar hacer de vez en cuando un clean cuando sea por la terminal.

El Cache-Limit puede ser cualquier valor que se necesite, pero para estar con un buen rango, lo ajustamos a un valor bien alto (10MB) que es bastante.

1sudo gedit /etc/apt/apt.conf.d/70debconf

Y finalmente se debe hacer un clean y el update correra sin problemas nuevamente

1sudo apt-get clean
2sudo apt-get update

PD: Escribe en la terminal apt-get moo si quieres ver una vaca, algo que no puede hacer aptitude otra interfaz para apt pero por terminal, no grafica como synaptic. El mismo aptitude asi lo indica al pedir su informacion de ayuda aptitude help la cual cierra con la linea: Este aptitude no tiene poderes de Super Vaca, pero apt-get si las tiene :)

sábado, 24 de abril de 2010

Instalación Asterisk 1.6 en Ubuntu Server

Esta es una pequeña guia para la instalación de nuestro sistema asterisk 1.6 en nuestro ubuntu server, Espero sea de mucha ayuda.

;Lo primero es actualizar nuestro sistema

sudo aptitude update
sudo aptitude upgrade

;Instalamos gpm el cual es una utilidad que nos permite copiar y pegar con nuestro mouse.
;Instalamos ssh para la administracion remota.
;Instalamos vim como editor de texto.

sudo apt-get install gpm ssh vi­m

;ingresamos a la carpeta personal de descarga.

cd /usr/src

;Descargaremos el sistema base de Asterisk

sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.18.tar.gz

;Descargamos drivers para nuestras targetas digium.

sudo wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.4.1.2.tar.gz
sudo wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.4.1.tar.gz

;Asterisk Addons nos agregará al sistema un par de nuevos codecs y un par de aplicaciones.

sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.4.tar.gz

;Para compilar todos los paquetes que nos hemos bajado necesitaremos instalar previamente algunos paquetes básicos.

sudo apt-get install linux-headers-`uname -r` build-essential

;Descomprimiremos y compilaremos:

sudo tar -xvzf dahdi-linux-2.4.1.2.tar.gz
cd dahdi-linux-2.4.1.2
sudo make clean
sudo make
sudo make install

;Cuando el proceso termine debe decirnos algo asi:

###################################################
###
### DAHDI installed successfully.
### If you have not done so before, install the package
### dahdi-tools.
###
###################################################

;Ahora pasaremos a hacer lo mismo con Dahdi Tools.
;Nos salimos del directorio dahdi-linux-2.2.1.1

cd ..
sudo tar -xvzf dahdi-tools-2.4.1.tar.gz
cd dahdi-tools-2.4.1

;Antes de lanzar los comandos comandos make necesitamos instalar un par de paquetes para evitar errores con ncurses.

sudo apt-get install libncurses5-dev libnewt-dev
sudo make distclean
sudo make clean
sudo ./configure
sudo make menuselect
sudo make
sudo make install
sudo make config


;Reiniciamos el demonio de dahdi.

sudo /etc/init.d/dahdi restart

;Ahora generaremos la configuración para la tarjeta, utilizando la herramienta dahdi_genconf

sudo dahdi_genconf

;Nos dará un error ya que intenta generar la configuración para asterisk el cual no esta instalado aun, pero no importa lo que queremos y es crear el archivo /etc/dahdi/system.conf.

sudo dahdi_cfg -vvvvvvvvvvvv


;Pasamos ahora a la instalación de asterisk
;Nos salimos del directorio dahdi-tools-2.2.1.1

cd ..
sudo tar -xvzf asterisk-1.6.2.18.tar.gz
cd asterisk-1.6.2.18
sudo make distclean
sudo make clean
sudo ./configure

Puede aparecer este error.
configure: *** XML documentation will not be available because the 'libxml2' development package is missing.

configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package.
Si le aparece este error es porque hay que instalar la siguiente libreria.

sudo apt-get install libxml2-dev

sudo make menuselect
sudo make
sudo make install
sudo make samples

;Podemos comprobar que asterisk ya nos empieza a funcionar, aunque no este configurado:

sudo asterisk
sudo asterisk -rvvvvvvvvv

;debe aparecer algo como esto:

#Connected to Asterisk 1.6.2.11 currently running on asterisk (pid = 16761)
#Verbosity was 0 and is now 9
# -- Remote UNIX connection
#asterisk*CLI>

;Asterisk Addons nos agregará aplicaciones para que asterisk se pueda comunicar con mysql por ende hay q instalar mysql
;y librerias

sudo apt-get install mysql-server libmysqlclient15-dev

;salimos del directorio asterisk-1.6.2.11

cd ..
sudo tar -xvzf asterisk-addons-1.6.2.4.tar.gz
cd asterisk-addons-1.6.2.4
sudo make clean
sudo ./configure
sudo make menuselect
sudo make
sudo make install
sudo make samples

;Ahora si podemos ejecutar sudo dahdi_genconf sin errores.

sudo dahdi_genconf

;y listo ya tenemos nuestro asterisk instalado.

sudo asterisk
sudo asterisk -r