En este howto vamos a ver como conectar asterisk con una base de datos relacional, desde la versión 1.8.11 asterisk recomienda el uso de  odbc para las conexiones con base de datos. Usaré mysql por ser la base de datos más extendida en una máquina debian aunque los pasos son los mismos que en ubuntu o linux mint al ser derivados, con muy pocos cambios también podremos usar otras bases de datos como PostgreSQL o Microsoft SQL. Tener integrado asterisk con una base de datos es uno de los pasos más importantes para poder crear clusters o trabajar con aplicaciones externas. Voy a dividir el howto en tres posts, en el primero vamos a instalar la base de datos mysql y configurar una base de datos desde consola para luego conectarnos a ella desde asterisk. En el segundo post trataremos como instalar el conector odbc y configurar asterisk para poder usarlo y en el tercer post veremos como usar asterisk para hacer consultas sql.

Primer post: Instalando y configurando mysql

Instalamos el servidor mysql usando el gestor de paquetes apt. En este caso uso sudo para la instalación pero podéis omitirlo si usáis directamente root.
$ sudo apt-get install mysql-server
 Need to get 24.0MB of archives.
 After this operation, 60.6MB of additional disk space will be used. Do you want to continue [Y/n]? y
Durante la instalación nos pedirá la clave del usuario root, es importante que pongamos una contraseña segura.
Iniciamos el servidor mysql:
$ sudo service mysqld start
Es recomendable asegurar nuestra instalación, para ello usamos un script que trae el paquete de mysql incluido:
sudo /usr/bin/mysql_secure_installation
Nos pedirá nuestra clave de root y luego nos irá haciendo preguntas para asegurar nuestro mysql. Las respuestas a las preguntas que nos va indicando el script las dejamos en la opción por defecto. A partir de tener instalado y securizado nuestro mysql entramos desde consola con el siguiente comando:
mysql -u root -p
Enter password:
Tendremos que indicar nuestra clave de root y entraremos en la consola del servidor mysql.
Ahora vamos a crear un usuario llamado asterisk usando el comando CREATE USER:
mysql> CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'clave_super_secreta';
Query OK, 0 rows affected (0.00 sec)
Creamos una base de datos llamada asterisk:
mysql> CREATE DATABASE asterisk; Query OK, 1 rows affected (0.00 sec)
Ahora  asignamos permisos al usuario para poder usar la base de datos:
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'localhost'; Query OK, 0 rows affected (0.00 sec)
Salimos de la sesión de root y volvemos a entrar con el usuario asterisk indicando al final la base de datos asterisk para comprobar que todo funciona correctamente:
mysql> exit
 Bye
 # mysql -u asterisk -p asterisk
Enter password:
Escribimos la clave del usuario asterisk y si todo ha ido bien debemos de ver la consola de mysql:
mysql>
mysql> exit 
Bye
En el próximo post veremos como instalar y configurar odbc para el uso con asterisk usando la base de datos que hemos creado en mysql.