Directory service provides an interface to a translation layer. It implements a mapping from the party to be called (phone number, email address, multiparty conference, etc.) to a record containing information relevant to the callee. It implements account management, has a two-level security model (administrator mode vs. user mode), and follows the client-server networking operation model.

Figure 1. Directory service topology.

The directory server implements an accounts management facility. Using administrative credentials, one can add and remove accounts with the included graphical user interface.

The primary function of the directory service is translation. The server is built on a hashing database, mapping a string to its associated information of interest. This "key" string is capable of representing a user's email address, a phone number, a unique user ID, or a conference name. When a user wishes to locate a person by their publicized "key", The action is simple; request a "lookup" to be performed via the API. At the completion of the "lookup" the requesting user is presented with a list of strings representing addresses where the desired person may be contacted.

To add a measure of security, we authenticate each request with a username/password pair, referred to as the user's credentials. This security approach also allows us to control access to certain restricted functions such as adding or removing users.

Directory service supplies support to those clients whose addresses are not static. Each registered user is allowed to assign themselves one "roaming address". This address can be modified at any time, allowing clients whose addresses are assigned dynamically (ie: DHCP) to simply update one field in the directory service database rather than reconstructing their list of addresses to be contacted at. To prevent crashed machines from causing incorrect calls to be made, the server assigns an expiration time to each roaming address issued. If time expires, the server will not return the roaming address until the client renews it.