-#include <netinet/in.h>
-#include <netdb.h>
-
-#define NAME_SIZE 9
-#define TTY_SIZE 16
-#define HOST_NAME_LENGTH 256
-
-#define MAX_LIFE 60 /* maximum time an invitation is saved by the
- talk daemons */
-#define RING_WAIT 30 /* time to wait before refreshing invitation
- should be 10's of seconds less than MAX_LIFE */
-
- /* the values for type */
-
-#define LEAVE_INVITE 0
-#define LOOK_UP 1
-#define DELETE 2
-#define ANNOUNCE 3
+/*
+ * This describes the protocol used by the talk server and clients.
+ *
+ * The talk server acts a repository of invitations, responding to
+ * requests by clients wishing to rendezvous for the purpose of
+ * holding a conversation. In normal operation, a client, the caller,
+ * initiates a rendezvous by sending a CTL_MSG to the server of
+ * type LOOK_UP. This causes the server to search its invitation
+ * tables to check if an invitation currently exists for the caller
+ * (to speak to the callee specified in the message). If the lookup
+ * fails, the caller then sends an ANNOUNCE message causing the server
+ * to broadcast an announcement on the callee's login ports requesting
+ * contact. When the callee responds, the local server uses the
+ * recorded invitation to respond with the appropriate rendezvous
+ * address and the caller and callee client programs establish a
+ * stream connection through which the conversation takes place.
+ */