diag 1

use cases

throughout this document the term 'server' is used for the jabber/helix component.


diag 1


diagram 1

short case description to diagram1:
* communicate:
the client wants to communicate
* enable communication
the server enables, generally spoken communication. communication between different parties or services

diag 2

diagram 2

text to diagram 2:
a client wants to do various things in a *media session*.
* it wants to exchange live media with a communication partner. This includes sending and recieving media. This use cases includes exchange of prerecorded media, live as well.
* a client wants to exchange media content with a group of users in a conference, live. if the user is a moderator or administrator of that conference, he can ban, kick or mute other users from the conference. he can manage speak rights.
* a client wants to manage his personal content on the server. It is likely for this to be a folder structure. This includes storing/putting media on the server and managing access rights for this specific media content. A client wants to retrieve media from the server as well, the server has to check in this case if the client has enough access rights to access that specific media content. Of course the client wants to remove stored media from the server.

* auth at server?

Diag 3

diagram 3

* The server maintains a session list where all sessions are managed.
* Generally the server connects communication partners through media. This means media content is piped and maybe mixed on the server.
* The server wants to work with on the server stored media, this can include packaging, backuping, branding of media.
* A server wants to act as a sandbox for automated services.
* a server wants to initialize itself; initializing includes loading and understanding of a configuration file

Diag 4

diagram 4

The fourth diagram is a more detailed version of diagram 3.
This diagram distinguishes between two layers - helix layer and jabber layer.
* The server maintains a media database
* in this database media files are stored along with additional informations
* this db can be used to offer additional informations to media files upon request.
* the server makes access to media possible
* the server loads a plugin.
- This plugin communicates through a standard interface with the server. The plugin is loaded upon startup. this plugin can for example provide automated services, media search routines or any sort of useful plugins to servers and components.
* the server manages media sessions
* this includes checking and validation of interaction partners identity
* redirecting media streams from one source to a target
* brand media
* the server communicates with the jabber server and with jabber users, this includes:
* of course the server has to open a socket to the jabber server and he has to auth at the jabber server
* this includes accepting commands from administrators;
- commands can be kicking or banning a user from using this component
- setting usage passwords
- some sort of user management
* sending and recieving messages to and from users
* providing informations about communication partners