Objective:
Develop a Mac compatible conferencing client in which users on a Mac can connect to a conference room on our server and use the voice conferencing (hear and speak to other users in the room), text chat, and receive browser pages sent.
Details on connection protocol etc. will be provided by the developer of the Windows client and our conferencing server.
See Windows client in action here: [login to view URL] (no password required)
NOTE: Windows client contains MANY more features than we plan in the Mac client.
Overview:
There are 3 main parts of the conferencing system that need to be developed into a single executable program. The program should connect to the Internet to our conferencing server and transfer the data as specified. The program should be able to be launched from a web browser and pass the following parameters to be used for logging in:
Username
Password
RoomID
Other (Server IP)
Part 1: Voice Conferencing (VOIP)
The client software will connect to our server and parse the voice packets received into voice using the GSM codec ([login to view URL]~jutta/[login to view URL]). When the control key is pressed and held down, the user will be placed into “Talk” mode. Voice received from the input (microphone) will be digitized and sent out to the server to be replicated for all users in the room. The control key should be “global” meaning that even in another window, if pressed, it will activate the Talk mode. A user control window will display all users in the room as well as their status (talking, waiting to talk, writing, away). There are 2 types of users in the room; moderators and users. However, the Mac client initially will only allow the access of “users” in the room. No moderator (administration) abilities will be provided in the Mac client. All voice conferencing is “half-duplex”, allowing only one user to speak at a time. Signals from the server will provide the user with information of whether they enter into “Talk” mode or into the “Queue” because someone is already speaking. The details on these signals and protocol will be provided when the project is accepted.
Users in the list should be separated: moderators from users. Both lists should be alphabetically ordered. The person who is currently speaking should be placed to the top of the list and then return to their alphabetical location when they stop speaking.
Part 2: Text Chat
A basic public text chat allowing to send text and URLs to other users.
Private text chat can be done by right clicking on a user in the user list and choosing private chat. This opens a new chat window with that user only (similar to MSN Instant Messenger).
At this time, colors, font types and sizes, and emoticons are not necessary in the Mac client.
Part 3: Embedded browser
Web pages sent by the moderator in the room are received and displayed in the browser. Ideally, we would like to have this browser be an embedded instance of the browser. If this proves to be too complicated or impossible, then we may opt to open the pages in the default browser (Safari), or IE, or FireFox, in a separate window apart from the Mac client.