Diferencia entre revisiones de «Web-MeetMe»

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Línea 40: Línea 40:
  
 
{{Comando|cd /usr/src}}
 
{{Comando|cd /usr/src}}
{{Comando|wget http://sourceforge.net/projects/web-meetme/files/latest/download -O web-meetme.tgz
+
{{Comando|wget http://sourceforge.net/projects/web-meetme/files/latest/download -O web-meetme.tgz}}
  
 
Las descomprimimos:
 
Las descomprimimos:

Revisión del 13:03 7 jun 2012

Format.png Formatear
Esta página necesita ser editada para cumplir los requisitos del wiki.
Puedes revisar todas las páginas sin suficiente formato en este enlace.
Alert.png To Do
Esta página necesita ser completada.
Puedes revisar todas las páginas por completar en este enlace.


La aplicación Web-MeetMe Control, esta diseñada, para ofrecer una interfaz gráfica de gestión completa, para salas de conferencias MeetMe integradas como Asterisk Realtime, para su gestión dínamica en tiempo real.

Logo Asterisk

Principios Básicos

Esta aplicación fue diseñada por Areski Belaid, mismo creador de la aplicación CDR-Stats y amplio colaborador de la empresa Star2Billing Inc., en 2005, y basada en el lenguaje de programación PHP.

Con esta aplicación es posible, controlar, administrar y además programar de una forma sencilla, las salas de conferencias disponibles en el sistema MeetMe.

La introducción de esta aplicación trae las siguientes mejoras:

  • Impedimos la creación de salas de conferencias con la misma denominación que suelen derivar en problemas
  • Podemos programar salas de conferencias recurrentes en el tiempo
  • Podemos tomar el control de conferencias programadas en el futuro, y conferencias ya finalizadas
  • Existe una interfaz para llevar el control de las grabaciones de las conferencias de forma sencilla
  • Es posible habilitar funcionalidades adicionales de control, que no permite el sistema de administración por DTMF dentro de la sala, como la posibilidad de expulsar determinados participantes
  • También podemos extender el tiempo total de una conferencia si tenemos un tiempo máximo programado
  • Podemos realizar una llamada saliente, cuyo propósito sera interconectar a un llamado externo con nuestra conferencia, muy práctico si no queremos que el llamado consuma económicamente en su teléfono.

Instalación

El procedimiento de instalación del sistema Web-MeetMe es el siguiente

Preparación Inicial

En primer lugar, vamos a crear dentro de nuestro directorio raiz web, un directorio donde contener nuestra aplicación:

# sudo mkdir /var/www/web-meetme


# sudo chown asterisk:asterisk /var/www/web-meetme/


Es relativamente importante que al directorio lo llamemos web-meetme, porque el codigo PHP no esta demasiado adaptado para utilizar otros nombres de directorios, y tendremos que estar modificando luego en la configuración específica varios parámetros para que todo funcione bien.

Por otro lado, vamos a descargar las fuentes de Web-Meetme que luego traspasaremos a este directorio recien creado:

# cd /usr/src


# wget http://sourceforge.net/projects/web-meetme/files/latest/download -O web-meetme.tgz


Las descomprimimos:

# tar -xvf web-meetme.tgz


Y las copiamos al directorio en consecuencia:

# cp -r web-meetme/* /var/www/web-meetme/


Sistema de Base de Datos

Ahora tenemos que configurar la estructura de la base de datos donde se gestiona este sistema, para ello necesitamos crear una nueva base de datos, por ejemplo, si estamos utilizando MySQL:

# mysqladmin -u root -p create meetme


Y dentro de este, cargar la estructura de tablas de Web-Meetme:

Archivo: ./tablaswebmeetme
connect meetme;

CREATE TABLE `booking` (
`bookId` int(10) unsigned NOT NULL auto_increment,
`clientId` int(10) unsigned default '0',

`confno` varchar(30) default '0',
`pin` varchar(30) NOT NULL default '0',
`adminpin` varchar(30) NOT NULL default '0',
`starttime` datetime NOT NULL default '0000-00-00 00:00:00',
`endtime` datetime NOT NULL default '0000-00-00 00:00:00',
`dateReq` datetime NOT NULL default '0000-00-00 00:00:00',
`dateMod` datetime NOT NULL default '0000-00-00 00:00:00',
`maxUser` varchar(30) NOT NULL default '10',
`status` varchar(30) NOT NULL default 'A',
`confOwner` varchar(30) NOT NULL default ,
`confDesc` varchar(100) NOT NULL default
,
`adminopts` varchar(10) NOT NULL default ,
`opts` varchar(10) NOT NULL default
,
`sequenceNo` int(10) unsigned default '0',
`recurInterval` int(10) unsigned default '0',
`recordingfilename` varchar(128) default NULL,
PRIMARY KEY (`bookId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=145 ;

CREATE TABLE `cdr` (
`bookId` int(11) default NULL,
`duration` varchar(12) default NULL,
`CIDnum` varchar(32) default NULL,
`CIDname` varchar(32) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `notifications` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`book_id` int(11) NOT NULL default '0',
`ntype` char(10) default NULL,
`ndate` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `participants` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`book_id` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=782 ;

CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(100) NOT NULL default ,
`password` varchar(25) default NULL,
`first_name` varchar(50) default NULL,
`last_name` varchar(50) default NULL,
`telephone` varchar(15) default NULL,
`admin` varchar(5) NOT NULL default 'User',
PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;


Cargamos este fichero dentro de nuestra base de datos recien creada:

# mysql -u root -p meetme < tablaswebmeetme.sql


Y si queremos por seguridad, podemos otorgarle privilegios a un usuario diferente a "root" por ejemplo llamado Asterisk:

# mysql -u root -p meetme -e "mysql -u root -p -e "GRANT ALL PRIVILEGES ON meetme.* TO 'asterisk'@'localhost';"


Necesitamos crear un usuario que va a hacer las veces de administrador del sistema. Para esto tenemos varias opciones:

  • Podemos dejar el sistema abierto sin autetificación
  • Por otro lado si tenemos un servidor LDAP, podriamos sincronizarlo con nuestro sistema Web-Meetme como veremos más adelante
  • Tambien podemos utizar la tabla "user" que hemos creado anteriormente para utilizar un sistema de autentificación basado en SQL, para ello necesitamos crear un usuario administrador de la siguiente forma:
# mysql -u root -p meetme -e "INSERT INTO meetme.user (first_name, last_name, email, telephone, password, admin)
VALUES ('Asterisk', 'Administrator', 'admin@wikiasterisk.com', '912345678', 'asterisk', 'Admin');"


Considerar que en este caso el usuario será: admin@wikiasterisk.com y la contraseña será: asterisk

Configuración Asterisk Realtime

Ahora necesitaríamos configurar el sistema Asterisk Realtime considerando concretamente que la base de datos a la que tenemos que conectar se llamara meetme y la tabla donde están almacenadas las salas de conferencias, según hemos especificado en las anteriores consultas SQL, se llamara booking, por lo demas, todo es igual que cualquier otra implantación basada en Asterisk Realtime.

Configuración Específica

Ahora necesitamos configurar algunos parámetros especificos del sistema Web-Meetme. Por un lado tenemos que concretar los parámetros para que este pueda conectar a nuestra base de datos. Para ello editamos dentro de nuestro directorio raiz web, dentro del directorio donde hayamos instalado web-meetme (ejemplo /var/www/web-meetme), editamos el fichero dentro del directorio /lib/database.php:

Archivo: /var/www/web-meetme/lib/database.php
include_once 'DB.php';
$database = 'meetme';
$host = 'localhost';
$username = 'asterisk';
$password = 'asterisk';


Observamos que hace referencia a un fichero php, llamado DB.php. Este script hace referencia a las librerías PHP-PEAR con lo cual hemos de instalarlas:

# sudo aptitude install php-pear


# sudo pear install db


Con esto ya el sistema funcionaría bajo mínimos, sería recomendable introducir configuración adicional para que quede mejorado

Configuración Adicional

La mayor parte de la configuración adicional se realiza en el fichero dentro del directorio web de web-meetme/lib llamado defines.php. Sería recomendable cambiar los siguientes parámetros de configuración

Invitaciones Salientes

Es posible realizar llamadas de invitación como llamadas salientes. Para ello hay que editar el apartado:

Archivo: /var/www/web-meetme/lib/defines.php
//Outcall defaults
define ("CHAN_TYPE", "Local");
define ("OUT_CONTEXT", "extensiones");
define ("OUT_PEER", "");
define ("OUT_CALL_CID", "Invitación Meetme <102>");


  • Para CHAN_TYPE: Podemos elegir que tipo de canal será el que realizará la llamada, si dejamos Local, dejaremos que sea la marcación que este definida en el DialPlan la que decida.
  • Para OUT_CONTEXT: En este caso hemos elegido como contexto extensiones, pero puede ser cualquier contexto que decidamos, donde el sistema pueda dirigirse para mandar llamadas salientes.
  • Para OUT_PEER: Podemos definir concretamente que Par del CHAN_TYPE, sera el que realice la llamada directamente
  • Para OUT_CALL_CID: Podemos decidir el CallerID que tendrá la llamada de invitación cuando se ejecute.

Referencias


Véase también

Enlaces Externos