GPRS on UNIX/BSD/Linux/Windows/Palm
Note: This page is still a work in progress, check back in a few days for more updates.
Accessing the GPRS feature on bluetooth cellphones, or most likely even usb or serial cellphones, is not as terribly complex as most people seem to make it. When I did my research on it, I found a lot of half complete how-tos or guides written by people who didn't not truely understand what they were doing, therefore, the guides were incomplete or incorrect. This page is an attempt at clearing out that confusion and provide a solid guide for setting up GPRS with UNIX, BSD, Linux or Windows systems, and even including Palm OS or Windows CE palm pilots.
There are about four different parts that need to be set up and three parameters to figure out. The three parameters are the GPRS access point, username, and password.
Provider | Access Point | Username | Password |
Cingular | wap.cingular | WAP@CINGULARGPRS.COM | CINGULAR1 |
A standard modem script should work with one addition, the AT+CGDCONT line. The line uses the following format:
AT+CGDCONT=<channel>,"<protocol>","<access_point>"
<channel>, <protocol>, and <access_point> have to be replaced by the appropriate values. The channel is the GPRS channel to access on the cellphone which will just be 1 99% of the time. I have rumors that on some cellphones, channel 1 is only for the WAP protocol over GPRS, not IP, and you need to use channel 2 on those phones. As I have never seen this first hand, I can't vouch for it, but you can try changing it to 2 if you can't get it to connect with 1. The protocol should be IP, as I don't think any host operating systems support any other protocol. The access_point should be whatever is appropriate for your service provider. Here is the line that I use:
AT+CGDCONT=1,"IP","wap.cingular"
The next piece to set up is the phone number to call. If you use a regular phone number, the phone will attempt a data call over GSM instead of making a GPRS connection. A GSM data call cost minutes, but a GPRS connection cost megabytes with my provider. I have unlimited data transfer, but limited minutes with my plan so I choose GPRS. The phone number to call is something like *99# to initiate a GPRS call. Some phone require more data to be specified or other parameters in the phone number. I don't know the full details on what the phone number means, but I know that some people need to use *99***1# which says use channel 1 for GPRS. Again, some people might need to use *99***2# for channel 2, but I can't confirm this. Both *99# and *99***1# work on my phone.
The last piece of information to figure out is the username and password to login to your service providers GPRS access point. A search on google yielded a long list of GPRS access points as well as the appropriate usernames and password for many different service providers. I was able to figure out the access point name as well as username by looking through the setting on my phone, but the password was hidden. Searching on google, I found the corresponding password. Then I set ppp to use the appropriate username and password in the appropriate config file.