Conferência no Asterisk – Meetme Realtime

ConferenciaMeetme é uma aplicação do Asterisk que nos permite criar salas de conferências de até 32 participantes, as conferências podem ser privadas através de senha ou então publicas. Entre outras caracteristicas a aplicação Meetme nos permite administra-la através de comandos, tais como: Kick User, Mute e Unmute User dentre outros. Por padrão as salas de conferência do Asterisk são criadas através do arquivo meetme.conf, mas se queremos montar aplicações Web que administram estas salas de forma dinamica podemos colocar os parametros de configuração do arquivo meetme.conf dentro de um banco de dados MySQL utilizando o conector ODBC para Realtime.

Nota: O pacote zaptel ou dahdi é exigido para a compilação de algumas aplicações do ASTERISK, por exemplo, o meetme(). Se você compilou o ASTERISK antes do Zaptel ou Dahdi, você deverá compilá-lo novamente para que as essas aplicações estejam disponíveis.

Primeiramente iremos começar com o banco de dados.

Na linha de comando, digite:

mysqladmin create asteriskmeetme -u root -p

Acessar o cliente MySql através do prompt de comando:

mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 78xx

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

mysql> use asteriskmeetme
Database changed

Criamos a tabela meetme:

mysql> CREATE TABLE `meetme` (
`confno` char(80) NOT NULL default ’0′,
`starttime` datetime NOT NULL default ’0000-00-00 00:00:00′,
`endtime` datetime default NULL,
`pin` char(20) default NULL,
`opts` char(100) default NULL,
`adminpin` char(20) default NULL,
`adminopts` char(100) default NULL,
`members` int(11) NOT NULL default ’0′,
`maxusers` int(11) NOT NULL default ’0′,
PRIMARY KEY  (`confno`,`starttime`)
);

Query OK, 0 rows affected (0.01 sec)

Daremos os  privilegios para a base de dados asteriskmeetme (troquem “user” e “senha” como preferir”):

mysql> GRANT ALL PRIVILEGES ON asteriskmeetme.* TO ‘user’@'localhost’ IDENTIFIED BY ‘senha’;
Query OK, 0 rows affected (0.00 sec)

Inserindo alguns dados na tabela:

mysql> INSERT INTO meetme (confno,pin,adminpin,members,starttime,endtime) VALUES (“700O”,”1234″,”2345″,”0″,”2009-11-16 19:00″,”2009-11-16 21:00″);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO meetme (confno,pin,adminpin,members,starttime,endtime) VALUES (“7001″,”1234″,”2345″,”0″,”2009-11-20 20:00″,”2009-11-20 20:30″);
Query OK, 1 row affected (0.00 sec)

saindo do cliente mysql:

mysql> quit
Bye

Com isso temos programado as conferencias:

  • 7000 inicio 7 da noite do dia 16 de setembro de 2009 e terminará as 9 da noite do mesmo dia;
  • 7001 inicio 7 da noite do dia 20 de setembro de 2009 e terminará as 8:30 da noite do mesmo dia;

Agora temos que configurar Odbc e Asterisk:

nano /etc/odbc.ini

[asterisk-meetme]
Description         = MySQL connection to ‘asteriskmeetme’ database
Driver                  = MySQL
Database            = asteriskmeetme
Server                 = localhost
UserName            = user
Password            = senha
Port                = 3306
Option              = 3

Salvamos as alterações.

Modificamos o arquivo res_odbc.conf e adicionamos estas linhas:

[asterisk]
enabled = yes
dsn = asterisk-meetme
username = user
password = senha
loguniqueid = yes
pre-connect = yes

Salvamos as alterações.

Modificamos o arquivo extconfig.conf

nano /etc/asterisk/extconfig.conf

e colocamos essa linha:

meetme => odbc,asterisk,meetme

Agora modificamos o dialplan:

nano /etc/asterisk/extensions.conf

em um contexto de sua preferência colocamos:

exten => _700X,1,Meetme(${EXTEN})
exten => _700X,n,Hangup

Reiniciamos o Asterisk:

/etc/init.d/asterisk restart

Tendo programado nossa conferência chamamos a extensão 7000 para verificar se tudo esta funcionando como deveria.

Related Posts with Thumbnails

Deixe um comentario