BitWise Conferences Technical Detail by Kevin Hock, BitWise Client Programmer Document Revision 1.1.2, April 19th, 2005 Overview Conferences in BitWise IM work only with direct connections. Unlike regular messaging, conference messages cannot be run through the server. This means that users who are behind routers or firewalls may have difficulty as a conference host, since their ability to make direct connections to other users will be limited. Your conference host eligibility is displayed when you create a conference as "good" or "poor" based on whether or not you are currently using the proxy server, with the assumption that anyone using the proxy is doing so because incoming direct connections are not possible. Conferences use the same single connection that two users will maintain for normal operations; if you are both privately conversing with user x and you are sharing a conference with user x, both kinds of messages will be sent over the same connection. Creating a Conference When you create a conference, you must specify a name for your conference. This name will be presented to other users when you invite them to join your conference, so choose it carefully. Your conference is also given a unique ID based on its name, the current time, and other information. This combination of factors will identify this conference for its duration, which may exceed the time that the originator closes the conference. Inviting Users to a Conference Inviting users to a conference requires you to enter the aliases of the other users that you want to invite. Mistyped aliases will be ignored. You may enter as many aliases as you like, separated by commas. If you are not already connected to any of the users that you invited, a connection attempt will be made. If a connection cannot be made, the status will be indicated as "No DC" and that user cannot join the conference through you. If a connection is successful, the other user will have a chance to accept or reject the conference invitation, and you will be informed of the other user's choice. Conference Invitation Trees As already stated, a conference begins when a user creates a new conference and then invites other users. This originating person is at the top of the conference tree, and anyone invited by this establishing user is directly connected. When anyone sends a message, it is sent to the originator, and the originator disperses it to all of the participants. In this way, each user does not have to be connected to every other user. There is a slight delay for this retransmission, but it ensures more reliable delivery. Once any user has joined a conference, they are free to invite anyone else to the conference, even if they are not the originator of the conference. If User A creates a conference, and invites user B, and then user B invites user C, any messages sent by user C will first go to user B (user C's direct conference host), and then continue going up until the conference originator is reached. The conference originator will then disperse the message to each user directly connected, including user B. User B will then recognize that user C is attached, and will send the message on to user C. In this way, a tree is created, and each message will first travel up to the conference originator, and then be dispersed back down to the tree by each person to the their hostees. When a user closes the conference, any users connected to that user are then fragmented. Using the above example, if user B closed the conference, user A would be told that user C also closed, even though user C has then become the master of their own conference fragment. User A can then re-invite user C, if desired, and the same conference will be resumed on both ends. This is not done automatically at this time, although it may in the future. If user C had invited user D and E, then user C, D and E could continue conferencing without user B. If user A successfully invites user C again, then all four users will be back together in the same conference. Conference Participants List Each conference maintains a list of who is in the conference, as well as any users that have been a part of the conference and have since left or lost their direct connect. The user list can be "cleaned" at any time from the actions menu, which will remove all of the users that are no longer active in the conference. This is not done automatically so that you can, at a glance, remember who has been a part, see how much they contributed, or be able to determine who has left without having to remember who had been invited. You may right-click on any conference participant. If that user is not on your contact list, fewer options will be available. If that user is on your contact list, you will receive a more complete list of options, including the ability to send a file or view their status/profile. You may open a one-on-one conversation with any conference participant by double-clicking their name in the conference participant list. Self-Invite BitWise allows you to optionally enable people on your contact list to view a list of your open conferences and self-invite themselves to one or all of your conferences. This can be enabled globally from the conversation preferences page. Enabling self- invite for only a select group of contacts on your contact list is available from the Conference menu, and must be selected in each conference; this setting is not maintained from one conference to the next.