One of the most miserable aspects of my day job is the need to occasionally investigate problems with machines scattered in remote locations all over the world that don't have network access to the outside world. Sometimes its possible for local staff to tether over a 3G or similar modem to provide access, but often thats not possible due to lack of signal or lack of technical ability on site. In these cases I have to make due with a telephone whatever local technician (or sometimes janitor) is available to work with me, typing in the commands I recite to them and responding with the output, often someone with limited or no linux or even computer experience. Often getting a more qualified technician to the site would require chartering a flight.

I can confirm that talking someone through editing a file in vi who doesn't know the difference between 'slash' and 'backslash', how to hold shift to generate a colon instead of a semicolon is excruciatingly painful. "Ok, now its showing a squiggly thing followed by a kind of weird looking line thing and then another squiggly thing". Oh, and it beeped on me with some sort of error message that I didn't read.

Basically I'm using the person on site as a very slow phone->terminal converter with an amazingly high error rate. I had the idea to cut out the middle man and using a speaker and microphone on the computer and tell the tech to just hold their cellphone up to the machine and use it as a very old-school acoustically coupled 'modem', Where I would run a terminal program on my computer which would convert my lines to some sequence of tones that could be transmitted over the phone, into the Linux machine, and be converted back into commands, the output of which would then get converted to tones, back over the phone ,etc, providing me in effect with an extremely slow terminal. There are a few methods for tranmitting data which may survive cell phone transmission, such as Morse Code or OliviaMode.

I was hoping for information on packages to accomplish this either in whole, or as various pieces that I could use to construct this solution, or provide other ideas about how I could accomplish this task. Google has turned out nothing of use, with the exception of the aforementioned 'OliviaMode' which could possibly be used as a transmission protocol.

  • Great real-life problem! Aug 10 '12 at 16:30
  • As someone who provides technical support over the phone, I can empathize. Hope we get some pointers here.
    – rsaw
    Aug 10 '12 at 16:31

Take a look at minimodem.

minimodem - software audio Bell-type or RTTY FSK modem
Copyright (C) 2011 Kamal Mostafa <kamal@whence.com>

Minimodem is a command-line program which generates (or decodes) audio
modem tones at any specified baud rate, emulating an old Bell-type or
radio-teletype FSK modem.  The tones can be played to (or recorded from)
the PulseAudio system or to an audio file.

Minimodem can be used to transfer data between nearby computers using an
audio cable (or just via sound waves), or between remote computers using
radio, telephone, or another audio communications medium.



In terms of packages, there is soundmodem which seems to be what you want. It's not on a standard distro, so it would have to be installed and set up before the boxes go into service.

Alternatively, you could ship (to every computer in the field) a usb 56k modem (landline phone) with a rj11 to 3.5mm converter (cellphone) kept with every computer in the field.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.