NOTICE: Telnet is a legacy protocol that is not used on Battle.net anymore as of 2005. All the below information should be taken with a grain of salt.
Telnet, if seen on Battle.net, has an icon that says Chat on it. Anyone using Telnet on Battle.net will always have the flags of 0x10 (UDP Plug) because they do not use UDP. Telnet is restricted to the following channels: Blizzard Tech Support, Open Tech Support, Public Chat, and The Void. All other channels are off-limits, including Blizzard Chat.
Telnet uses text, not binary. So if you send your regular binary packets, you will be disconnected and probably banned for 5 minutes. Telnet does not join or create games, since it is a text-based client and is for third-party usage only.
In Telnet, user flags are displayed in four (4) numbers (ex. 0010). They are not seen as the full eight (8) numbers (ex. 00000010) nor the normal DWORD (4 binary bytes). Channel flags can not be retrieved nor seen in Telnet, so channel flags are assumed to follow the same format.
Something worth noting, all products in Telnet are seen as their DWORD (and can be read as text, as most bots do already). For example, in Telnet, you may receive a 1001 packet with the product of STAR. You can read this as is, and it would be the same as reading from the binary SID_CHATEVENT, except it is not reversed (RATS). The same goes for every other product. This does not mean that the product field is actually a statstring, because it's not, no statstrings are available when using Telnet.
To use Telnet, you need to send the 0x03 byte instead of the normal 0x01 byte after connecting. After you send this byte, you need to send 0x04 and an end-of-line (such as 0x0D or, 0x0D and 0x0A). This will trigger the login process for your client.
Battle.net sends this to you so your client knows you need to enter a username:
Enter your login name and password.You should now send your username followed by an end-of-line. After you send your username, you should receive:
Username: Your-name-hereYou should now send your password, unmodified from settings and not encrypted, and an end-of-line. Then you should receive:
Password:There is nothing after the colon sign (:). Depending on the information you gave, you could receive a success or fail.
Connection from [22.214.171.124]This message represents that you have successfully logged on. The value 126.96.36.199 represents your IP address as seen by the server. This message is followed by 2010, 1007, 1001, and then 1018 (respectfully).
Incorrect username/password.This message represents that the user you tried does not exist, or the password you tried does not match the one the server has. You should repeat the login process, but skipping the send of 0x04. There are no more messages after this.
1001 USER <username> <flags> [<product>]This message represents someone in the channel, and is sent after 1007. The username is <username>, their flags are <flags> and their product is <product>. The brackets are static and do not represent that the product parameter is optional.
1002 JOIN <username> <flags> [<product>]Same for 1001, but this is sent after you have already entered the channel and someone entered it. A message can be displayed for this (ex. <username> has entered the channel).
1003 LEAVE <username> <flags>This message represents that someone has left the channel. <flags> is no longer supplied, but it used to be. Now the only parameter is <username>.
1004 WHISPER <username> <flags> "<message>"This message represents that someone has sent you a whisper. The <flags> are the flags of the person who whispered you. The <message> is not escaped by anything so you have to read the message carefully. The quotes have no effect, really.
1005 TALK <username> <flags> "<message>"This message represents that someone has talked in the channel. See 1004 for information.
1006 BROADCAST "<message>"This is a broadcast from the server (ex. The server will be shutting down for maintenance).
1007 CHANNEL "<name>"This message represents that you entered another channel that is called <name>. Channel flags are impossible to retrieve from this.
1009 USER <username> <flags> [<product>]This message represents that someone's flags or product has changed (ex. Someone went from being a channel operator to a normal user, or vice versa). The parameters are the same for 1001.
1010 WHISPER <username> <flags> "<message>"This message represents that you have sent a whisper to <username>. The <flags> are the flags of the person you whispered to.
1010 WHISPER your friends <flags> "<message>"This message is a duplicate of the first 1010, but instead <username> is "your friends." This message represents that you whispered to your friends instead of a single user.
1018 INFO "<message>"This message represents that the server has sent you information (ex. You are JoeUser, using Chat in the channel Public Chat 1.). Just like 1005, <message> is not escaped.
1019 ERROR "<message>"This is the same as 1018, but instead represents that the server sent you an error (ex. That user is not logged on.).
1023 EMOTE <username> <flags> "<message>"This is a duplicate of 1005, but instead is in the form of an emote instead of a message.
2000 NULLThis message represents that you are idle. This is sent every 30 seconds. Each time you send a new message, the 30-second timer is reset back to 30. Telnet connections are never killed for being idle, so this message really has no purpose. This is why some Telnet clients send "random" /users or /time commands, is to keep this message from popping up or as a response to the packet.
2010 NAME <username>This is your unique name on Battle.net. If you are logged on more than once, this is your name with a number at the end (ex. JoeUser#2) instead of your normal name (ex. JoeUser).
This covers all of the messages that Telnet gives. After you have logged on successfully, anything you send is a message or command followed by an end-of-line. If you do not add an end-of-line to your message, it is appended to your last message. So for example, let's say I entered "123" without an end-of-line then entered "456" with an end-of-line, I would of just sent "123456" to the channel, instead of "456."
Telnet's flags are the same as the regular user flags seen everywhere. The only difference is that Telnet's flags are kept to 4 characters instead of 8 characters or a binary DWORD and the flags are displayed in hexadecimal (ex. 0010 UDP would be 0016 UDP in decimal). Also, flags are prefixed with zero's if they are not equal to 4 digits.
See the related documents for more information about flags and ID's. Telnet uses the same "values" as described in those documents. If you noticed something, SID_CHATEVENT uses the same event ID's as Telnet uses, except for 1013, 0014, and 0015, which are not used in Telnet. Another irony is the packet ID's in Telnet are 4 digits, just like the flags are, so maybe a DWORD in Telnet is actually 4 text-digits.
Site scripts and design copyrights reserved to Don Cullen.
Contents copyrighted to Blizzard and their parent corporation, Vivendi.
Main credits for contents goes to Arta. View the rest of credits.
Demented Minds copyrights reserved to Don Cullen 2003-present.
Copyright infringements will be prosecuted to the fullest extent allowable by law.
Please view our legal disclaimer and terms of service.