I need emulate a modem in code

Posted on 2008-11-13
Medium Priority
Last Modified: 2013-12-27

I need a modem emulator or similar to "system test" a server that includes modem communications with the outside world, because I can't actually dial the outside world for tests.


I work with a server that includes a bank of modems and phone lines that connect to hundreds of remote devices in the outside world. The remote devices are installed at our customer sites, and are relatively simple -- they auto answer, handshake with the server application, accept a command, upload some data, then disconnect. The problem is how do you fully system test such a server without hundreds of external test sites? (We can't contact our customers for the tests.)

My thought is emulation -- build system emulating modem bank and the remote devices. The test server's comm ports would be physically connected to the emulator's comm ports (i.e. null modem), and the emulator would look like modem hardware (proper treatment of hook, RTS/CTS, AT commands, etc.) so the test server would think it is dialing the outside world and connecting to remote devices, when in fact it is only talking to our emulator.

Problem: where can I get specs to code (or get actual code) for a modem emulator? (Our remote device protocol is simple and 100% known to us, so emulating that part is easy.)

Thank you in advance,
Question by:parkerea
  • 2
  • 2
LVL 57

Accepted Solution

giltjr earned 400 total points
ID: 22960256

Author Comment

ID: 22978570
Close, and pretty cool, but I am not sure if it is what I am looking for. (Surprisingly, it is EXACTLY what I need for completely different part of this project, testing a functions of the system that uses mulitple COM ports that connect to other hardware, not modems).

Are you suggesting running com0com on the system under test, or on the emulator? I suspect it is on both as I think it establishes "COM port pairs" -- 1 on the system under test, 1 on the emulator. If this is your thought, it does not quite fit as we need the system under test to maintain its hardware, with the exception of the modems.  I.e., unplug the modems, plug in the emulator system in their place by using null modems. We also need the system OS and software configuration to be very close to production.

Thank you again,


Author Closing Comment

ID: 31516473
My previous comment was probably wrong, so I have awarded the points to you. Thinking about it again, I realized that the modem pool probably uses a driver something like. The production system has 64 phone lines and modems (!),  but in my head I was picturing traditional serial port connected modems -- clearly NOT what our system actually has -- so I bet there is simply no way to replace the modems with null modems, because I bet there are no serial ports at all.

Thank you one more time!
- parkerea
LVL 57

Expert Comment

ID: 22979931
Thanks for the points.  After re-reading I realize now that what you originally asked for was not what I gave you, but I'm glad that you could use it.

You are correct.  If you are connecting to a modem back of 60+ modems, you have some type of special driver.  I don't think that Windows (or Linux) is going to support 60+ com ports.  They might, but typically I think I have seen up to 8.  You run out of IRQ's and memory addresses real quick trying to do 64.  :)

Featured Post

Get quick recovery of individual SharePoint items

Free tool – Veeam Explorer for Microsoft SharePoint, enables fast, easy restores of SharePoint sites, documents, libraries and lists — all with no agents to manage and no additional licenses to buy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…
This article will show how Aten was able to supply easy management and control for Artear's video walls and wide range display configurations of their newsroom.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question