The origin question you will find at http://www.experts-exchange.com/Networking/Wireless/Standards/GSM/Q_24920816.html .
It depends on the number of data you would like to send. A connection to your ISP you make by CSD or packet switched data (GPRS, EDGE, HSPA). For such a connection you have to pay for. CSD or GPRS are handled different at base station. If you talk about a small amount of data, then you can use:
Further details here http://www.gsm-modem.de/dtmf-gsm.html
USSD is a service where you can send small packages of data (80 to 140 characters)
3. Data on Audio Codec
At http://www.gsm-modem.de/gsm-voice-encryption.html you will find information how to encrypt a GSM voice call. If you cheat the audio codec and support it with packages that already contain your data, then the audio codec will forward this information on voice channel. Some companies already offer voice encryption for standard mobile phones. If they are able to encrypt, then they are able to transmit data on voice channel too.
It is possible to transmit data on GSM voice channel or USSD. This effort is interesting for machine to machine applications (M2M apps), but maybe not for consumer applications.
Maybe the following blog posting will be of interest to you.