8/11/2013

Configuración basica de Asterisk


Ahora que tenemos instalado Asterisk, podemos hacer que nuestro sistema  funcione correctamente. Antes de continuar si no tienes los conocimientos básico de Asterisk es recomendable leer los capítulos anteriores: Instalación de Asterisk o Asterisk: software dependencias.


Deshabilitando SELinux


Esta sección   aplica unicamente para los usuarios de CentOS, si esta utilizando Ubuntu puede pasar al siguiente tema.

En CentOS, el sistema de seguridad, Security-Enhanced Linux (SELinux)esta habilitado por defecto, y a menudo se interpone en el camino de Asterisk. Algunas veces son problemas muy sutiles, otras veces nos pasamos una buena cantidad de hora buscándole la solución a un problema, al final con solo deshabilitar SELinux problema resuelto. Hay muchos artículos en Internet que describe la correcta configuración de SELinux, pero para el caso vamos a deshabilitarlo.

Deshabilitar SELinux no es la situación ideal, pero la configuración de SELinux esta fuera del alcance de este capitulo, ya que tendríamos que dedicar un tema solo para SELinux.

Para desactivar temporalmente SELinux, tal vez con el fin de verificar si un problema que está teniendo está siendo causado por SELinux, ejecute el comando siguiente como root: 

$ sudo echo 0 > /selinux/enforce

Puedes volver habilitar SELinux con el mismo comando, pero remplazando el 0 con un 1. 

$ sudo echo 1 > /selinux/enforce

Para deshabilitar SELinux permanentemente, modifique el archivo /etc/selinux/config. 

$ cd /etc/selinux/
$ sudo vim config


Cambie la opción SELinux de enforcing a disabled.

Como alternativa, puede cambiar el valor enforcing a permissive, que simplemente registra los errores en lugar de aplicar la política. La imagen siguiente muestra como debe quedar el archivo.


 Para que los cambios se apliquen debe reiniciar su sistema, ejecute este comando en Shell de linux.

$ sudo reboot

Configuración Inicial


Con el fin de obtener que Asterisk funcionando limpiamente, necesitamos crear algunos archivos de configuración. Podríamos instalar potencialmente los archivos de ejemplo que vienen con asterisk (ejecutando el comando make samples) y modificar los archivos de acuerdo nuestras necesidades, pero el comando make samples instala muchos archivos de ejemplo, y muchos módulos que nunca usaremos. 

Queremos limitar los módulos que estamos cargando, y también creemos que es más fácil de entender la configuración Asterisk si crea los archivos de configuración desde cero, así que vamos a crear nuestro propio conjunto mínimo de archivos de configuración. 

La primera cosas que necesitamos hacer (asumiendo que este no exista) es crear el directorio /etc/asterisk, que es donde ubicaremos nuestros archivos de configuración:

$ sudo mkdir /etc/asterisk/
$ sudo chown
pbxsncvoip:
pbxsncvoip /etc/asterisk/ 

Ahora vamos a configurar todos los archivos que se requieren para conseguir un sistema Asterisk simple y en funcionamiento. 

Los archivos indications.conf y asterisk.conf 

El primer archivo necesario es el indications.conf, este archivo contiene información sobre como detectar los diferentes tonos telefónicos para diferentes países. Hay un perfecto archivo de ejemplo que podemos usar en los fuentes de Asterisk, así que vamos a copiar en nuestro directorio /etc/asterisk/.

$ cp ~/src/asterisk-complete/asterisk/1.8/configs/indications.conf.sample \
/etc/asterisk/indications.conf


Porque estamos corriendo Asterisk como no root, hay que decir a Asterisk que usuario puede ejecutarlo. Esto se hace con el archivo asterisk.conf. Podemos copiar la versión de ejemplo desde los fuentes de Asterisk para el directorio /etc/asterisk.

$ cp ~/src/asterisk-complete/asterisk/1.8/configs/asterisk.conf.sample \
/etc/asterisk/asterisk.conf 


El  archivo asterisk.conf contienes muchas opciones que hablaremos de ellas mas adelante, por el momento solo necesitamos hacer algunos cambios. Casi al final de la seccion [options], hay dos opciones que necesitamos habilitar: runuser y rungroup.

Debemos abrir el archivo asterisk.conf con un editor tal nano o vim: quite el modo de comentario de la líneas runuser y rungroup, y modifique cada una de las líneas para que contengan pbxsncvoip como el valor asignado. Abrir el archivo /etc/asterisk/asterisk.conf con el editor vim:

$ vim /etc/asterisk/asterisk.conf 

Después modificamos el archivo descomentando las dos líneas que inician con runuser y rungroup, modificamos el valor que tiene asignado para pbxsncvoip.

runuser=pbxsncvoip. 
rungroup=pbxsncvoip.

Ahora tenemos todos los archivos de configuración necesarios para iniciar una versión muy mínima de Asterisk. Para hacer que  Asterisk se inicie en primer plano ejecutamos:

$ /usr/sbin/asterisk -cvvv

Asterisk se iniciará satisfactoriamente sin errores ni advertencia, y le presentara su interfaz de línea de comando Asterisk (CLI). En este punto no hay módulos, funcionalidad mínima del core o núcleo, y no hay módulos de canales con los cuales nos podamos comunicar, pero Asterisk esta arriba y funcionando.

Ejecutando el comando module show en el CLI de Asterisk le muestra que no hay modulo externo cargado aun.
 

Podemos detener Asterisk con el comando core stop now desde la linea de comando (CLI).

CLI> core stop now .

Modules.conf

Esta este punto nos las hemos arreglado para conseguir que Asterisk funciones, pero no es capaz de hacer nada útil todavía. Para decirle Asterisk cuales módulos queremos que se carguen, necesitaremos un archivo llamado modules.conf.

Cree el archivos modules.conf en su directorio /etc/asterisk con el comando siguiente (remplace >> con > si lo que desea es sobrescribir un archivo existen):

$ cat >> /etc/asterisk/modules.conf 

Escriba las líneas siguientes y presione Ctrl + D en una nueva línea cuando haya terminado

; El archivo modules.conf , usado para definir cuales módulos Asterisk puede cargar (o
; cuales no).
;
[modules]
autoload=yes
 


La línea autoload=yes le dice a Asterisk que cargue automáticamente todos los módulos localizado en el directorio /usr/lib/asterisk/modules/.

Con el nuevo archivo modules.conf en su lugar, cuando Asterisk inicia una gran cantidad de modulos se cargan. Usted puede verificar esto al iniciar Asterisk y ejecutar el comando module show::


Ahora tenemos muchos módulos cargados, y muchas aplicaciones de dialplan adicionales y funciones a nuestra disposición. 



No necesitamos todos estos recursos cargados, por lo tanto, le vamos a decir a Asterisk que no cargue los módulos que no necesitamos en este momento. Modifique su archivo modules.conf para que contenga las líneas siguientes noload, para obviar la carga de los módulos identificados:

; Modulos de  Recursos
 
       noload => res_speech.so
       noload => res_phoneprov.so
       noload => res_ael_share.so
       noload => res_clialiases.so
       noload => res_adsi.so

  ; Módulos PBX  

 
      noload => pbx_ael.so
      noload => pbx_dundi.so
   
  ; Modulos de Canales 

 
      noload => chan_oss.so
      noload => chan_mgcp.so
      noload => chan_skinny.so
      noload => chan_phone.so
      noload => chan_agent.so
      noload => chan_unistim.so
      noload => chan_alsa.so

  ; Modulos de Aplicaciones

 
     noload => app_nbscat.so
     noload => app_amd.so
     noload => app_minivm.so
     noload => app_zapateller.so
     noload => app_ices.so
     noload => app_sendtext.so
     noload => app_speech_utils.so
     noload => app_mp3.so
     noload => app_flash.so
     noload => app_getcpeid.so
     noload => app_setcallerid.so
     noload => app_adsiprog.so
     noload => app_forkcdr.so
     noload => app_sms.so
     noload => app_morsecode.so
     noload => app_followme.so
     noload => app_url.so
     noload => app_alarmreceiver.so
     noload => app_disa.so
     noload => app_dahdiras.so
     noload => app_senddtmf.so
     noload => app_sayunixtime.so
     noload => app_test.so
     noload => app_externalivr.so
     noload => app_image.so
     noload => app_dictate.so
     noload => app_festival.so

  
Hay, por supuesto, otros módulos que se puede quitar, y otros que pueden ser de gran utilidad, por lo que no dude en modificar este archivo como desee. Idealmente, solo se deben cargar los módulos que son necesarios para que el sistema funciones correctamente.

musiconhold.conf

El archivo musiconhold.conf define la clase de música en espera en su sistema Asterisk. Mediante la definición de distintas clases, es posible especificar distinta música de espera para ser utilizado en varios situaciones, tales como diferentes anuncios que se reproducirán mientras se esta en una cola, o diferente música de espera si tiene varias centralitas alojadas en el mismo sistema.

Por ahora, solo crearemos la clase por defecto de música en espera, para que podamos tener, como mínimo, alguna música de espera, cuando ponemos la persona que llama en espera. 



Hemos creado un archivo musiconhold.conf y definimos nuestra clase de música en espera
[default]

Como siempre te recomiendo seguir estudiando y practicando, en el siguiente enlace encontraras una buena documentación que recomiendo estudiar. 
 


Aprende a Implementar Asterisk paso a paso y en español
Libro: Asterisk PBX: Instalación, implementación y puesta en marcha.
DESCARGALO AHORA