CONCEPT
        intermud

DESCRIPTION
        There are several intermud protocols which define how (players on)
        different muds can communicate with each other. The protocols are
        in general not muddriver or mudlib dependant, though the number of
        implementations is limited.

        This text is about the rather old widely spread 'Zebedee Intermud',
        which is also called 'Intermud 2' although it differs quite a lot
        from the real Intermud 2 protocol.

        Full information on the newer Intermud 3 could be found on the
        web at http://www.imaginary.com/protocols/intermud3.html so there
        is no discussion here - the following is just about Zebedee Intermud
        (aka Intermud 2).

        Zebedee Intermud communication is handled by the /secure/inetd
        object, originally written by Nostradamus for Zebedee with some
        extensions that are discussed in inetd(C). How the data is
        actually sent across the network is described in intermud.basic(C).

SERVICES
        Note that the fields "NAME" and "UDP_PORT" should be present in
        every message. Very common are the fields "ID" (used whenever an
        reply is expected) and "SND" (the sender: he should receive the
        reply). These fields will not be mentioned in the list below.

        Request types are listed on the leftmost row (e.g. "REQ=channel"),
        associated header are listed indented.

        "channel"
            The channel-request is used for sending a message on any
            channel. The "CMD" field is optional and may be omitted for
            normal messages. Note that you should not send an history or
            list request to _all_ known muds!

            "CHANNEL"
                The channel on which a message is send (the standard
                channels are "intermud", "intercode", "interadm", "d-chat",
                "d-code" and "d-adm"; on the d-channels German is spoken)

            "DATA"
                The message to be send (not used with history/list request)

            "CMD"
                The body of this header may be:
                ""        for normal intermud messages,
                "emote"   if the message is an emote/gemote,
                "history" for an history request: the last 20 lines of
                          this channel will be shown.
                "list"    to list all remote users listening to this channel

            "EMOTE"     (optional)
                The body is 1 if the message is an emote.
                The body is 2 if the message is a gemote.

        "finger"
            Retreive information about a player or creator on a remote mud.

            "DATA"
                The player of whom information is requested

        "locate"
            Check whether a certain player is logged on at a remote mud.
            This request is usually send to all known muds at the same time.

            "user"
                Name of the person who requests the information.
                This is used by the sending mud only and has to be included
                in the reply.

            "vbs"
                The verbose option has only two pre-defined values:
                1 Even report when the result was negative
                2 Don't do timeouts, but keep waiting
                This is used by the sending mud only and has to be included
                in the reply.

            "fnd"
                The found option is only used in the reply and it's value
                is either 1 (success) or 0 (failure). The absence of a
                found parameter indicates failure as well.

            "DATA"
                The player to find.

        "man"
            Retreive a manual page from a remote mud. Many muds don't
            support this feature...

            "DATA"
                The name of the requested manual page

        "mail"
            An extension to the standard protocol, by Alvin@Sushi. This is
            used to send mails from one mud to another.

            "udpm_status"
                This field should only be used in the reply and indicates
                how mail is handled. Currently there are four pre-defined
                values for the status field:
                0 time out
                1 delivered ok
                2 unknown player
                3 in spool (will be delivered later)

            "udpm_writer"
                Name of the person who wrote this mail

            "udpm_spool_name"
                Should be returned as sent, this value is used to remove
                the mail from the spool directory after it has been
                delivered (or refused)

            "udpm_subject"
                Subject of the mail message

            "DATA"
                The body of the mail (the actual message)

        "ping"
            A ping request has only the standard fields, the reply is
            usually a short string like " is alive."

        "query"
            Get standard information about another mud. This is the only
            command of which the reply may not include a load of rubbish,
            but should only hold the requested information, so that it can
            be parsed by the server.

            "DATA"
                The following queries are pretty much standard:
                "commands" List all commands that are supported by the inetd
                "email"    The email-address of the mud administrator(s)
                "hosts"    A listing of all hosts in a special format [t.b.d.]
                "inetd"    The version number of the inetd used
                "list"     The list of all items which can be queried
                "info"     A short human-readable string with practically
                           "query" information
                "mud_port" The portnumber that players connect to on login
                "time"     The local time for this mud
                "users"    A list of the people that are active in this mud
                "version"  The version of the mud-driver (and library)
                "www"      The URL of the mud's web page (e.g.
                           http://mud.stack.nl/)

        "reply"
            This request method is used for _all_ replies.

            "DATA"
                A human-readable string, containing the reply to a given query

            "RCPNT"
                The same name as in the "SND" field or the query; Usually
                this is the name of the player who initiated the query

            "QUERY"
                This field is only used in a response to a "query" request
                and should be equal to the "DATA" field of that request

            "vbs"
                This field is only used in a response to a "locate" request
                and should be equal to the "vbs" field of that request

            "user"
                This field is only used in a response to a "locate" request
                and should be equal to the "user" field of that request

            "fnd"
                This field is only used in a response to a "locate" request
                and should be 1 if the player was located and 0 otherwise

        "tell"
            Say something to a player on another mud.

            "RCPNT"
                Name of the player to whom you are talking

            "DATA"
                Whatever you wish to say to this person

            Optional emote-tos are handles are also handled as tells, so
            muds without emote-to support display them as reasonable readable
            tell message.

            "RCPNT"
                Name of the player to whom you are talking

            "METHOD"
                The body of this header may be:
                "emote"   if the message is an emote
                "gemote"  if the message is a genitiv emote

            "DATA"
                The text to be emoted prepended with "*" and appended
                with "* ". If you display the emote you have to cut the
                stars off. Muds that do not process emote-tos display the
                emote as tell message with the stars as indication of
                the message's emote meaning.

        "who"
            List the people that are active on a remote mud. The anwer
            usually contains some active information about the players,
            like titles, levels or age.

            "DATA"
                Not supported by many muds. Introduced August 1997.
                Additional switch(es) (blanc separated) that change the
                appearence of the resulting list. The switches normally
                resemble the switches used inside of that mud for the 'who'
                command.  Typical values include:
                "short" "s" "-short" "-s" "kurz":
                    Return a concise listing.
                "alpha" "a" "alphabetisch" "-alpha" "-a"
                    Sort the players alphabetically.

AUTHOR
        Information taken from Outerspaces documentation to be found
        on http://mud.stack.nl/intermud/

SEE ALSO
        inetd(C), intermud.basic(C), imp(C)
