Openmeetings 2.0: Asterisk integración.

Terminada la instalación de OpenMeetings 2.0 se inicia con la instalación de Asterisk. Como la integración se apoya a la aplicación Meetme (conferencias audio) hay que instalar DAHDI:

yum install kernel-devel libxml2-devel

DAHDI LINUX

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.6....

tar -xf dahdi-linux-2.6.1.tar.gz

cd dahdi-linux-2.6.1

make

make install

 

DAHDI TOOLS

cd ..

wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.6....

tar -xf dahdi-tools-2.6.1.tar.gz

cd dahdi-tools-2.6.1

./configure

make

make install

make config

Se inicia DAHDI:

/etc/init.d/dahdi start

Se continua con Asterisk:

cd ..

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.20.1.t...

tar -xf asterisk-1.8.20.1.tar.gz

cd asterisk-1.8.20.1

./configure

make menuselect

Como la integración se basa en Asterisk Realtime se activa el modulo para MySQL:

Captura

Se guardan los cambios y se compila:

make

make install

make samples

make config

Terminada la instalación se configura Asterisk para el Realtime con MySQL. Las tablas están presentes en la base de datos de OpenMeetings y son:

  • sipusers
  • meetme
  • extensions

nano /etc/asterisk/res_config_mysql.conf

al final del archivo se añade este bloque:

[general]
dbhost = 127.0.0.1
dbname = openmeetings
dbuser = openmeetings
dbpass = sesamo
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock

Se guardan los cambios y se modifica el archivo extconfig.conf

nano /etc/asterisk/extconfig.conf

Al final del archivo se añaden las siguientes lineas:

extensions => mysql,general,extensions
meetme => mysql,general,meetme
sippeers => mysql,general,sipusers

Se guardan los cambios y se inicia Asterisk:

/etc/init.d/asterisk start

se entra en la consola de Asterisk:

asterisk –rvvvvvvvvvvvvvv

Y se averigua que la conexión en realtime esté funcionando correctamente:

CLI> realtime mysql status

general connected to openmeetings@127.0.0.1, port 3306 with username openmeetings for 60 seconds.

En otra ventana terminal se entra en el cliente mysql:

mysql -u root -psesamo

se trabaja con la base de datos openmeetings

mysql> use openmeetings

Se crean dos usuarios SIP:

mysql> insert into sipusers (allow, context, disallow, host, name, secret, type) values ('ulaw;alaw', 'rooms', NULL,'dynamic','test1','12345','friend');

mysql> insert into sipusers (allow, context, disallow, host, name, secret, type) values ('ulaw;alaw' , 'rooms' , NULL, 'dynamic' , 'test2', '12345', 'friend');

Se crea el dialplan en relatime:

mysql> insert into extensions (context, exten, priority, app, appdata) values ('rooms', '400', '1', 'MeetMe', '400,dM');

mysql> insert into extensions (context, exten, priority, app, appdata) values ('rooms', '400', '2', 'Hangup', '()');

Por ultimo se crea una sala de conferencia:

mysql> insert into meetme (confno, adminpin) values ('400', '12345');

Se sale de MySQL y se configura el dialplan:

nano /etc/asterisk/extensions.conf

al final del archivo se añade:

[rooms]
switch => realtime

exten => _400X!,1,MeetMe(${EXTEN},dM)
same => n,Hangup

[rooms] es el contexto a que tienen acceso las extensiones configuradas. La primera línea le dice a Asterisk de buscar el dialplan para este contexto en la base de datos. El segundo bloque es para las conferencias que se crearán en Openmeetings y donde los usuarios podrán acceder para participar. Se guardan los cambios y se instala Red5Sip che se encargará de la conexión entre Asterisk y Openmeetings:

cd /opt

svn co http://red5phone.googlecode.com/svn/branches/red5sip/

se entra en la carpeta creada:

cd red5sip

se instala ant para compilarlo:

yum install ant*

y se compila:

ant –v

Muy probablemente saldrá este error:

[javac] /opt/red5sip/src/java/org/zoolu/tools/Base64.java:133: error: unmappable character for encoding UTF8
    [javac]          // per come � costruita la codifica a base64
    [javac]                      ^
    [javac] /opt/red5sip/src/java/org/zoolu/tools/Base64.java:135: error: unmappable character for encoding UTF8
    [javac]          // il resto pu� essere 0, 2 o 3
    [javac]                        ^
    [javac] /opt/red5sip/src/java/org/zoolu/tools/Base64.java:180: error: unmappable character for encoding UTF8
    [javac]       System.out.println("messaggio decodificato �: "+strdecodificato);
    [javac]                                                  ^
    [javac] [total 981ms]
    [javac] 3 errors

Eso porque en el archivo hay caracteres no permitidos (vocales con acento italiano). Se corrige de la siguiente manera:

nano /opt/red5sip/src/java/org/zoolu/tools/Base64.java

Se borran las lineas 133 y 135 (son comentarios) y se modifica la ultima para que quede:

System.out.println("messaggio decodificato: "+strdecodificato);

Se guardan los cambios y se compila otra vez:

ant -v

Se configura:

nano settings.properties

red5.host=127.0.0.1
red5.codec=asao
sip.obproxy=127.0.0.1
sip.phone=test1
sip.authid=test1
sip.secret=12345
sip.realm=asterisk
sip.proxy=127.0.0.1
rooms.forceStart=no
rooms=1,2,3

Los datos:

  • red5.host: IP OpenMeetings
  • sip.obproxy: IP Asterisk PBX
  • sip.phone: extensión configurada
  • sip.authid. nombre de la extensión para la autentificación
  • sip.secret: contraseña de la extensión
  • sip.real: predefinido Asterisk
  • sip.proxy: IP Asterisk PBX
  • rooms: Los ID de las conferencias de OpenMeetings donde se quiere utilizar red5sip. Los ID aparecen en esta pagina de Openmeetings:

Captura

Para iniciar red5sip como servicio, hay que instalar JSVC:

yum install jakarta-commons-daemon-jsvc

Se crea un enlace simbólico de red5sip.sh en la carpeta de los servicios:

ln -s /opt/red5sip/red5sip.sh /etc/init.d/red5sip

Se cambian los permisos:

chmod a+x /etc/init.d/red5sip

Ahora hay que modificar un parámetro en Openmeetings. Se entra en la pagina Administración –> Configuración y se modifica el parámetro indicado poniéndolo en yes:

Captura

Ahora se puede iniciar red5sip que entrará como cliente a las con numero 400 más los ID presentes en el parametro rooms del settings.properties +1:

/etc/init.d/red5sip start

En la consola de Asterisk:

-- Executing [4002@rooms:1] MeetMe("SIP/test1-0000001f", "4002,dM") in new stack
== Using SIP RTP CoS mark 5
  -- Executing [4004@rooms:1] MeetMe("SIP/test1-00000020", "4004,dM") in new stack
== Using SIP RTP CoS mark 5
  -- Executing [4003@rooms:1] MeetMe("SIP/test1-00000021", "4003,dM") in new stack

Entrando en unas de las tres salas de OpenMeetings:

Captura

El usuario SIP Transport, es el cliente red5sip que enviará el audio de la conferencia a cada usuario que desde cualquier softphone llamará el numero de la conferencia. Desde X-Lite se llama, en este caso, la extensión 4003 y se escuchará la conferencia de OpenMeetings. Otra funcionalidad es la posibilidad de llamar (configurando un proveedor en el contexto rooms) cualquier numero de teléfono y cuando el usuario conteste, añadirlo a la conferencia:

Captura

La calidad del audio que llega a la extensión SIP no es todavía muy buena (por  lo menos en las pruebas que he hecho), pero seguramente los desarrolladores la irán mejorando.

Por fin OpenMeetings con Asterisk!!!

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Openmeetings 2.0: Asterisk integración." Suscribirse a VozToVoice - Todos los comentarios