World Wide Conferencing Protocol suite Part 5: the Channel Directory Service layer Version 1.0 12 February 1997 (c) G. Hiddink CONTENTS 1. Introduction ................................................. 2. The protocol ................................................. 2.1 Identification .............................................. 2.2 Listing hierarchies ......................................... 2.3 Listing channels ............................................ 2.4 Announcing a channel ........................................ 2.5 Joining a channel ........................................... 2.6 Leaving a channel ........................................... 3. The channel directory server-server protocol ................. 3.1 Propagating new/dying channels .............................. 3.1 Modifying registration information .......................... 1. Introduction 2. The Protocol 2.1 Identification A conferencing server that connects to a channel directory server shall use the Network Interface Layer protocol to identify itself. Only after identifying, it may send messages as described in this document. Throughout the lifetime of the network connection, both parties must respond to Network Interface Layer messages (such as PING). 2.2 Listing hierarchies A conferencing server can request one level in the channel hierarchy from the channel directory server, using the RetrieveDir message. It consists of the command "RETRD", a reference ID, and the subhierarchy to be listed. The reference ID can be used for the conferencing server to identify the results of the query if it is communicating asynchronously with the channel directory server. There are no special requirements on the order or reuse of identifiers. If the top of the hieararchy is to be retrieved, the conferencing server shall use the name "TOP". examples: RETRD 1 TOP RETRD 2 chat.nl The results are sent back using List messages, consisting of the command "LIST", the reference ID, the name of the subdirectory that was requested, the mode of the directory, and zero or more (segment, mode) tuples. The segment can either denote another directory, or a channel. The mode is a string containing only alphabetical characters, where the characters have the following meaning: 's' the segment is a directory 'c' the segment is a channel 'r' the segment is registered 'd' users are allowed to create directories within the segment (only valid with 's') 'c' (in combination with 's') users are allowed to create channels within the segment 'i' the segment is invite-only (only valid with 'c' and not 's') 'm' the segment is moderated (only valid with 'c' and not 's') examples: LIST 1 TOP s talk srd irc srdc chat sr indicating that the top directory consists of a subdirectory "talk" which is registered and which allows users to create subdirectories, a subdirectory "irc" which also allows channels to be created, and a subdirectory "chat", which does not allow channels or subdirectories to be created. 2.3 Listing channels a RetrieveChan message on an unregistered channel should only return those fields that have a defined value. 2.4 Announcing a channel 2.5 Joining a channel The Channel Directory Server will automatically send a message. The conferencing server shall check this result with the replies it gets from its fellow servers, and (after a timeout) it shall take appropriate actions: if the set of servers from the CDS contains additional servers compared to the set the server obtained itself, then if the set of servers the conferencing server obtained contains additional servers, then if both sets each contain additional servers if the sets are identical, then no extra action is required. 2.6 Leaving a channel A conferencing server that is no longer interested in a channel (i.e. when none of its users are on the channel), shall send a LEAVE command to the channel directory server. The channel directory server shall update the list of servers on that channel to reflect this change. When all servers have left a channel, the Channel Directory Server shall send the command CHDIE to all conferencing servers it is connected to if the channel was unregistered. It shall also propagate this command to its peer servers (see section 3.1). No actions are needed if the channel was registered. 3. The channel directory server-server protocol ----------------------------------------------- 3.1 Propagating new/dying channels 3.1 Modifying registration information