MindTester Messenger Protocol

MindTester Messenger Server Readme

MindTester Messenger Server is an attempt to write an open protocol IM server that makes authoring a client very easy. This program is still in development, but is near completion. This package is a demo/beta version that supports 5 simultaneous incoming connections. The Installation directory contains two subdirectories. The Logs Directory contains the running log of server activity in plaintext. The logfiles are named [todays date].log. The Users directory contains the main userlist (imusers.pwf), and each users watchlist ([username].lst). Once running, start the server, and telnet to localhost to access it. Because it was meant to be accessed by a yet unwritten client, the server does not support backspaces. If you mess up typing a command, simply hit enter once or twice, and get the Invalid Command message. For anyone looking to write a client, all server responses are proceeded by Carriage Return/ Linefeed pairs. What follows is the latest Command/Response list for the server. Please report any bugs to bugs@mindtester.com.

Command/Response list

Unprompted Server Responses:

The following are messages the server may send at any time without a command

 

Command:

+RECV [username] [Message]

Description:

Occurs when [username] sends a message to the logged on user of text [Message]

 

Command:

+AWAY [username] [Away Message]

Description:

Occurs when User sends a message to a user that is set to away (message is still sent)

 

Command:

+AUTORESPONSE [username] [Message]

Description:

Occurs when [username] sends a message to the logged on user, and the user is set to away status, and the away message has been sent by the server

 

Command:

+DCREQ [username] [IP:PORT]

Description:

Occurs when [username] sends a request to directly connect to the logged in user.

 

Command:

-DCREQ [username]

Description:

Occurs when [username] sends a request to cancel a DCREQ

 

Command:

+STATUS [username] ONLINE

-STATUS [username] OFFLINE

Description:

Occurs when a user on your list comes on, or goes offline, or in response to the Status command

 

Standard User Commands:

Command:

Create [username] [password]

Description:

Creates an authorized user account on the server and logs the created user on if successful

Responses:

Success:

+CREATE [description]

Fail:

-CREATE [description]

Command:

User [username] [password]

Description:

Logs in user, passwords are case sensitive

Responses:

Success:

+Welcome [description]

Fail:

-Welcome [description]

Command:

SetAway [Away Message]

Description:

Sets users status to away and autoresponds with away message in response to incoming messages.

Responses:

Success:

+SETAWAY [description]

Fail:

-SETAWAY [description]

Command:

SetBack

Description:

Sets User Status back from away, and deletes away message from server.

Responses:

Success:

+SETBACK [description]

Fail:

-SETBACK [description]

Command:

SetInfo [User Info]

Description:

Sets the user info

Responses:

Success:

+SETINFO [description]

Fail:

-SETINFO [description]

Command:

GetInfo [username]

Description:

Retrieves the specified users info

Responses:

+INFO [UserName] [User Info]

Command:

CHPASS [OLDPASS] [NEWPASS]

Description:

Changes user password

Responses:

Success:

+PASSCHANGE SUCCESS

Fail:

-PASSCHANGE FAIL

Command:

msg [username] [Your Message here]

Description:

Sends [Your Message here] to [username]

Responses:

Success:

No response on success

Fail:

-MSG [Description]

Command:

GetList

Description:

Returns the users watchlist

Responses:

+LISTITEM [username] [group]

Once for each user on your list

Command:

Add [username] [group]

Description:

Adds a user to your watch list

Note: Once added, the server will respond the Status responses when a user on the list goes on or offline

Responses:

Success:

+LIST Updated

Fail:

-LIST [Description]

Command:

Remove [username]

Description:

Removes a user From your watch list

Responses:

Success:

+LIST Updated

Fail:

-LIST [Description]

Command:

Status [username]

Description:

Checks a users online status

Responses:

Success:

+USER Status ONLINE

Fail:

-USER Status OFFLINE

 

Command:

DCONNECT [user] [port]

Description:

Sends a request to directly connect to [user]. Before sending this command the client should establish a socket to listen and accept a connection on port: [port] for the receiving user to connect to. A success response simply means that the request was sent, and not that the user is directly connected.

Responses:

Success:

+DCONNECT [description]

Fail:

-DCONNECT [description]

Command:

DCCancel [user] [port]

Description:

Sends a DCREQ to cancel a a DCCOnnect command, or to refuse a direct connection.

Responses:

Success:

+DCCANCEL [description]

Fail:

-DCCCANCEL [description]

Command:

Info

Description:

Returns Username and Password of current user, this is a leftover command from debugging the server.

 

Administrator Commands:

 

Command:

MakeAdmin [username]

Description:

Upgrades [username] to Administator status

Responses:

Success:

No response

Fail:

-MakeAdmin [description]

 

Command:

MakeStandard [username]

Description:

Downgrades [username] from Administrator status to Standard User Status.

Responses:

Success:

No Response

Fail:

-MAKESTANDARD [description]

 

Command:

Boot [username]

Description:

Boots a user offline

Responses:

Success:

+BOOT [description]

Fail:

-BOOT [description]

 

Command:

DelUser [username]

Description:

Deletes a users account from the authorized user list and if online, boots them offline.

Responses:

Also responds to the boot command that automatically gets sent after user is deleted.

Success:

+DELUSER [description]

Fail:

-DELUSER [description]

 

Other Info:

If commands are passed before a user logs on:

-Please Authenticate; Command USER

If an invalid command is given:

-Invalid Command: [description]

General Error:

-ERROR: [Descripton]

© 2003-2012 Mindtester.com