Dial-up server: Setting up a virtual POTS infrastructure

I have dial-up server and client software that I want to be able to test and script. Unfortunately, I don't own a landline. Much less, multiple lines that I can use to test concurrent connections.

What I do have, is a handful of modems and a computer to plug them into. Is there any way that I could simulate a phone line in such a way? As in, actually be able to plug in a landline telephone in, get a dial tone, be able to dial a number, and route it to my software on the server?

I appologize if this is not the appropriate forum for this question. I'm afraid I have no idea where to start with this, or if what I'm attempting is entirely half-baked.


Solution 1:

OK, so back in the olden days what we did to simulate this was to connect two modems back-to-back via their telephone line ports and a phone line cord. Then we would disable dialtone detection on one modem and dial out with it, and then have the other modem "answer". The two modems will happily talk to each other without an intervening telephone network, though you are limited to 33600 bps. You can't auto-answer because there's no telephone network and thus no ring signal.

If the modem is generally Hayes compatible, as virtually all modems are, it should be sufficient to "dial" with:

ATX0D

and answer with:

ATA

Solution 2:

You can attach the modems' telephone lines directly to each other. Simulating a ring pulse, however, to get the "remote" modem to pick up automatically is going to be problematic. There are a variety of "telephone line simulators" out there, ranging in functionality and price. If you want to terminate faster modem speeds (like V.90) then you're going to be talking about spending some significant money for a simulator. If you just want "plain vanilla" 9,600 - 38,400bps then you can probably get away with one of the simple analog line simulators. A search engine will give you a variety of results.

I'd be wary of trying to do something with VoIP gear and Foreign Exchange Station (FXS) ports. Even getting 9,600bps to work in that kind of scenario, w/ CODECS in play, can be problematic.