📜 ⬆️ ⬇️

Video conferencing based on open source software and Flash

In my previous article, I revealed how to build a video conferencing using the H.323 protocol based on free software and received quite a lot of feedback and criticism. In particular, quite a large number of readers questioned the fundamental importance of using such a complex signaling protocol for most tasks - indeed, in our time, video communication is needed not only to connect complex professional systems, such as Tandberg or Polycom, sometimes people need to “just stumble”, or the size of the organization in which communication is required is too small to implement something time consuming or expensive. Then flash technology comes to our aid and an excellent open source solution is the OpenMeetings project.

The main features of our video meeting system are as follows:
Provide multipoint video calling.
No need to install additional software on users' computers. The message with the server is carried out using a conventional browser.
Collaboration on the "white board" and with office documents.
Low hardware costs: the server on the Pentium 4 2GB RAM can handle at least 100 connections.
Guaranteed reliability: the service life of the server software to failure of at least 48 hours.
Integration with Microsoft products.
The ability to record a meeting.
Use of the address book of the enterprise under the LDAP protocol.
Sending invitations to meetings.
Instructions in Russian.

The server solution is based on the following components:
MySql - database;
Apache Tomcat - web server;
Red5 - Flash media server;
OpenOffice.org - documentation server;
Openmeetings is a web application written in java and scripting language.
Connection to the server is carried out using the http (port 5080), rtmp (port 1935), rtmpt (port 8088) protocols. In order for the server to be visible on the Internet, it is enough to push these three ports onto a computer behind a router or a firewall.
')
Of course, the easiest way is to give a link to the description of the installation of the already assembled code by default, the benefit is, and not to distract you more, but I decided to take a slightly more sophisticated path. Firstly, the installation descriptions, as in all such open source solutions, are not full of details, secondly, very often you need to make minimal changes at your own whim, or the wishes of the customer, and then simply installing the compiled code is indispensable. On the other hand, the project is quite large, and it is impossible to describe everything within one article, without turning it into a treatise, so today I will limit myself to the following - the article will describe how to get the source of the server, debug and collect the server code on my computer running Windows XP, as well as test it, and how to install it on the client’s server or your own, you will figure it out. The work on the client part is left as an elective.

Tools

So let's start with the necessary tools.

1.SVN client - TortoiseSVN 1.6.0
downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.0.15855-win32-svn-1.6.0.msi?download

2. Java application development environment - Eclipse IDE for Java Developers
www.eclipse.org/downloads

3.Java Development Kit
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u13-oth-JPR@CDS-CDS_Developer

4.Flash open source software server - Red5
www.red5.org/downloads/red5/0_8_RC2/setup-Red5-0.8.0-RC2.exe

5. Database - MySQL
dev.mysql.com/downloads/mysql/5.1.html#win32

6.Packing OpenMeetings with already assembled binary code (borrow the client part)
openmeetings.googlecode.com/files/openmeetings_0_7_rc2.zip

7.Sysinternals utilities package
download.sysinternals.com/Files/SysinternalsSuite.zip

Obtaining and compiling source code

First we get, and collect the server code. To do this, after installing TortoiseSVN, we will create a folder on the disk and make SVN Checkout of the latest (or some other) code revision there.
image

As a reference to the repository we indicate
  http://openmeetings.googlecode.com/svn/trunk/webapp/ 


Next, we put previously downloaded Eclipse, and in the workspace we create a new project, call it OpenMeetings, and import the file system there, specifying our newly created folder as the main one:
image

I’ll draw your attention to the fact that content is being imported, not the folder itself, in order to maintain compatibility with the directory structure in Eclipse.

Making Window-> Show View-> Ant and in the window that opens, clicking on “Add buildfiles” add the build.xml build file, we get the following picture:
image

Now install the JDK, you must register it in Eclipse for later use - this is done by adding the path to the installed JDK in Window-> Preferences-> Java-> Installed JREs. If everything is spelled correctly, double-click on building the distribution (dist, default item) in the form of Ant View will lead to a successful construction of the project. In addition to the console, you can check the success by pressing the right button on the project and selecting the Refresh item. The dist folder containing the OpenMeetings files should appear in the project structure. Congratulations, you're already halfway to victory!
image

Database

Now we will install MySQL and prepare it for use, and then we will try to start our project. I will not dive into the details of this process, since in principle, the default values ​​are quite suitable for our purposes - namely, the DBMS for a small number of clients. Is that the encoding in the database, I would put UTF-8. After installation, you should go to the base to check that it works, and also prepare a springboard for the installation of the OpenMeetings project. To do this, run from the command line, enter the password - and make sure that we are in the system and it works:
image

After the login is successful and the database is created, you need to edit the file from the dist folder (the one that appeared after compilation) /openmeetings/conf/mysql_hibernate.cfg.xml, set the user (for example root) and its password in it, and also as a server 127.0.0.1 and openmeetings database. In my case, the connection string will look like this:

  <property name = "connection.url"> jdbc: mysql: //127.0.0.1/openmeetings? autoReconnect = true & useUnicode = true & createDatabaseIfNotExist = true & characterEncoding = utf-8 </ property> 


The resulting file must be saved there as hibernate.cfg.xml

Flash server

Now let's do a Flash server. Installing Red5 is simple and does not require any sophistication. In the future, it will only be necessary to put our project in its web root, I used the utility from the Sysinternals package called junction.exe for this. It performs the same trick as ln on Unix:

> junction -s “D:\Program Files\Red5\webapps\openmeetings” “D:\workspace\openmeetings\dist\openmeetings”

Now our project becomes available through the web (do not forget about the firewall!).
The last thing is to install and configure the tables in the database, as well as client programs.

Installing the project on the server

We prescribe the JAVA_HOME environment variable so that it points to the JDK.
Setting the tables is simple - run Red5 (the red5.bat file in the installation folder) and go to the website 127.0.0.1/openmeetings/install If everything is configured correctly, then in the browser you will see the installation page, if not, re-read the instructions and view the Red5 logs, all errors should be displayed there. After entering the configuration parameters and clicking the install button, you should also check the logs - under the right circumstances, various errors will not appear there, and the installation progress will be visible (it takes a few minutes). At the end of the installation, all that remains to be done is to configure the client. Namely, we pull out the file with the name main.lzx.swf8.swf from the downloaded archive with the ready openmeetings, and put it in the root of openmeetings. Depending on the version of the software, you may have to rename it to main.lzx.lzr = swf8.swf - the need for such renaming will be indicated by a blank white screen when entering 127.0.0.1/openmeetings after the installation has been completed. If you look at the incoming html-code, you can easily see exactly what the name of your script should be:
image

In most cases, such hassle is not expected. Well, that's all, welcome to the conference!

As we can see, without much effort, an “advanced” PC user can organize communications based on open source software in this area, and even participate in its development. And professionals in this case play the role of support, project development, as well as meeting the special wishes of a potential client.

Source: https://habr.com/ru/post/55656/


All Articles