|
Post by Jim Brain on Apr 6, 2004 1:01:16 GMT -5
Enhancements/Additions- Refactored code from one source file to proper set of source files.
- Refactored IP and serial code out of modem emulator.
- Cleaned up NVT command parser.
- Added proper tracing and logging.
- Fixed 8-bit transfer issue (now truly 8-bit clean).
- Added support for inverted DCD pin.
- Added support for modem startup init commands.
- Tweaks to better emulate Hayes commands.
- Tracing support. Can trace input to modem core, output, input from IP, output from IP. Very nice for diagnosing issues.
- Proper RTS/CTS hardware flow control support implemented.
- Option to have modem report different DCE connect speed.
- Proper makefile for project.
Things left to do before 1.0: - Add support for user defined "sorry" text
- Alias phonebook support (atdt555-1212 --> telnet jbrain.com)
- Disconnect timer
- Better algorithm for +++ handling
- Support for setting TERM environment via at commands
- Finish support for all AT extended commands
- Add software flow control option
The code is at www.jbrain.com/pub/linux/serial/tcpser-0.9.tar.gzFollow on projects: Write a daemon that listens on serial port for 'RING' and calls tcpser and checks the response text. If no error text is found, answers modem on serial port and bridges serial line to IP. This will allow a telnet BBS to also accept incoming calls from a real phone line.) Use the tracing function in tcpser or other means to decode CommNET and related protocols. Then, write a service that will allow all such protocols to interoperate. This will allow BBSs on different protocols a bridge, and also allow BBS sysops a way to make one call and get a complete remote news feed. Jim
|
|
|
Post by Dr. Video/ADDiXiON on Apr 10, 2004 15:32:09 GMT -5
Brain,
How are things coming with your punter testing?
Yesterday I successfully uploaded AND downloaded to/from the Last Stand BBS using punter (from NovaTerm on my c64). The change I made was to dial out through TCPCom instead of BBS Server.
I got no bad blocks, until TCPCom's data window buffer filled up and crashed. TCPCom doesn't recycle the memory, it just keeps eating it up until no room is left. I get around this by highlighting the text in TCPCom's window and deleting it frequently for longer transfers.
Now this was without flow control at 2400, by the way. I think the IAC bug in BBS Server may be a key issue here as to why this does not work when dialing out through BBS Server. But, as you explained to me, you felt it has to do with the way BBS Server handles buffering. Maybe Leif can talk about that?
I also transfered files via punter to a c*base BBS in Sweden with no errors (120 blocks). So I feel confident that Punter and telnet are very compatible. But this is all at 2400. How are things going at 38400? I know you mentioned you had xmodem working....
I hope Leif can get the bug fixed, because right now I do not have the time to setup a linux box to run TCPSER. And it would be best of we had working solutions for both platforms to get more people doing this.
Question for Voyager: You running BBS Server right? I am surprised anything worked, I though the buffering would be a problem on your end to. I frequently see buffer overrun msgs in the bbs server log.
|
|
|
Post by Jim Brain on Apr 10, 2004 19:17:22 GMT -5
ALL protocols are tested and working at 38400 and below except z-modem (I I have not yet tried it...)
From me to you, I doubt IAC is an issue (I think the IAC code only kicks in on an outbound call, and I was inbound. I still think flow control is the issue.)
I am planning to restructure some of the code to get a Win32 version running. Still, though, Leif can probably address the issue. I thinhk, though, he said it was going to have to wait, as his time had gotten limited lately.
JIm
|
|
|
Post by Dr. Video/ADDiXiON on Apr 10, 2004 19:36:52 GMT -5
Hey that is great to hear!!!
I replaced the cable Leif made for me with the RS26-1496C Radio Shack null adapter. It works like a charm out of the box with BBS Server. I know Voyager has his bbs set up using one of these, and I thought perhaps it may have been the reason the transfers worked on his bbs, but not on mine. So I've made the switch and next time he calls, he can try the transfers. I would do it myself, but I don't want to go buy another cable and null adapter just yet.
If I can score a Turbo232, I won't need one.
|
|
|
Post by Leif Bloomquist on Apr 13, 2004 11:48:50 GMT -5
as you explained to me, you felt it has to do with the way BBS Server handles buffering. Maybe Leif can talk about that? Eh? Buffering? Do you mean flow control? I hope to have an hour or two this week to address a couple of small things, that will result in RC2: -Check the first incoming byte of the session, and 255="Real" Telnet session (i.e. to Linux), anything else means a Telnet BBS. In the latter case, data will be passed transparently. -Get rid of the popup boxes if an unknown IAC code is received (when a Real Telnet session is in progress). -Add an option to enable hardware flow control, which should help for higher baud rates, based on what I've read here.
|
|
|
Post by Dr. Video/ADDiXiON on Apr 13, 2004 12:25:01 GMT -5
Yeah I meant flow control. I see frquent overrun and framing errors getting logged (a few every other call or so, depending on what the user is doing...usually reading posts/playing games), so the speed of flow coming into BBS Server is exceeding what it can shove down the wire at 2400 BPS.
It needs to buffer some of that data I think. Brain can explain this better than I can, I haven't done that kind of programming before.
|
|
|
Post by Dr. Video/ADDiXiON on Apr 15, 2004 14:30:39 GMT -5
How are things coming along guys?
I got my CMD hardware, gotta track down a Swiftlink or T232 cart now...!
|
|
|
Post by Jim Brain on Apr 26, 2004 3:12:20 GMT -5
Changelog: - Escape sequence now conforms exactly to Hayes(tm) standard.
- Inactivity timeout now supported. Set via S30 register
- Emulates multiple rings (s0=5 will print 5 "RING" sequences on screen at 4 second intervals before answering.)
- Beginning support for phonebook (atdt5551212 will dial jbrain.com:5000, for example.) Needed for some apps that only allow numeric phone numbers to be entered.
- if s0=0 and no one answers the call, call will terminate with error message sent to caller after 20 rings (80 seconds). I might make this is parm
I want to do 3 things before putting out 1.0: I want to support user-defined error text files for the 2 error situations (all modems busy and no answer) and on connect I want to finish up the phone book system, so you can add entries via command line or read from a file I want to switch code from using processes to threads... Post 1.0: Rewrite serial routines to work with Win32. Then, I can compile for Win32. Code is at www.jbrain.com/pub/linux/serial/tcpser-0.9.9a.tar.gz
|
|
|
Post by Dr. Video/ADDiXiON on Apr 26, 2004 12:31:23 GMT -5
How about a "system not up now" message setting. I like this feature of BBS Server because I frequently take the BBS down to work on, but I want to make sure a caller knows this so he will try again later.
So you could to something like:
./tcpser /dev/ttsy0 -s 0 -msg "The system will be back up shortly"
-s 0 (0 baud rate means the board is down)
-msg (the message to display to user before disconnecting)
Question: Does tcpser tell a caller if someone is already online?
|
|
|
Post by Jim Brain on Apr 26, 2004 17:21:56 GMT -5
I will add that.
Yes, if all available modem slots are busy, the system will print a message to the caller. I intend to make that a text file that can be read...
Jim
|
|