Hoy en teoría tenía que hablar de Web-Meetme, un modulo con interfaz grafica para asterisk que permite configurar y monitorear las conferencias. Desafortunadamente a la hora de compilar el modulo app_cbmysql me sale un error y hasta ahora no he podido resolverlo. Pues decidí abordar el tema de la configuración de MeetMe en realtime. Si no queremos depender del archivo de configuración meetme.conf podemos elegir guardar la configuración de las distintas conferencias en una base de datos MySQL con el conector ODBC para el realtime.
Vamos a empezar. Primero creamos la base de datos:
mysqladmin create asteriskmeetme -u root -p
Entramos en el cliente mysql:
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 47897
Server version: 5.1.37 MySQL Community Server (GPL) by Remi
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql> use asteriskmeetme
Database changed
creamos la tabla meetme:
mysql> CREATE TABLE `meetme` (
`confno`char(80)NOTNULLdefault'0',
`starttime`datetimeNOTNULLdefault'0000-00-0000:00:00',
`endtime`datetimedefaultNULL,
`pin`char(20)defaultNULL,
`opts`char(100)defaultNULL,
`adminpin`char(20)defaultNULL,
`adminopts`char(100)defaultNULL,
`members`int(11)NOTNULLdefault'0',
`maxusers`int(11)NOTNULLdefault'0',
PRIMARYKEY(`confno`,`starttime`)
);
Query OK, 0 rows affected (0.01 sec)
configuramos los privilegios para la base de datos asteriskmeetme (cambien “fulano” y “contraseña” a su gusto”):
mysql> GRANT ALL PRIVILEGES ON asteriskmeetme.* TO 'fulano'@'localhost' IDENTIFIED BY 'contraseña';
Query OK, 0 rows affected (0.00 sec)
Insertamos algunos datos en la tabla meetme
mysql> INSERT INTO meetme (confno,pin,adminpin,members,starttime,endtime) VALUES ("500O","1234","2345","0","2009-09-24 19:00","2009-09-24 20:00");
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO meetme (confno,pin,adminpin,members,starttime,endtime) VALUES ("5001","1234","2345","0","2009-09-25 19:00","2009-09-25 20:00");
Query OK, 1 row affected (0.00 sec)
y salimos del cliente:
mysql> quit
Bye
Con estos datos hemos programado dos conferencias:
Ahora pasamos a la configuración de odbc y asterisk:
nano /etc/odbc.ini
pegamos estas líneas:
[asterisk-meetme]
Description = MySQL connection to 'asteriskmeetme' database
Driver = MySQL
Database = asteriskmeetme
Server = localhost
User = fulano
Password = contraseña
Port = 3306
Option = 3
Guardamos los cambios.
Modificamos el archivo res_odbc.conf y añadimos estas líneas:
[asterisk]
enabled = yes
dsn = asterisk-meetme
username = fulano
password = contraseña
loguniqueid = yes
pre-connect = yes
guardamos los cambios.
Modificamos el archivo extconfig.conf
nano /etc/asterisk/extconfig.conf
y pegamos esta línea
meetme => odbc,asterisk,meetme
Ahora modificamos el dialplan:
nano /etc/asterisk/extensions.conf
y en nuestro contexto preferido ponemos:
exten => _500X,1,Meetme(${EXTEN})
exten => _500X,n,Hangup
Nos aseguramos que en el archivo meetme.conf el parametro schedule esté en yes
nano /etc/asterisk/meetme.conf
schedule=yes
Reiniciamos Asterisk:
/etc/init.d/asterisk restart
A la hora que hemos programado la conferencia llamamos la extensión 5000 para ver si todo está funcionando como debe.
Alguna locuciones no extixten en las fuentes de asterisk. Pueden descargar las en inglés y copiarlas en la carpeta: /var/lib/asterisk/sounds/en