I understand that red5 and openfire operates in parallel.
Two users can perform an XMPP IM session through openfire and in the same time
publish and recive video and audio streams from each other using red5.
I’m trying to understand how the integration is actually working.
Are the XMPP application and the A/V application can be considered completely separated?
Is the initial handshaking between the two users before the A/V is performed using XMPP?
What is the advantage of using both openfire and red5 over using only red5 with shared objects for the chat?
The nice thing about XMPP is that it can be easily extended. The Red5 plugin for Openfire is using the Jive Phone Integration extension proposal to handle the handshaking or signalling between two clients. Red5 is being used as a media server to handle the audio and video over a multiplexed RTMP or RTMPT connection after both parties have agreed to talk.
Red5phone on the other hand uses the RTMP connection to make 2 way remote method calls between a SIP client and a Flex/Flash client in addition to the media stream.
Implementing a XMPP client with Smack (Java) or XIFF (Flash/Flex) is much more easier and feature richer than re-inventing the “chat client wheel” with Flash shared objects. Just my 2 cents opinion
Can you please explain what happens when two users A and B wants to exchange video streaming?
What I have in mind:
Users A and B agree to exchange AV streaming through XMPP packets.
Each user creates a random long name for its stream so it will be effectively hidden from other users.
Users A and B send each other the stream name through XMPP packets.
The stream name is passed to the flash swf file.
Is this how it works?
Much simpler than that. stream names are generated from user names. For users A & B, streams names are AB & BA. You are welcome to improve it
Does the red5 plugin includes any red5 server side code?
In adobe FMS creating and playing streams doesn’t require server side code except for creating an empty folder.
Do you have any other idea to protect AV conversation except for a random long stream name?
For red5 audio/video calls, Yes/No. It uses the Red5 template “oflaDemo” server-side application.
Red5phone SIP calls however use the “sip” server-side application which manages mjsip SIP client instances for each user. On my todo list is the action to tighten the security by linking the red5 server-side application with Openfire and use XMPP publish-subscribe to protect AV conversations and ensure permissions are enforced. A simpler approach would be your suggestion of exchanging long stream names.
I am always looking for contributions