cd /usr/src/
sudo wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
sudo tar -xzvf freepbx-2.9.0.tar.gz
cd freepbx-2.9.0
Editaremos el sources.list de nuestro apt para que recoja de los repositorios de debían multimedia, ya que necesitamos el paquete lame y no se encuentra en los repositorios oficiales de debían.
sudo vi /etc/apt/sources.list
Y añadimos al final del archivo las dos siguientes lineas:
deb http://oktan.ls.fi.upm.es/debian-multimedia/ stable main
deb-src http://oktan.ls.fi.upm.es/debian-multimedia/ stable main
luego actualizamos
sudo apt-get update
Nos dará error debido a que no hemos instaladola keys del repositorio, para ello instalamos debian-multimedia-keyring pasando del Aviso de autenticaión:
sudo apt-get install debian-multimedia-keyring
sudo apt-get update
sudo apt-get install libxml2-dev apache2 libapache2-mod-php5 php5 php-pear php5-mysql php5-gd bison libncurses5-dev libaudiofile-dev curl sox php-db lame libssl-dev
Editaremos el archivo /etc/php5/apache2/php.ini
sudo vi /etc/php5/apache2/php.ini
y buscaremos la linea
upload_max_filesize = 2M
y la cambiaremos por
upload_max_filesize =40M
Tambien dejaremos a Off en este archivo la opción magic_quotes_gpc
magic_quotes_gpc = Off
Crearemos un grupo y un usuario llamados asterisk con los siguientes comandos:
sudo groupadd asterisk
sudo useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
Crearemos el directorio /var/run/asterisk:
sudo mkdir /var/run/asterisk
Ahora editaremos la configuración de asterisk para que utilice el directorio que acabamos de crear como directorio de ejecución:
sudo vi /etc/asterisk/asterisk.conf
La linea a cambiar es la que dice
astrundir => /var/run
y la debemos dejar así:
astrundir => /var/run/asterisk
Ahora instalremos unos cuantos paquetes perl necesarios para FreePBX y Asterisk con los siguientes comandos:
sudo perl -MCPAN -e 'install +YAML'
Contesaremos a todo que si hasta que nos deje de nuevo en la consola
sudo perl -MCPAN -e "install IPC::Signal"
sudo perl -MCPAN -e "install Net::Telnet"
sudo perl -MCPAN -e "install Proc::WaitStat"
Ahora crearemos las bases de datos necesarias para que FreePBX vaya llenando las tablas con nuestras configuraciones y luego pase a los archivos de asterisk lo necesario para su funcionamiento, recordad que los passwords que pedirán estos comandos son los que pusimos en la instalación de mysql-server
sudo mysqladmin create asteriskcdrdb -p
sudo mysql --user=root --password=TU_PASSWORD asteriskcdrdb < /usr/src/freepbx-2.9.0/SQL/cdr_mysql_table.sql
sudo mysqladmin create asterisk -p
sudo mysql --user root -p asterisk < /usr/src/freepbx-2.9.0/SQL/newinstall.sql
sudo mysql --user root -p
mysql> GRANT ALL PRIVILEGES on asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';
mysql> GRANT ALL PRIVILEGES on asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';
mysql> FLUSH PRIVILEGES;
mysql> quit
Perfecto ya tenemos creadas las bases de datos con sus tablas y sus datos, ahora debemos decirle a apache2 que se ejecute como el usuario que creamos llamado asterisk y que pertenezca al grupo llamado tambien asterisk, para ello editaremos el archivo /etc/apache2/envvars y sustituiremos www-data por asterisk.
sudo vi /etc/apache2/envvars
Lo dejaremos así:
# envvars - default environment variables for apache2ctl
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk
export APACHE_PID_FILE=/var/run/apache2.pid
Reinciamos apache2:
sudo /etc/init.d/apache2 restart
Luego nos aparecerá el siguiente error
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Para corregir este problema, necesitas editar el archivo httpd.conf
sudo vi /etc/apache2/httpd.conf
Por defecto el archivo httpd.conf esta en vacío, simplemente escribe lo siguiente.
ServerName localhost
Guarda el archivo y cierra el editor, y finalmente reinicias el servidor.
sudo /etc/init.d/apache2 restart
Antes de lanzar la instalación de FreePBX, debemos asegurarnos que asterisk está funcionando:
sudo kill -9 `pidof asterisk`
sudo asterisk
sudo ./install_amp
Nos debe aparecer algo como esto:
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Checking user..OK
Checking if Asterisk is running..running with PID: 29968..OK
Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default
Creating new /etc/amportal.conf
Enter your USERNAME to connect to the 'asterisk' database:
[asteriskuser]
Enter your PASSWORD to connect to the 'asterisk' database:
[amp109] TU_PASSWORD
Enter the hostname of the 'asterisk' database:
[localhost]
Enter a USERNAME to connect to the Asterisk Manager interface:
[admin]
Enter a PASSWORD to connect to the Asterisk Manager interface:
[amp111] TU_PASSWORD
Enter the path to use for your AMP web root:
[/var/www/html]
/var/www/freepbx
Created /var/www/freepbx
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
[xx.xx.xx.xx]
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
[passw0rd] TU_PASSWORD
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
[extensions]
Enter directory in which to store AMP executable scripts:
[/var/lib/asterisk/bin]
Created /var/lib/asterisk/bin
Enter directory in which to store super-user scripts:
[/usr/local/sbin]
Si llegado el caso nos aparece este error:
Checking for PEAR DB..FAILED
[FATAL] PEAR must be installed (requires DB.php). Include path: .:/usr/share/php:/usr/share/pear
entonces la solución es ejecutar en la consola
sudo pear install DB
y nuevamente ejecutar sudo ./install_amp
Después reiniciamos amportal
sudo amportal restart
Podemos comprobar visitando la página web de nuestra nueva centralita abriendo un navegador y entrando en la dirección http://xxx.xxx.xxx.xxx/freepbx
Aprovecharemos y actualizaremos FreePBX, entrad en FreePBX Administration de ahí os moveis a Module Admin, pulsad en Check for updates Online, y luego pinchad en Download All y Upgrade All y luego Process, repetir el proceso varias veces veces hasta que no quede nada por actualizar.
Para que podamos sacar llamadas por los canales Dahdi necesitaremos editar el archivo /etc/amportal.conf
sudo vi /etc/amportal.conf
Buscamos la linea comentada que pone
# ZAP2DAHDICOMPAT=true|false
La cual debe quedar asi:
ZAP2DAHDICOMPAT=true
De esta forma FreePBX sabrá configurar Asterisk para que utilize los canales Dahdi con la nueva nomenclatura y no con la antigua.
Reiniciad amportal:
sudo amportal restart
Para que Asterisk y FreePBX se inicien cuando encendamos el equipo tendremos que realizar lo siguiente:
sudo vi /etc/init.d/inicia_asterisk.sh
Y añadiremos lo siguiente:
#!/bin/bash
/usr/local/sbin/amportal start
Demosle permisos de ejecución:
sudo chmod a+x /etc/init.d/inicia_asterisk.sh
Ahora crearemos un enlace simbólico para que al inicio del sistema llame al script que acabamos de crear:
sudo ln -s /etc/init.d/inicia_asterisk.sh /etc/rc2.d/S92inicia_asterisk
OK ESO ES TODO!!!
jueves, 30 de junio de 2011
viernes, 20 de mayo de 2011
SERVICIO DE FAX EN ELASTIX
Primero debemos crear una extensión IAX.

Para nuestro caso elegimos la 401 y llenamos los siguientes campos.
User Extension = 401
Display Name = FAX
Secret = passwordfax
Una vez creada la extensión seleccionamos la pestaña superior que dice FAX y luego en la parte izquierda la opción New Virtual Fax. Allí introducimos los datos de nuestra extensión de Fax y el correo al cual queremos que nos lleguen los Faxes.

Recuerde que una vez creado nuestro FAX deberá aparecer con status Running and idle on ttyIAX1 de lo contrario no esta corriendo nuestro servicio de haylafax o IAXmoden en nuestra maquina. Por lo cual se debe iniciar por consola con las siguientes lineas.
# service iaxmodem start
# service hylafax start
Listo ya se puede decir que podemos recibir nuestros Faxes correctamente a nuestra maquina, pero no a nuestro correo. Para ello debemos configurar nuestro Postfix.
Configurando el servidor Postfix
La configuración de nuestro servidor postfix se encuentra en el archivo /etc/postfix/main.cf por tanto:
cd /etc/postfix
vi main.cf
Luego cambiamos las siguientes líneas:
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
Por:
myhostname = elastix.mydominio.com
#myhostname = virtual.domain.tld
Luego cambiamos:
#mydomain = domain.tld
Por:
mydomain = mydominio.com
ahora ingresamos el servidor SMTP por el cual se enviara el correo, que en nuestro caso es GMAIL.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
Por:
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
relayhost = smtp.gmail.com:587
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
Guardamos los cambios realizados a main.cf, luego recargamos la configuración de POSTFIX.
postfix reload
Luego necesitas modificar otra vez el archivo main.cf con los siguientes cambios, estos estan al final del archivo.
################################
#Ingresado por yb-webadmin
mydomain =mydominio.com
myhostname = elastix.mydominio.local
Configurando la cuenta de correo
Creamos el archivo sasl_passwd (sin extension)
vi /etc/postfix/sasl_passwd
Dentro del archivo registramos la cuenta de correo (existente) y su respectiva clave, esta es la cuenta desde la cual se enviaran los correos.
smtp.gmail.com:587 usuario@gmail.com:miclavedegmail
Grabamos el archive sasl_passwd.
Luego lo ciframos:
postmap hash:/etc/postfix/sasl_passwd
Luego editamos el archive main.cf
vi /etc/postfix/main.cf
Agregamos las siguientes lineas al final
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
grabamos el archivo y recargamos la configuracion del POSTFIX.
postfix reload
Como gmail usa SSL, necesitamos un certificado SSL, así que creamos uno propio, el cual será usado por el TLS
mkdir /etc/postfix/tls
cd /etc/postfix/tls
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
Dejar el 'challenge password' vacio:
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Agregar las siguientes lineas en el archivo /etc/postfix/main.cf:
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/tls/smtpd.key
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
Reiniciamos los servicios:
service saslauthd restart
service postfix restart
Para que inicien en el boot:
chkconfig postfix on
chkconfig saslauthd on
Para Revizar los logs de nuestro servicio de correo usamos:
tail -f /var/log/maillog
Abre otra consola y envia un correo para provar que esta funcionando correctamente.
mail destinatario@dominio.com
Subject: test
hello
.
Cc:
Luego de esto en el log debe salir algo parecido a esto y lo que importa es la palabra SENT:
elastix postfix/smtp[3257]: 08EAE21566: to=, relay=smtp.gmail.com[74.125.45.109]:587, delay=9.2, delays=0.21/0.06/6.8/2.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1227556872 34sm10144335yxl. May 20:50:26 elastix postfix/qmgr[3250]: 08EAE21882: removed
Y Ya esta!!

Para nuestro caso elegimos la 401 y llenamos los siguientes campos.
User Extension = 401
Display Name = FAX
Secret = passwordfax
Una vez creada la extensión seleccionamos la pestaña superior que dice FAX y luego en la parte izquierda la opción New Virtual Fax. Allí introducimos los datos de nuestra extensión de Fax y el correo al cual queremos que nos lleguen los Faxes.

Recuerde que una vez creado nuestro FAX deberá aparecer con status Running and idle on ttyIAX1 de lo contrario no esta corriendo nuestro servicio de haylafax o IAXmoden en nuestra maquina. Por lo cual se debe iniciar por consola con las siguientes lineas.
# service iaxmodem start
# service hylafax start
Listo ya se puede decir que podemos recibir nuestros Faxes correctamente a nuestra maquina, pero no a nuestro correo. Para ello debemos configurar nuestro Postfix.
Configurando el servidor Postfix
La configuración de nuestro servidor postfix se encuentra en el archivo /etc/postfix/main.cf por tanto:
cd /etc/postfix
vi main.cf
Luego cambiamos las siguientes líneas:
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
Por:
myhostname = elastix.mydominio.com
#myhostname = virtual.domain.tld
Luego cambiamos:
#mydomain = domain.tld
Por:
mydomain = mydominio.com
ahora ingresamos el servidor SMTP por el cual se enviara el correo, que en nuestro caso es GMAIL.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
Por:
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
relayhost = smtp.gmail.com:587
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
Guardamos los cambios realizados a main.cf, luego recargamos la configuración de POSTFIX.
postfix reload
Luego necesitas modificar otra vez el archivo main.cf con los siguientes cambios, estos estan al final del archivo.
################################
#Ingresado por yb-webadmin
mydomain =mydominio.com
myhostname = elastix.mydominio.local
Configurando la cuenta de correo
Creamos el archivo sasl_passwd (sin extension)
vi /etc/postfix/sasl_passwd
Dentro del archivo registramos la cuenta de correo (existente) y su respectiva clave, esta es la cuenta desde la cual se enviaran los correos.
smtp.gmail.com:587 usuario@gmail.com:miclavedegmail
Grabamos el archive sasl_passwd.
Luego lo ciframos:
postmap hash:/etc/postfix/sasl_passwd
Luego editamos el archive main.cf
vi /etc/postfix/main.cf
Agregamos las siguientes lineas al final
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
grabamos el archivo y recargamos la configuracion del POSTFIX.
postfix reload
Como gmail usa SSL, necesitamos un certificado SSL, así que creamos uno propio, el cual será usado por el TLS
mkdir /etc/postfix/tls
cd /etc/postfix/tls
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
Dejar el 'challenge password' vacio:
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Agregar las siguientes lineas en el archivo /etc/postfix/main.cf:
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/tls/smtpd.key
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
Reiniciamos los servicios:
service saslauthd restart
service postfix restart
Para que inicien en el boot:
chkconfig postfix on
chkconfig saslauthd on
Para Revizar los logs de nuestro servicio de correo usamos:
tail -f /var/log/maillog
Abre otra consola y envia un correo para provar que esta funcionando correctamente.
mail destinatario@dominio.com
Subject: test
hello
.
Cc:
Luego de esto en el log debe salir algo parecido a esto y lo que importa es la palabra SENT:
elastix postfix/smtp[3257]: 08EAE21566: to=
Y Ya esta!!
miércoles, 4 de mayo de 2011
Problema del NAT en Asterisk
Hace un tiempo me encontre con el siguiente problema en una de mis instalaciones donde el cliente solicitaba una extensión por fuera de la red Local.
estaba usando X-lite mediante una cuenta SIP. La extensión se registraba OK.
Luego intentaba hacer una llamada y al establecerce no se escuchaba nada, al cabo de un rato la llamada se colgaba sola.
En un principio, todo parece ir bien, se inicia la llamada, se escucha el tono, y suena el teléfono de destino. El problema viene al descolgar, es decir, cuando el audio se establece entre los participantes de la conversación. En este punto, pueden pasar 2 cosas: que el llamante lo escuche a su interlocutor o que no haya audio en absoluto.
El protocolo SIP solo lleva la señalización de la llamada, mientras que el tráfico de audio (RTP) se intenta llevar a cabo de extremo a extremo. El problema viene por que el puerto al que se manda el audio es aleatorio. El router es capaz de dirigir correctamente la señalización, pero es incapaz de saber si el tráfico RTP es de esa llamada, y no sabe a donde mandarlo (debería mandárselo al mismo que la señalización). Como consecuencia, el audio no fluye correctamente entre los 2 interlocutores.
La solucion es Simple..
Instalé el Softphone Zoiper Mediante una Cuenta IAX y problema solucionado.
estaba usando X-lite mediante una cuenta SIP. La extensión se registraba OK.
Luego intentaba hacer una llamada y al establecerce no se escuchaba nada, al cabo de un rato la llamada se colgaba sola.
En un principio, todo parece ir bien, se inicia la llamada, se escucha el tono, y suena el teléfono de destino. El problema viene al descolgar, es decir, cuando el audio se establece entre los participantes de la conversación. En este punto, pueden pasar 2 cosas: que el llamante lo escuche a su interlocutor o que no haya audio en absoluto.
El protocolo SIP solo lleva la señalización de la llamada, mientras que el tráfico de audio (RTP) se intenta llevar a cabo de extremo a extremo. El problema viene por que el puerto al que se manda el audio es aleatorio. El router es capaz de dirigir correctamente la señalización, pero es incapaz de saber si el tráfico RTP es de esa llamada, y no sabe a donde mandarlo (debería mandárselo al mismo que la señalización). Como consecuencia, el audio no fluye correctamente entre los 2 interlocutores.
La solucion es Simple..
Instalé el Softphone Zoiper Mediante una Cuenta IAX y problema solucionado.
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!!
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.
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.
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
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
Suscribirse a:
Entradas (Atom)