View Full Version : Chat and Mail problems Q&A
Irreverent
02-01-2009, 01:49 PM
Ok, more problems
I did update my config xml to point use my external IP
Updated router to push those ports to my server pc
1) Startup world
2) eqlaunch zone
3) start mail
4) start chat
But each time it starts I get loading channels from the database...but nothing appears(might be ok?)
But in game, commands don't work for chat
And mail says I'm not connect to universal server
plus, when i log in my main account I get the mail/chat keys don't match?
Irreverent
02-01-2009, 01:51 PM
Oh and to mention, I did put all of the rule_values in and set to use to true for mail server.
Irreverent
02-01-2009, 02:05 PM
Ok, had to edit the mail opcodes...they were all run together, make them on their own lines...
But, now I'm getting Unhandled mail opcode
unable to convernt eq opcode 0x0002 to an application opcode
Derision
02-01-2009, 02:53 PM
The mail_opcodes.conf may look like it's all run together on one line in notepad, but that is just because it has UNIX line endings, but it will still work fine. You may have broken something while editing in the line endings. It should look like this:
#Mail and Chat Channel opcodes
OP_MailLogin=0x01
OP_Mail=0x02
OP_ChannelMessage=0x03
OP_ChannelAnnounceJoin=0x04
OP_ChannelAnnounceLeave=0x05
OP_MailSendHeaders=0x00
OP_MailHeaderCount=0x0d
OP_MailHeader=0x0e
OP_MailSendBody=0x0f
OP_MailDeliveryStatus=0x12
OP_MailboxChange=0x14
OP_MailNew=0x10
As for the mail/chat key not matching, post the sections of your eqemu_config.xml with the <address>, <localaddress>, <chatserver> and <mailserver> blocks.
Sounds like you may have the same problem as this post:
http://eqemulator.net/forums/showthread.php?p=162551#post162551
Irreverent
02-01-2009, 04:02 PM
Tried adding my internal IP to the localhost and it doesn't seem to resolve anything...seem to keep getting the opcode unhandled
<!-- Only specify these two if you really think you need to. (read: You don't) -->
<!-- <address>some.server.com</address> -->
<!-- <localaddress>192.168.0.5</localaddress> -->
<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>68.57.224.73</host>
<port>10234</port>
</chatserver>
<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>68.57.224.73</host>
<port>7779</port>
</mailserver>
Derision
02-01-2009, 04:33 PM
For the opcode problem, re-extract them from the rar/zip they came in, or create a new copy with what I posted above.
Although the guide says not to set the address and localaddress values in eqemu_config.xml, I think you might have to in this case.
Get a dyndns name, e.g. yourserver.dyndns.com, then make your config:
<!-- Only specify these two if you really think you need to. (read: You don't) -->
<address>yourserver.dyndns.com</address>
<localaddress>Your internal IP address</localaddress>
<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>yourserver.dyndns.com</host>
<port>10234</port>
</chatserver>
<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>yourserver.dyndns.com</host>
<port>7779</port>
</mailserver>
And add a line with your internal IP address and yourserver.dyndns.com to c:\windows\system32\drivers\etc hosts on your internal clients.
I haven't run a public server for years, so any ServerOPs who have mail/chat working on a public server feel free to correct me.
You also need to forward those two ports on your firewall for external clients to connect to mail/chat.
John Adams
02-07-2009, 05:01 PM
Derision, do those ports have to be those exact numbers? Or can they be in a range that is already pointing to the eqemu server?
Here's mine, for instance - and I am getting the same results as Irreverent:
.
.
.
<address>my.dyndns.url</address>
<localaddress>192.168.1.32</localaddress>
.
.
.
<!-- Chatserver (channels) information. Defaults shown -->
<chatserver>
<host>my.dyndns.url</host>
<port>7099</port>
</chatserver>
<!-- Mailserver (in-game mail) information. Defaults shown -->
<mailserver>
<host>192.168.1.32</host>
<port>7100</port>
</mailserver>
<zones>
<defaultstatus>0</defaultstatus>
<!-- Sets port range for world to use to auto configure zones -->
<ports low="7000" high="7090"/>
</zones>
So my zones will only use 7000 - 7090, the chat server will use 7099 and the mail server will use 7100 - and on the router, 7000 - 7100 are fowarded to 192.168.1.32 (the eqemu server)
Truth is, I got an ancient router and I am out of fwds :) so I was trying to pile them all up. Maybe this won't work?
John Adams
02-07-2009, 05:10 PM
Forgot the content of the Chat window... mine too ends abruptly, and does not look like the example.
[Debug] [RULES__CHANGE] Set rule Mail:EnableMailSystem to value true
[Debug] [CHANNELS__INIT] Client (UDP) Chat listener started on port 7099.
[Debug] [CHANNELS__INIT] Loading chat channels from the database.
[Debug] [CHANNELS__ERROR] Chat Key for tess.Orunnicle does not match, closing co
nnection.
Update: Oop, it appears the Mail portion is fine, just chat that's giving me problems.
Derision
02-08-2009, 12:25 PM
Forwarding the ports within a range should work fine. I'll explain how the mail/chat key works so hopefully it should help you or anyone else figure out their problems.
The key is generated by World, just before it hands a player off to a zone. The key is a 16 digit hex number. The last eight digits are randomly generated. The first eight digits are the IP address of your client PC, as seen by world. This 16 digit key is written to the database, and the last eight digits are sent directly to the client.
When the client connects to chatserver, it logs in with the eight digit random portion of the key that world gave it.
Chatserver generates a 16 digit key, using the client IP address that it sees, along with the 8 digit random number part. It then compares this with what World put in the database.
If you are having problems, first thing to do is add the following to your log.ini file:
MAIL__TRACE=on
CHANNELS__TRACE=on
When a client connects, you will then see what key chatserver generated, and the key that was in the database:
[Debug] [CHANNELS__CLIENT] New Client UDP Chat connection from 192.168.1.50:51238
[Debug] [CHANNELS__TRACE] Received login for user BTG2.Derision with key 4CD03B97
[Debug] [CHANNELS__TRACE] DB key is [3201A8C04CD03B97], Client key is [3201A8C04CD03B97]
If you break out Window Calculator and convert the first 8 digits into decimal, you get (in this example):
32 = 50
01 = 1
A8 = 168
C0 = 192
The bytes are in reverse order, so the IP address is 192.168.1.50.
The first person who reported problems with the keys not matching found that world was seeing his 'external' IP address while chatserver was seeing his 'internal' IP address.
This was happening because he was connecting to one using his external IP address and therefore the connection was going into his router and back to his LAN, thus his client PC address was being NATted.
If you say that the mail connection is working fine, then change the hostname in the chatserver block to 192.168.1.32. Of course this will mean that no-one outside your LAN can connect to mail or chat.
The host should be your dyndns name, and then on your local PCs you should add an entry to your hosts file to map my.dyndns.url to 192.168.1.32.
John Adams
05-21-2009, 11:55 PM
Sorry to get back to this so late - life got a little busy ;)
Seems that everyone coming in from outside does not get the error I see above, which is fine. The reason I cannot hard-code a HOSTS record is because I host multiple Emulators on the same dyndns (maybe I shouldn't do that ;)) so if I force tesseq.servegame.com to 192.168.1.32. then any attempt to hit my EQ2Emu will send my client to the wrong LAN machine, right?
Anyway, if it's just me that cannot use mail/chat, I'm fine with that for now. I did get it to work at one point, because two toons were able to login and send mail to one another. Not sure if that was just a fluke, or if for a version or two, something functioned differently ;) likely the former.
Thanks for the great explain. Hopefully it ends up in a wiki somewhere.
Derision
05-22-2009, 05:04 AM
KLS added a rule to turn off the IP authentication. Set Chat:EnableMailKeyIPVerification to false.
John Adams
05-23-2009, 01:11 PM
Oh right on! Thanks!
Btw, I tried to update to the latest SVN and had no luck logging in - I'll go post a help thread on that as to not derail here... but I am greatful for the new rule!
Thanks again
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.