Interestingly, when I telnet from _outside_ the
network to my
 firewall's port 2320, it works, but Telnet goes into line mode rather
 than character mode! 
 Probably, as I think someone said, telnet noticing it's not using the
 standard telnet port and not even trying to go character-at-a-time.
 I did a telnet myself, snooping the network traffic, and...
 me -> you SYN
 you -> me SYN|ACK
 me -> you ACK
 you -> me data: IAC WILL ECHO
 me -> you data: IAC DO ECHO
 you -> me data: \r\n DECTEN, PANDA TOPS-20...
 Nowhere, in particular, is there any attempt at LINEMODE negotiation.
 And, when I type ?, nothing is sent until I press RETURN, upon which my
 end sends ?\r\n.
 
 
I tried doing a similar test to Mouse for comparison given that my telnet
client seems to be producing the desired behaviour (whether by accident or
by design I am not sure).  Here are the results and my interpretation of
them which may not be correct as I am a bit rusty on this stuff:
me -> you SYN
you -> me SYN|ACK
me -> you ACK
you -> me data: fffb 0100 0000 (IAC WILL ECHO)
me -> you data: fffd 03ff fd01 (IAC DO SUPPRESS GO AHEAD, IAC DO ECHO)
you -> me data: fffb 0300 0000 (IAC WILL SUPPRESS GO AHEAD)
me -> you ACK
you -> me data: \r\n DECTEN, PANDA TOPS-20...
Regards,
Peter Coghlan.