> 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)

Reply via email to