2 March 1999
At present, declareIdentity doesn't return a token or anything; it simply throws an AuthenticationException if the PIN is invalid. If valid, the DirectoryServices retains a flag saying that this instance of DirectoryService was validated for the given userid.
It was decided that DesktopSignaling will create the DirectoryServices instance on behalf of the application. The application can get a handle to this instance by invoking DesktopSignaling.getDirectoryService().
IP address
- the hostname of this Location, null if not
known port number
- the port on which DesktopSignaling is
listening Redirect string
- userid (email address, application name,
telephone number, extension number,...) to which the call should be redirected Application string
- name of the application running at
this location Thus Directory Services will provide "get" methods for these four things. There is already sufficient data stored in a Location string to support these 4 methods.
Users might launch applications that do not go into the LocationList for that user. Such an application cannot be dialed, but it can still place outgoing calls.
LocationList list = lookup (name)
For example,
suppose we want to call "mumble@cs.cornell.edu". Here is an example of a
LocationList that might be returned by Directory Service. For Locations with an IP and
port, signaling can just send an invite packet to that port. There is a peer signaling
component listening there. If there is no IP and port number, then signaling effectively
does a Dial(RedirectString). To avoid circularities, this may be limited to one level of
redirection. Here is what might be on the LocationList, in the following order:
Roaming Location: Location of dialable application most recently launched by
user "mumble". Contains IP:port
Dynamic Location List: Locations of other running dialable applications at
which this user may be reached. These all contain IP and port numbers too.
Custom Location List: schedules; if there is a time match, a Location List is
returned (or just one Location?)
Default Location List: other locations where user may be reached, in
decreasing order of preference. These are strings, which might be telephone numbers, email
addresses, application names, etc.
While a recursive approach could be used to traverse the LocationList, expanding user strings as it goes, it was decided that checking for infinite recursion would be too difficult.
Therefore, we decided that DesktopSignaling will expand Location objects just once. That is, if someone is trying to reach me, and if the next Location on the LocationList to be tried happens to be an email address, DesktopSignaling will look up the LocationList associated with that email address and invite Locations on that list, but only if they have a hostname and port number. It will not expand that list further.