I provide this information in case somebody feels like
building an alternative/better client (e.g. for the Mac). The
IPchat protocol is fairly simple and all you need to build your
own chat engine is a way of sending and receiving UDP datagrams
via port #1499 and the following information:
The following table lists all the possible command codes,
their meaning, the kind of message that follows them, and how the
receiver is supposed to behave once the whole packet is received
(note that all strings must be terminated with the NULL character
0C):
|
|
|
A |
meaning |
acknowledge HAIL |
|
<message> |
sleep code of sender (i.e. "S"
or "s") |
|
receiver action |
optional feedback into chat output
window |
|
example |
DIP[205.75.230.200]AS |
|
|
|
B |
meaning |
BYE |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
remove sender from chat list |
|
example |
DIP[205.75.230.200]B |
|
|
|
c |
meaning |
information about sender: comment field |
|
<message> |
any string |
|
receiver action |
show information about sender |
|
example |
DIP[205.75.230.200]cget
DynamIP from http://DynamIP.home.ml.org/ |
|
|
|
D |
meaning |
distribute IP address of chat
participant |
|
<message> |
IP address in dotted string format |
|
receiver action |
scan IP address and verify existence of
IPchat client |
|
example |
DIP[205.75.230.200]D205.75.230.184 |
|
|
|
d |
meaning |
information about sender: local
date/time |
|
<message> |
date/time in the following format:
dd-mm-yy hh:mm:ss |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]d23-03-97
14:48:31 |
|
|
|
e |
meaning |
information about sender: e-mail address |
|
<message> |
e-mail address |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]ecmu@bigfoot.com |
|
|
|
H |
meaning |
HAIL |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
notify user and return command
"acknowledge HAIL" |
|
example |
DIP[205.75.230.200]H |
|
|
|
h |
meaning |
information about sender: handle |
|
<message> |
handle |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]hcmu |
|
|
|
I |
meaning |
request info |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
return info about user to sender
(handle, name, e-mail, URL, location, date/time, comment,
version) |
|
example |
DIP[205.75.230.200]I |
|
|
|
i |
meaning |
information about sender: URL |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]ihttp://cmu.home.ml.org/ |
|
|
|
l |
meaning |
information about sender: location |
|
<message> |
location |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]lPalo
Alto, CA |
|
|
|
M |
meaning |
message |
|
<message> |
any text |
|
receiver action |
notify user and display text in chat
output window; send command "acknowledge
message" back to sender |
|
example |
DIP[205.75.230.200]Mhello |
|
|
|
m |
meaning |
acknowledge message |
|
<message> |
sleep code |
|
receiver action |
notify user that message was delivered |
|
example |
DIP[205.75.230.200]ms |
|
|
|
n |
meaning |
information about sender: name |
|
<message> |
name |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]nChristoph
Mueller |
|
|
|
P |
meaning |
POLL |
|
<message> |
first character of message is sleep code
of sender (i.e. "S" or "s"); the rest
of the message is the handle of the sender. |
|
receiver action |
add sender to chat list and return
command "acknowledge POLL" |
|
example |
DIP[205.75.230.200]Pscmu |
|
|
|
p |
meaning |
acknowledge POLL |
|
<message> |
first character of message is sleep code
of sender (i.e. "S" or "s"); the rest
of the message is the handle of the sender. |
|
receiver action |
add sender to chat list |
|
example |
DIP[205.75.230.200]pscmu |
|
|
|
S |
meaning |
sleep ON |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
update chat list (sender went into sleep
mode) |
|
example |
DIP[205.75.230.200]S |
|
|
|
s |
meaning |
sleep OFF |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
update chat list (sender woke up from
sleep mode) |
|
example |
DIP[205.75.230.200]s |
|
|
|
T |
meaning |
text |
|
<message> |
any text |
|
receiver action |
display text in chat output window |
|
example |
DIP[205.75.230.200]Thello |
|
|
|
t |
meaning |
private text |
|
<message> |
any text |
|
receiver action |
display text in chat output window and
make user aware of the fact that this text was sent as
private text |
|
example |
DIP[205.75.230.200]thello |
|
|
|
U |
meaning |
request URL |
|
<message> |
no message (i.e. only NULL character 0C) |
|
receiver action |
send command "acknowledge URL"
to sender |
|
example |
DIP[205.75.230.200]U |
|
|
|
u |
meaning |
acknowledge URL |
|
<message> |
URL |
|
receiver action |
load browser and display URL |
|
example |
DIP[205.75.230.200]uhttp://cmu.home.ml.org/ |
|
|
|
v |
meaning |
information about sender: version |
|
<message> |
version string |
|
receiver action |
display information about sender |
|
example |
DIP[205.75.230.200]vDynamIP
v3.02 |
|
|
|
X |
meaning |
request NetMeeting |
|
<message> |
NetMeeting SpeedDial (the *.cnf file) |
|
receiver action |
load NetMeeting and call the sender;
send back command "acknowledge NetMeeting
request" or "NetMeeting error" |
|
example |
DIP[205.75.230.200]X<*.cnf
file> |
|
|
|
x |
meaning |
acknowledge NetMeeting request |
|
<message> |
sleep code |
|
receiver action |
notify user that request was delivered
successfully |
|
example |
DIP[205.75.230.200]xs |
|
|
|
y |
meaning |
NetMeeting error |
|
<message> |
sleep code |
|
receiver action |
notify user that request was delivered
successfully but declined |
|
example |
DIP[205.75.230.200]ys |
|
|
|