Data over normal GSM call

Hans L thehans at
Mon Apr 14 02:57:02 CEST 2008

This thread gave me an idea which I haven't seen discussed before,
though it's probably not useful for the situation the original poster
had in mind.

Although the transfer of audio data over cell phone audio is very
lossy, there is at least one standard, proven way of transferring data
by phone: DTMF(

The standard tones allow up to 16 values to be represented at a time,
so it would be like transferring data in base16 (aka hex or 4 bits at
a time).  According to wikipedia, the minimum length of a tone should
be 70ms, which would limit data transfer to roughly 56 bits/second.
Of course this is very slow and unusable if you are thinking in terms
of web browsing, but could be useful for transmitting small amounts of
data such as URIs or other connection information(an IP address is
only 32bits).  The URIs could be accessed immediately if the receiving
end has a simultaneous internet connection, or saved for later.

Example 1: Automatically transferring a call from GSM to VOIP.
1) During a call, user A tells his phone to send VOIP connection info to user B.
2) User A's phone sets up "listening" over VOIP, and send it's
connection info via DTMF
3) User B's phone receives the DTMF signals and decodes them
4) User B's phone asks confirmation to attempt VOIP connection, and
user B accepts
5) Phone attempts VOIP connection.  If successful, the GSM connection
is terminated, and conversation continues over VOIP.

Example 2: Sending a file during a call(a camera phone picture,
e-business-card, etc).
1) During a call, user A snaps a picture and chooses to share it with user B
2) The phone uploads the file to some central repository* and sends
file URI(via DTMF) to user B.
3) User B's phone receives the DTMF signals and decodes them
4) User B's phone asks confirmation to download file
5) If user B accepts, her phone attempts to download from that URI
6) If declined(or user B does not currently have an internet
connection), URI can still be saved in a call history log to be
accessed later.

Example 3: sending GPS coordinates...(more or less same concept as
previous two examples).  It only requires the sending of two floating
point numbers(maybe single precision, requiring only 64bits, is
sufficient in this case, not sure).

-Hans Loeblich

More information about the community mailing list