Построить систему, которая позволяла бы: организовать видео конференцию (одновременное общение 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&useUnicode=true&createDatabaseIfNotExist=true\
&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 кБ/с. Из недостатков — высокая нагрузка на ЦП, так как кадый клиент декодирует видеопотоки самостоятельно. Через сервер видеопотоки не ходят, так что тут особых требований к железу не предьявляется.
Надо будет еще настрогать автозапуск всего этого щастья и подетальнее разобратся в настройках, а на сегодня - все.