Category Archives: Red5

AVChat 3.6 Brings A New Mobile Version And Red5 1.0.5 Compatibility

Remus Negrota,
Product Manager

Published by Remus on | No Comments

AVChat 3, Builds, Red5

A Bit of History

For a while now AVChat 3 has only been compatible with Red5 0.8 and Red5 1.0 RC1. The reasons are many but the most notable is the fact that we just couldn’t get the users and rooms list to work correctly on the newer versions of Red5. It wasn’t a major issue since AVChat worked very well with 0.8 and 0.8 could be installed along newer versions of Red5.

But back in August 2014 the Red5 developers introduced WebSocket support in version 1.0.3. This version peaked our interest knowing that WebSockets are a very good platform for building chat applications and adopting it would be a natural step forward for our mobile version of AVChat. But there was a problem, our desktop client was not yet compatible with the newer version of Red5 and the WebSocket support was still in it’s early stages. We decided to wait a little longer at the time.

We waited until the beggining of 2015 when we decided to make a major update to our mobile version and change the whole technology on which it relied to communicate with the media-server to WebSockets. First step we needed to do was make our desktop client compatible with the newer versions of Red5. So in order to do that we worked alongside Red5’s main developer Paul Mondain (thanks Paul!) to solve the issues Red5 had regarding the way it treated shared objects (the users list and rooms list rely on SharedObjects). Without going too much into technical jargon, I just wanted to say that we managed to identify and fix the issues. The fixes were included in the Red5 1.0.5 release.

In parallel we also worked on the new mobile version of the client that was based on WebSocket technology, re-writing the whole code from ground up.

What This All Means?

Two MAJOR things:

  1. AVChat 3.6 will only support Red5 1.0.5 or newer
  2. we have a new, better, faster mobile version and it’s only compatible with Red5 1.0.5  or newer

Red5 is the only media server that supports WebSockets at this time so our new mobile version only works with it. The mobile version needs a JSON library (json-smart) to be added to Red5 1.0.5’s plugins folder. You can download a Red5 1.0.5 with this library included.

Mobile Version Evolved

In the new mobile version all of the functionalities that existed before, were kept, but now they have the added benefits of the instantaneous  and open connection of the web-socket communication. A WebSocket connection is similar to the RTMP connections used by the desktop client.

This new WebSockets mechanism has a lot of benefits:

  • instantaneous communication between the mobile client and the desktop client
  • faster users list and rooms list
  • no more refreshing to get the new messages
  • much better detection of the mobile user status (joined > online > left/disconnected)

In addition to this, web-sockets allowed us to implement new functionalities that couldn’t been done before like kicking, instant join and leave messages and file sharing.

Kicking of the Mobile Users

Mobile users can now be kicked from a room (by a room moderator or an admin), or kicked from the whole chat (by an admin). The mobile client user will be notified and redirected accordingly.

Mobile user being kicked from room

Mobile user being kicked from room

Join and Leave Messages for Mobile Users

The mobile app can now register in real-time when another user from either desktop or mobile, joins or leaves the room he is in. A message will be displayed in the text chat, same as in the desktop version.

Join/Leave messages as seen by the mobile users

Join/Leave messages as seen by the mobile users

Shared Images and Files

Files and images that are shared by the desktop users are now also shown in the mobile app and can be downloaded. Images are previewed directly in the text-chat.

Shared files as seen by a mobile user

Shared files as seen by a mobile user

Other Changes

The new mobile version is found in the new ws folder. The old one was in the m folder and it is not included anymore with the AVChat archive. The new mobile version comes in a new archive separate from AVChat.

Some of the config options that were specifically implemented for the older version of the mobile client became completely unnecessary for the new version so they were removed. The options in question are from the media server config file:

  • webServerIp was removed
  • adminConnectedForXSeconds  was removed

Therefore the required steps for the setup have been changed, more details in  the mobile installation instructions.

Updated Integration Kits

The following integration kits have all been updated to check for and redirect users to the new mobile version:

New Mobile Demo

The new AVChat Mobile Version is available to test at m.avchat.net .

New Price & Licensing Model

From now on the mobile version will sell separately from AVChat:

  • $59 for the license/download/archive
  • $39 for 1 Year of Updates & Support
  • $19 for 3 Months of Updates & Support

All existing clients will get the initial license for free. During the next few days the new mobile version will show up as a downloadable product/archive in their private client area.

New Features for the Desktop Client

Stream Recording API (Red5 only)

We’ve implemented a mechanism that calls a URL every time a new stream recording is started and/or stopped.

The way this works is if the media server is setup to record the live streams, each time a stream is started or closed, the media server calls the new webserver side file – defined by the new getRecordedVideosInfo setting in avchat3.properties – sending the following information about the stream: stream name, the siteId and the username of the user who’s stream belongs to.

The API works hand in hand with the recordAudioVideoStreams setting (also in avchat3.properties). 

The documentation covers the API in detail.

Recorded Video Streams Can Be Acessed via HTTP (Red5 only)

The API described above makes it possible to track the recorded videos but you can now also easily play them back via HTTP. Together they can be a powerful tool for managing the streams recorded by AVChat.

Accessing the recorded streams via http will help greatly if you want to:

  • Play specific files through HTML5 or progressive download
  • Download files locally
  • Move the files to a different server

The access to the recorded videos is done using Red5’s integrated Tomcat web server and the recorded streams can be accessible from the browser at http://RED5_SERVER_ADDRESS:5080/avchat30/streams/

For more information check out the documentation.

Updates & Fixes:

Updates:

  • Updates to the way the camera setting window looks when only a microphone is detected
  • Updates to the way a webcam window is shown when the stream is audio only.
  • Updated version of third party PHP library (Mobile_Detect.php), because it was causing issues with Chrome version 41.0.2272.76 m.
  • PMs from admins are no longer ignored even if the option is selected.
  • Fixed moderator glitch caused by the join room button not getting disabled in certain circumstances.

Fixes:

  • Fixed issue with user left conversation message being shown even though the user did not leave the room in which the PM initially started, but another common room.
  • Fixed mute cam issue that occurred when muting the audio on a users private webcam before they accepted the request, causing the audio to still come through.
  • Fixed issue with the status bar overlapping with the active room tab in the admin client if hideStatusBar was set to 1.
  • Fixed issue with some buttons font colors reverting to default color after they have been pressed.
  • Fixed issue with close button overlapping with the text of a tab button if the tabs were resized to a much smaller width than the intended size.
  • Fixed issue with tab width being larger than it should.
  • Further fixes for useritem alignment based on the size of the menu and position of the useritem.
  • Fixed issue with possible null reference when just a microphone was present and no camera.
  • Fixed issue with the way long user names were displayed in the webcam window.
  • Fixed issue with push to talk button position when only the microphone was present.

How To Download AVChat 3.6 And Upgrade Older Versions

You can download the new AVChat 3.6 from your private client area. You can login at https://nusofthq.com/c/ .

Steps to upgrade old AVChat installations to AVChat 3.6:

  1. make a backup of your current AVChat client side folder (it’s on your website)
  2. overwrite all old client side files (for the settings file and the language files, you can just add the new settings and the new translations to your current settings and language files.)
  3. make a backup of your media server files
  4. If you’re using Red5 0.8 or 1.0 RC1 download Red5 1.0.5 from here and install it together with the new Red5 avchat30 webapp
  5. If you’re using Wowza or AMS just overwrite the media server files with the new ones and restart the media server
  6. clear your browser cache and access AVChat 3.6

If you have issues with it after upgrading contact AVChat’s tech support through your client area or send us an email at support@nusofthq.com.

If you want us to upgrade your existing AVChat installation to 3.6 for you can purchase our Update AVChat Service ($59) from http://avchat.net/services#update. If you’re looking for a clean install you can just purchase the Pro AVChat Install Service ($29) from http://avchat.net/services#installavchat.  Once you make the purchase just contact AVChat’s tech support through your client area or send us an email at support@nusofthq.com and we’ll take it from there.

Testing Media Server Latency

Remus Negrota,
Product Manager

Published by Remus on | No Comments

AVChat 3, Flash Media Server, Red5, Research, Wowza

Latency and especially high latency is one of the main problems when it comes to real time communication between a client and a server, so we decided to do some testing that would ultimately tell us which of the 3 main media-servers (AMS, Wowza and Red5) can achieve the lowest latency.

The Testbed

The testing was done using our flagship product, AVChat 3, for both client and server side as application.

The client side of AVChat was installed on a local machine in Romania. The local machine has the following processing and memory specifications: Intel i5 CPU @ 3.30Ghz and 8 GB of RAM, on a Windows 7 x64 OS.

For the media server I’ve used a VPS located in New York and one in Amsterdam, both with the following specifications: 4 CPUs and 8 GB of RAM, on a Linux CentOS 6.5 x64 OS.

This test was done using just one connected client.

The delay was probed in two ways:

  1. Using an implemented  ‘ping’ like call from the client to the server that measured the round trip time (RTT) of the message:
  2. Turning on the live-stream and measuring the delay between the broadcast and the viewing of the stream by simply holding a stopwatch app in front of the camera and measuring the difference that was shown between the 2 videos, like so:

delay

Notice that in the image above there is a time difference of 120 ms between the two videos, which corresponds approximately with the RTT, shown in the green box, of 99 ms. The difference between the two obtained values of 21 ms can be accounted by the time it takes to encode the video on the broadcasters side and to decode the video on the viewer’s side.

The Actual Results

I’ve made a comparison table for all the 3 media-servers tested for both the RTT and the delay between broadcast stream and viewing stream and here are the results:

Media ServerRTTStream Delay
AMS 5.0.3 default settings146 - 229 ms390 ms - 520 ms
AMS 5.0.3 tweaked settings140 - 160 ms390 ms - 780 ms
Red5 1.0 RC1140 - 192 ms240 - 390 ms
Wowza Streaming Engine 4.0.3139 - 221 ms390 - 580 ms

The tweaked AMS settings mentioned in the table above are the ones Adobe recommends for obtaining lower latencies:

  • StreamManager/Live/Queue/MaxQueueSize  in Application.xml. Setting the MaxQueueSize to lower values reduces latency but is less efficient performance wise.
  • StreamManager/Live/Queue/MaxQueueDelay in Application.xml.  Decreasing the queue size reduces latency but is less efficient.

Overall these settings are designed to scale better with more clients connected at once. In this case is not really applicable as there is only one client connected.

The number of clients connected at any given time also plays a major role when it comes to latency. Some media-servers scale better in this regard but this is not the focus of our current experiment.

With that being said as you can see there are no major differences between the 3 media-servers when it comes to either RTT or stream delays.

To further the experiment I’ve made the same tests with an identical VPS only this time located in Amsterdam, so the connection was Romania – Amsterdam, instead of Romania – New York as previously tested, and here are the results:

Media ServerRTTStream Delay
AMS 5.0.3 default settings58 - 82 ms90 - 130 ms
Wowza Streaming Engine 4.0.362 - 87 ms80 - 140 ms
Red5 1.0 RC159 - 91 ms100 - 150 ms

After this final testing we can draw the following conclusion: the most important aspect when it comes to latency between client and server is the location of the server in relation to the location of the client.

Different technologies and tweaks may help with decreasing the latency but ultimately the distance between client and server will be the determining point.

New phpFox build adds mobile support integration for AVChat3 (build 2202)

Stefan Nour,
Integrations Specialist

Published by stefan on | No Comments

AVChat 3, Builds, Flash Media Server, Integrations, phpFox, Red5

Hello everyone,

As I promised , I updated the phpFox integration kit for AVChat to support the latest changes (ex. mobile version) that were made to our video chat (find out more). Here is a list of what was updated in the phpFox module:

  • Never miss a new message from now. New browser tab notification lets you see how many new messages you received if you are in another browser tab.
  • Detect if the browser is mobile or desktop and provide the appropriate content.
  • Detect if you installed the AVChat files into the component directory.
  • Facebook Application ID field integration in backend.

Remember that you need the latest build of AVChat (build 2170) to have access to these great features and also Red5 or FMS media server. This update is currently available only for phpFox 3, but if users demand, we will support other version of phpFox also.

You can download the latest version(build 2202) from you private client area.

Have a great day!

AVChat Build 2160 has arrived.

Remus Negrota,
Product Manager

Published by Remus on | 2 Comments

AVChat 3, Builds, Mobile, Red5

We are proud to bring you this year’s first build of AVChat that has a lot of major changes and a heap of improvements for both the Flash client and the HTML5 client

Here are the new features:

1. Red5 support for the mobile AVChat 3 client is here.

Setting it up: The mobile client requires a Web Server: A  web server with at least PHP 5.3.10  hosting the chat. 

Socket support must be enabled. You can use phpinfo(); to check if sockets are enabled.

After a normal installation, open avchat3.properties and change the webServerIp setting (new setting) to reflect the IP  of your web server.

Also you might want to disable some of the red5 logs, because when someone connects from the mobile client, Red5 will generate a lot of logs. To do this go in the installation directory of your Red5 server -> conf – > logback.xml, and here edit the following 2 settings:

<logger name="org.red5.io">
<level value="DEBUG" />
</logger>.

Change the level value from “DEBUG” to “INFO” in the code above..

<logger name="org.red5.server.adapter.MultiThreadedApplicationAdapter" >
<level value="OFF"/>
</logger>

Change the level value from “DEBUG” to “OFF” in the code above.

2. Updated .aspx files

upload.aspx, avc_settings.aspx and style.aspx have been brought up to date to their .php counterparts so now they pull all the configuration data from  avc_settings.xml, file_types.xml and style.xml .

3. New mechanism for removing empty rooms automatically

A new delete rooms mechanism has been implemented.  Previously the rooms were  automatically deleted  as soon as the last person left the room as described in the documentation

The media server now constantly checks for empty rooms and if:

  • deleteRoomsWhenTheyBecomeEmpty = true ,
  • the room is not protected (not included in the doNotDeleteTheseRoomsWhenTheyBecomeEmpty array) and
  • is inactive for more than the number of hours expressed by a new setting ( deleteEmptyInactiveRoomsOlderThan ), then the room is deleted.

4. Better UI for when used in narrow spaces

AVChat now fits correctly in narrow spaces, this was a problem well known with some integrations. Here’s a quick view of it

5. New feature: CHAT HISTORY (for copying the entire chat history)

Added new button (Chat history) that opens up a new window with the whole chat history of the rooms it is opened in. This feature also take into account the setting autoAddIpToUsername. Here’s how it looks:

6. New ability to block all requests for access to a private stream

We added a new button that can be used to block all the view private stream requests.

 

7. Lots of improvements for the AVChat 3 Mobile Client:

 

  1. The mobile client now supports emote icons. The path to the icons is stored in the same setting as for the flash client (emoticonsurl).

  2. The mobile client now displays distinct icons for users that come from other mobile clients or from the desktop flash client.

    The camera/microphone icons now have 3 states: active ( icons are shown normal), inactive (icons are shown faded), and hidden(user has no cam/mic).

  3. The connect button on the mobile client is now disabled unless a username with a least 3 characters is typed in.

  4. Welcome message has been added to the chat room upon entry.

  5. Pinch-zoom has been disabled for the mobile client to avoid unwanted scaling of the elements.

  6. Fixed an issue with the mobile client that caused the Login button from the rooms list to not work after it was clicked if the rooms list was reloaded

 

8. The following issues have been fixed on the Flash client:

  1. We implemented a cleanup for  the rooms list on connect for all media servers, to check if all the rooms contained in the rooms list are still physically on the disk, if not we delete them. This was discovered to cause the empty text chats and empty users list problem.
  2. The background of the uploaded images when shown in the top right corner of the text chat area now scale according to the image size.

  3. The user’s own camera no longer launches in another separate window if autoStartMyCamera and autoStartCameras are set to true.
  4. Fixed issue with error messages that could not be seen entirely when the chat window was too narrow, here’s how it looks now:

  5. Fixed small issue with owner name of a room being filled with the room name instead, in the users__.xml file on FMS.
  6. Fixed issue with rotating text chat messages when leaving all rooms.
  7. Fixed issue with the aligning of elements on the Y axis after an image that wasn’t square shaped was uploaded ( the issue was all other elements left a gap between the image and the next element )
  8. Fixed padding for welcome messages and rotating messages.

  9. Fixed issue with emoticons being  replaced when formed with the “event:” string used by FP and a username like this “event:paula” where “:p” would be seen as an emoticon and replaced with spaces, redirecting to an empty html link instead of triggering an event.
  10. Fixed issue with search in users list working only in the first room that was joined.
  11. Fixed small issue with shadow direction on the tab bar when flipTabMenu was set to true.

How to download and upgrade?

You can download this new build of AVChat from your client area. As a trial user you do not yet have access to this build.

Steps to upgrade an old installation:

  1. overwrite all old client side files (You can keep your old language files. The missing phrases will default to English until you add them to your existing language XML file.)
  2. overwrite the media server files and restart the media server

If you have issues with it after upgrading make sure you clear your browser’s cache. If you still have issues after doing that send us an email at support@avchathq.com.

If you want us to upgrade your AVChat installation for you you can purchase our additional AVChat Installation Service from here: http://avchat.net/buy-now#services .  Once you make the purchase just email us at contact@avchathq.com .

 

How to use multiple installations of Red5 on the same server

Alin Oita,
Director of Tech Support

Published by alin on | No Comments

AVChat 3, Flash Media Server, Red5, Research, Tips & Tricks

“I’d like to know if I can run other Red5 instances on my server, besides the one that AVChat requires.”

This is an issue that came recently for some of our existing customers and I thought that we can share this info to everybody.

 

It happens that you have been using a software that requires Red5 to transmit data and you have installed, for example, Red5 0.9. Good..

Now, after you got an AVChat license, you heard that the only compatible versions of Red5 with the chat software are 0.8 and 1.0 RC1. This made you wonder if you can still use your previous software running on the same Red5 0.9 as before and make a different installation of Red5, for AVChat to run.

You have to know that all versions of Red5 are using the same port configuration and if 2 copies of Red5 are started, there will be a port conflict there.

The default ports used by Redt5 are:

  • 5080 for HTTP
  • 1935 for RTMP
You need to configure one copy of Red5 to use different ports. Here’s how to do it:
  1. Open the /conf folder and search for a file called red5.properties.
  2. Open it with a text editor
  3. Change the value of all the ports, but make sure that the new ones are available, no other application on the server is using them.
This screenshot shows an example of the lines that must be edited for each of the paragraphs:

 

 

 

 

 

 

 

 

 

 

 

 

After editing this file, Red5 must be restarted in order for the changes to apply.

Good..now we can start both Red5 instances with 2 different software using them.

I hope this helped and..happy chatting !