> Has the convers server-server protocol been documented anywhere?
Apart from the "nickname" extensions, there's at least a list
of commands used for the server protocol in the original
PingPong Convers source. TPP AFAIK also uses some additional
commands that will be transparently relayed by normal convers
servers.
> Has the convers user command syntax been documented anywhere?
There's the online help, but commands and server messages
differ from implementation to implementation which makes it
impossible to write reasonable client software. Jochen DG6VJ
implemented a server-client protocol we're currently experimenting
with, but it is far from being complete. Probably we'll
rewrite the server or design a new server-server protocol.
The question is if it's worth it or if we rather should use
one of the IRC protocols -- which has the same disadvantage, BTW:
no current protocol definition. IRC is nice, though. And quite
well to handle unless someone uses a sirc based client which pings
the server every second or so.
BTW: /.. is really /\377\200
73,
J�rg
Specification of conversd's protocol.
This file is part of the PingPong conversd-Distribution
$Revision: 1.2 $$Date: 1998/02/23 15:04:09 $
This file is _very_ far away from being complete, but I think a description
of the host command is needed for you to implement your own conversds.
A connection may have three states: UNKNOWN, USER or HOST. When a connection
is established, it falls into the UNKNOWN state.
State UNKNOWN knows about four commands:
/NAME <call> [channel]
- this command makes a user login, i.e. the state will be changed
USER, the sign on message will be displayed user's name set to
call, and channel will be entered. The latter is optional, if
not enterted, channel 0 will be selected. The channel number
must be in the range of 0..32767 due to older conventions.
/..HOST <hostname> [software [facilities]]
- the command is sent by the connecting host to join the HOST
state. The host name must be given, the software string and
facility string is optional. Software sting may be up to eight
characters long. The facility string consists of single letters
already assigned are:
a - "away feature" (old style - will expire Dec, 31th 1995)
d - "destination forwarding"
m - "channel modes"
p - "ping pong link measurement"
u - "udat command extension and user command understood both"
A - "away feature" (new style)
f - "filter feature" (see below)
If you like to assign new characters, please drop me a note
with a brieff description of the feature... I will include it
in further specifications.
/ONLINE <a|l|q>
- it is the same as the normal "who" command in the USER state
except you don't need to login...
/CSTAT
- This is the normal "links" command called in the USER state. No
login is necessary.
State HOST accepts the following commands:
/..AWAY <user> <host> <time> [text] (OPTIONAL)
- mark user@host on channel as being away. If text is not present
he is back again. The given text should be stored in your
conversd to give a hint to the users doing a private message
to an away-being person. Time indicates, when the command was
issued (* WARNING format changed at pp-3.01 -> 3.02 *)
/..CMSG <user> <channel> <text> (NECESSARY)
- channel message. user wrote it to the whole channel. text
should be delivered to all users on this channel, and to
all hosts who are a downstream for a user in this channel.
Be aware of duplicating strings ! if user is "conversd",
this a broadcast Message. Then no formatting should be done.
/..DEST <host> <time> [software] (OPTIONAL)
- The host is reachable for the other node via me in time seconds.
The aim host is running the named software.
/..INVI <from> <user> <channel> (NECESSARY)
- An invitation from from is sent to user via the whole network.
if the user is found on your system, he should be informed
about the invitation and an answer string should be sent to
from using the UMSG command.
/..MODE <channel> <options> (OPTIONAL)
- set channel to mode options. possible options are:
+i - invisible channel, its existence is not displayed
+l - local channel, no text forwarding is performed
+m - moderated channel, only channel operators may write
+p - private channel, invitation needed to join into
+s - secret channel, no channel number is displayed
+t - topics may be set only by channel operators.
/..OPER <fromname> <channel> <user> (OPTIONAL)
- user becomes either channel-operator or operator
(if channel==-1). from set this status for user.
/..PING (OPTIONAL)
- a pong answer is requested. no arguments are given to ping.
/..PONG <time> (OPTIONAL)
- time is your own measured time (i.e. ping sent to pong re-
ceived). Special values:
-1: you don't do measurements.
0: I did not make measurements yet, but it's implemented.
/..ROUT <dest> <user> <ttl> (OPTIONAL)
- user queried his server for the route to a given host in
the network. Upon receipt of such a request, send back a
personal conversd response to <user> containing this string:
"*** route: <myname> -> <downstreamname> -> <dest>" While
Collecting all these messages, the user will learn the
individual route to his desired destination. A ttl greater
than 0 indicates that this query should be forwared to the
next hop.
/..TOPI <user> <host> <time> <channel> [text] (OPTIONAL)
- user@host set up a new topic at time (seconds passed since
Jan, 1 1970) on channel. The topic is given in the text.
If text is empty, the topic is removed only. If your host
holds a newer topic, it should not be changed and forwarded...
/..UDAT <user> <host> [text] (NECESSARY)
- user@host sets his personal description to text (or removes
it). This field is _obsolete_ ! The personal description is
transmitted via the /..USER command. In internet converse
it is still used, so I check out the environment.
/..UMSG <from> <to> <text> (NECESSARY)
- from sends a private message to to. The contents of text
should not be formattet if from is "conversd".
/..USER <user> <host> <timestamp> <fromchan> <tochan> [@|text]
(NECESSARY)
- user@host left fromchan and joined tochan at time timestamp.
text is his personal name (like in the UDAT field). A '@'
in the text field indicates an empty personal note.
If tochan == -1 (user leaves channel) the additional text
indicates the reason for the signoff...
/..FILT <timestamp> <user> <host> [@|<text>] (OPTIONAL)
- user@host set his message filter to <text> at time <timestamp>.
A <text> of '@' signals that the filter has been switched
off. This command corresponds with the "f" item in the
facility string of the HOST command.
I hope this helps you to implement your own playground...
Fred Baumgarten, [EMAIL PROTECTED], [EMAIL PROTECTED]
Joerg Reuter http://poboxes.com/jreuter/
And I make my way to where the warm scent of soil fills the evening air.
Everything is waiting quietly out there.... (Anne Clark)