Сервер видеоконференций на базе Openmeetings

Сервер видеоконференций на базе Openmeetings

Построить систему, которая позволяла бы: организовать видео конференцию (одновременное общение 2-х и более пользователей) по интернет каналам. Желательно что бы клиентская часть была кросплатформенная, а серверная - opensource.

В процесе поисков неоднократно читал о том что у Adobe есть похожая платформа, но, естественно, платная. Как оказалось и тут есть место opensouce, одним из таких проектов оказался Openmeetings. Java приложение с доступом через вэб интерфейс (используется Flash). С кучей приятных мелочей, полностью кроссплатформеный, не требует никаких специальных клиентских приложений, обработка идет на стороне клиента, короче то что надо.

Ставим…

 # cd /usr/ports/java/jdk16
# make install

Тут придется выполнить много ручных действий по скачиванию исходников. Если возникают трудности ТУТ есть очень подробная инструкция по установке.

Дальше ставим MYSQL, по любимому рецепту или просто:

# cd /usr/ports/databases/mysql51-server/
# make install
# cd /usr/ports/databases/mysql51-scripts/
# make install
# echo 'mysql_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/mysql-server start
# /usr/local/bin/mysql_secure_installation

Дальше заводим пользователя и создаем БД:

# mysql -p

mysql> CREATE USER 'openmeetings'@'localhost'
IDENTIFIED BY 'secret_password';

mysql> GRANT USAGE ON *.* TO 'openmeetings'@'localhost'
IDENTIFIED BY '
secret_password';

mysql> CREATE DATABASE IF NOT EXISTS `openmeetings`;

mysql> GRANT ALL PRIVILEGES ON `openmeetings`.*
TO 'openmeetings'@'localhost';

Дальше — дополнительные компоненты для импорта документов и картинок:

# cd /usr/ports/graphics/swftools
# make install
# cd /usr/ports/graphics/ImageMagick
# make install
# cd /usr/ports/editors/openoffice.org-3
# make install

Нужно так же запустить openoffice в качестве демона, что бы с помощью него openmeetings мог конвертировать импортируемые документы. Для этого используется такого вида команда:

/usr/local/openoffice.org-3.0.1/openoffice.org3/program/soffice.bin \
-headless -nofirststartwizard \
-accept="socket,host=localhost,port=8100;urp;StarOffice.Service"

И, наконец, скачиваем с официального сайта дистрибутив Openmeetings, например, для версии 0,8:

# fetch http://openmeetings.googlecode.com/files/openmeetings_0_8_rc2.zip
# unzip openmeetings_0_8_rc2.zip -d .

Нужна будет только папка red5, а та вторая с длинным_и_не_понятным_названием не пригодится. Редактируем red5/webapps/openmeetings/conf/hibernate.cfg.xml. Тут надо поменять настройки, которые касаются подключения к БД:

<!-- User / Password -->
<property name="connection.username">openmeetings</property>
<property name="connection.password">secret_password</property>

<!-- Database Settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="connection.url">jdbc:mysql://localhost/openmeetings?\
autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true\
&amp;characterEn

Жирным выделены изменения, которые я внес в стандартный конфиг (Обращаю внимание на имя БД!!). В общем-то, для начала таких изменений достаточно. Кстати, в папке red5/webapps/openmeetings/conf и в файле red5/webapps/openmeetings/config.xml есть очень много опций с которыми не лишне будет ознакомится.

Ну, поехали:

# cd /путь/к/red5
# bash red5.sh

Тут немного подождать надо, пока не пойдут строчки с номерами портов. Тогда можно зайти на http://IP_сервера:5080/ . Если есть страничка с видяшкой, значит все ОК. Переходим к мастеру установки, http://IP_сервера:5080/openmeetings/install . Тут все просто, просто заполняем поля… И в конце концов можно посмотреть что вышло http://IP_сервера:5080/openmeetings/.

Для корректной работы необходимо обеспечить доступ к серверу на TCP порты 1935, 5080, 8088.

В общем, система себя показала с хорошей стороны, стабильно работает, не виснет, богатые возможности по проведению совещаний. Неоспоримым плюсом при использовании в Интернет — низкая нагрузка на канал. Небольшие тесты показали что каждый пользователь с видео требует пропускной способности примерно 64 кБ/с. Из недостатков — высокая нагрузка на ЦП, так как кадый клиент декодирует видеопотоки самостоятельно. Через сервер видеопотоки не ходят, так что тут особых требований к железу не предьявляется.

Надо будет еще настрогать автозапуск всего этого щастья и подетальнее разобратся в настройках, а на сегодня - все.