jueves, 14 de abril de 2011
Personaliza Tu ChanSpy para escuchar una extension en particular
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
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
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:
1 | E: Dynamic MMap corrió fuera de la sala. Incremente el tamaño de APT::Cache-Limit. Valor actual: 25165824. (man 5 apt.conf) |
2 | E: Ocurrió un error mientras se procesaba language-pack-kde-he (NewVersion1) |
3 | E: Problem with MergeList /var/lib/apt/lists/ve.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages |
4 | W: Unable to munmap |
5 | E: 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:
1 | E: Dynamic MMap corrió fuera de la sala. Incremente el tamaño de APT::Cache-Limit. Valor actual: 25165824. (man 5 apt.conf) |
2 | E: Ocurrió un error mientras se procesaba language-pack-kde-it (NewVersion1) |
3 | E: Problem with MergeList /var/lib/apt/lists/ve.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages |
4 | E: Las listas de paquetes o el archivo de estado no se pueden analizar sintácticamente o abrir. |
5 | E: _cache->open() failed, please report. |
De esta informacion sobre el fallo, resaltaba a la vista la sugerencia indicada:
1 | Incremente 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:
1 | echo '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.
1 | sudo gedit /etc/apt/apt.conf.d/70debconf |
Y finalmente se debe hacer un clean y el update correra sin problemas nuevamente
1 | sudo apt-get clean |
2 | sudo 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
;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 vim
;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.Si le aparece este error es porque hay que instalar la siguiente libreria.
configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package.
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