Getting Dial-Up To Work Over VOIP Isn’t Always Easy

Dial-up modems used to be the default way of accessing the Internet, but times have moved on. They’re now largely esoteric relics from a time gone by. With regular old phone lines rather hard to come by these days, [Peter Mount] decided to try getting a pair of dial-up modems working over VoIP instead.

The build started with a pair of Linksys PAP2T VoIP phone adapters, which were originally designed for hooking regular phones up to VoIP systems. He paired each US Robotics modem with a PAP2T, and then hooked both into a VoIP Private Branch Exchange which he set up using 3cx on a Raspberry Pi 3B+. The Pi also acted as a server for the modems to connect to. It took a lot of fiddly configuration steps, but he found success in the end. On YouTube, he demonstrates the setup—with that glorious modem sound—communicating successfully at a rate of 9600 baud.

It’s nice to see this vintage hardware communicating in a what is effectively a simulated world created entirely within modern hardware. We’ve seen similar projects before, like this attempt to get dial-up going over Discord. If you’re doing your own odd-ball screechy communications experiments, don’t hesitate to drop us a line!

26 thoughts on “Getting Dial-Up To Work Over VOIP Isn’t Always Easy

  1. VOIP codecs intended for coding voice are going to really mess with tones used for data, and the modems have to fall back to pretty low rates to make it through the lossy compression. I’m surprised they can make it to 4800 bps.

    I’ll guess the landline VOIP codecs don’t throw away as much as the GSM ones did — they were awful. 300 bps was do-able. 1200 bps generally not, even though the underlying GSM bit rate was in the neighborhood of 13 kbps. Some phones of that era did have a 9600 bps serial port that twiddled the GSM bitstream unmediated by a voice codec, which was cool.

    Maybe a solution is text to speech over VOIP and speech recognition on the receiving end :-)

    1. G.711 is 8 bit PCM at an 8KHz sample rate, so 64kbps each way. It’s much higher quality than GSM.

      Modems really don’t like the variable latency you get with VoIP. Once you add in even a small amount of packet loss, they tend to fail completely. They will work much better if you can get a hold of some analog PBX gear.

      1. It’s a non-issue if you use a protocol to SSH like Mosh (protocol). Which is designed for package loss on low grade mobile connections. I do believe the experiment in the article would work way better with it.

    2. I love it, TTS just to get it over the wire. The only thing even dumber is for a stenographer to transcribe speech into text first. And, I suppose, someone on the other end reading aloud some ASR text.

    3. Seems like G.711 would work fairly well, isn’t that what the telcos used at the central office for digital trunking?

      Reminds me of a quick demonstration I did several years back which involved trying to connect two dialup modems directly to each other without a CO. I had to simulate a wet pair and generate dialtone, but I got them to handshake at 33.6k in the end.

      1. its not the code – its the jitter – i used to run fax machines on these adapters – the new ones trying to connect on 14400 or more needed to be often manually configured to not do so or the transmission often failed – not always but often

    4. Original article author here.

      You are correct about the codecs, and even these ones have limits.

      I found that baud rates up to 4800 were pretty stable, 2400, 1200/75 & 300 definitely were stable with the latter working on remote dialup as I had that working with a Minitel terminal connecting to Telstar’s service.

      Rates higher than 4800 worked to a point but did have line noise from where the codecs started to affect them.

      The machines I use this for are all from the 1980’s & early 90’s so they all used the slower rates which works well with VoIP.

        1. We tried intensively to make this work back in the 90’s over cable companies Voip, but to no avail, the variable latency killed established connections, and when you were not in control of the codecs used it was impossible, the T38 fax codec should work though.

        2. That matches my personal experience using a fax on a VoIP connection (an HP MFP printer with a built in fax, in my case). Typically it’ll drop down to V.27 speeds, 4800 half duplex, which makes for a painfully slow transmission but it does work fairly reliably so long as the system on the other end is still a real fax machine and not some sort of modern alternative device/service.

    5. During handshake, modems will start at 300bps send “command” sounds to the SS7 switch gear to disable various settings like filtering, cancelers, and echo, using v.8 bis.
      It will even act upon SS7 replies such as telling the modem if it is a landline, digital, or cellular connection, before determining which encoding to agree upon.

      All that happens before the two modems start a known wide spectrum probe so each can tell if there are frequency blocks/interference or transmitting power issues.
      Finally they each communicate their available (and functional) baud rates.

      VoIP gear (at least up to a decade ago) did not support any of this, ignored ss7 commands, and of course filtered down the audio range to uselessness.
      (I only say up to a decade ago as the extent of my knowledge, not saying it’s supported now or not)

      You can do an image search on “the sound of the dialup” to see an amazing visualization and annotation of a modem handshake, and just how early in the process the lack of ss7 commands break things.

  2. You can get even more ancient with an old piece of chat software I used to run.
    It was a program called Diversi-Dial (D-Dial for short.) It used an Apple //e with 7 internal modems at 300 baud where the user on one modem could chat among the other 6 modems and a person at the keyboard.
    There was a card called an Interface II card that could be used to connect 2 D-Dial machines together, but back in the day there was a service called PC Pursuit, where you can use SprintNet’s system at night to dial modems in distant cities from a local phone number. The blazingly fast speed of the D-Dial systems was 300 baud. or roughly 30 characters per second. There were about 80 or so systems at one time around the
    United States and Canada. This lead to many systems linking together for what at the time was a LOT of people. You could send a private message to someone and the recipient wouldn’t see it for 5 or more minutes. The software was surpassed by an IBM version called the Synergy Teleconferencing System.
    If you visit http://www.ddial.com you can see the emulated systems that are running today.
    You can read more of the history there. You can chat on http://www.magviz.ca too.
    There is an old STS system connected there too. There’s a real D-Dial system, online too but it is not
    connected but still accessible via Telnet. With today’s high speed systems and instant anywhere communication, those old D-D-Dial stations are very primitive. The cost to have 7 phone lines installed at your house was expensive and D-Dial sysops (for you youngsters system operators) would charge between $10 and $20 a month to help with the phone bill. D-DIal was billed the original anti-social network.
    People who were the so-called ‘outcasts’ of the day found a place they could find like-minded people.
    Friendships, relationships and marriages blossomed and died, and now even 40+ years later, D-Dial lives.
    Hope to see you all online.

  3. Fun fact I like telling people, the Hayes “AT” command set exists in every modern mobile phone.

    “The Hayes AT command set, originally developed for dial-up modems, has been adapted and expanded for use in cellular communications. In mobile devices, these commands facilitate communication between the application processor and the baseband processor.”

    Just neat that something from that long ago is still ATDT-ing in modern hardware.

    1. Indeed. It’s been expanded to support things like SMS too. I used an Adafruit cellular board to act as an SMS endpoint to be able to remotely reboot network gear if there were network issues at an unattended site.

  4. Next project: disassembling paper letters molecule by molecule and somehow reconstituting them on the other side of an internet connection in their original form in order to communicate in written text.

  5. The problem is that these ATA’s do dynamic buffer adjustment. Fast modems just cannot understand this, as they’re programmed to ingest a steady byte stream – not one that suddenly has free extra bytes inserted. They’ll lose sync and give up.

    But hey, this setup probably has no jitter at all so it will work, and get you some nice IP over voice over IP.

  6. Getting this to work on enterprise voip gear with vendor support isn’t easy either. So often large companies will just buy a hand full of analog lines to support fax machines and other legacy systems.

    My wife worked on a project to VOIPify fax lines and it was finicky. The systems that supported it well (a long with modems) basically lied about transmitting voice and were modems themselves. I forget the codecs, but even those systems were finicky.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.