Rock the Cash Box: Writing a Host Processor for a ATM
medium.com
medium.com
Fun Fact. George (the dog pictured in the bottom of the post) is the laziest husky you will ever encounter. But he is cute.
You don't really need an actual phone line, but you would have to add a dialtone, and simulate the ringing. If you controlled both sides, you could disable dial tone detection, and just "answer" whenever you please, and wire the two modems. But they don't seem to have modified the ATM, just changed some settings. So that's out, and we do have some sort of phone line. But simulating a line would be a project into itself and, if they went through such lengths, I would expect that to be noteworthy enough to be mentioned.
That, and given their unfamiliarity with modems, makes me think they actually have a phone line and are really dialing.
You would need to know how to setup Asterisk or something similar to do this, but it’s not a Herculean effort either.
Alternatively, POTS PBX devices exist as well and would work fine - though they’re harder to come by these days.
Yeah. It was an actual telephone system using a cheap ass PBX. The Pi had a modem connected which would dump the incoming messages into a python application that would do the decoding.
The RPi turned ATM API called (done over POTS), into REST calls. One side would listen for the incoming call and decode the message, and the other side would call the custom banking application.
In a "real world" example, the Pi would be the Localized Payment Processor which then forwards transactions to a remote one.