Every time you start or quit gsub, a message is broadcast indicating your presence status to a special location: "_gale.notice." followed by your Gale id. Anyone can subscribe to this location to keep track of your Gale activity. For instance, you could track a user named "user@dom.ain" by subscribing to the location "_gale.notice.user@dom.ain". Every time this user starts or quits gsub, you will see notices appear in your gsub like this:
% gsub _gale.notice.user@dom.ain ! 2001-07-19 09:26:26 gsub notice: subscription: "_gale.notice.user@dom.ain" ! 2001-07-19 09:26:26 gsub notice: connected to ofb.net (209.245.148.70:11512) * 2001-07-19 09:26:40 in/present user@dom.ain (J. Random User) * 2001-07-19 09:26:40 out/quit user@dom.ain (J. Random User) |
You can subscribe to all the notices in a particular domain by subscribing to the "_gale.notice@dom.ain" location (remember, locations are hierarchical, even special "_gale" locations!). Subscribing to this location will notify you when any user in that domain starts or quits gsub.
The default presence string is "in/present". You can change this setting using the -p option to gsub, but beware that this will restart your gsub! (It is recommended that you create a configuration file to store your gsub configuration, so that you don't have to specify it on the command line.) You can also set the GALE_PRESENCE environment variable to override the default presence. If you're using Fugu instead of gsub, it allows you to change your presence on the fly without having to restart.
You can also hide your presence by running gsub with the -a flag. This flag prevents gsub from broadcasting any notice when it starts up, effectively hiding your activity from anyone who might be listening. The -a flag has other side effects, however: it causes gsub not to respond to key requests (so people may not be able to retrieve your Gale key in order to send you messages), and it causes gsub not to respond to pings (see below).
Rather than waiting for a user to broadcast a notice, you can send her a ping to see if she is currently online. You do this by requesting a return receipt via the -p flag to gsend:
% gsend -p user@dom.ain To: user@dom.ain (End your message with EOF or a solitary dot.) Are you there? . * 2001-07-19 09:39:20 received: in/present user@dom.ain (J. Random User) |
If the user is not running a gsub, or is running a gsub with the -a option, then you will not receive any return receipts to your query. You may receive more than one return receipt if the user is running multiple gsubs. You cannot send invisible pings with the current system; this enhancement is planned for a future release.
Fugu has a set of heuristics to automatically determine whether or not to request a return receipt with any puff you send. It requests receipts for private puffs, but not for puffs destined to a discussion group. Hopefully these heuristics will eventually make their way into gsend.