Cellphone_Internet_connection with GPRS/EDGE and (standard) over the air Dial-up
Test if these instructions will work for youEdit
If you have a cell phone with a built-in browser that can connect to the Internet then you are able to try this. If your browser on your phone doesn't work ask your cell phone service provider and your cell phone manufacturer for help.
If you don't have a built-in browser you can download a trial copy of the Opera browser to your computer and then upload and install it on your phone. You don't want to use your phone to surf for the software and install it over-the-air (OTA) since you will pay (a lot) for data access (or use up your kbytes).
If you can't get a browser for your phone working it may be that the following will not work for you either. You can read your cell phone manual or ask your cell phone service provider if you can get "data access" for your phone. You can ask to trade-up for a phone that does offer this funtionality.
You can test if the following would work by opening your cell phone browser. Your cell phone service provider's "Home Page" is often free, otherwise it will only cost a few cents (since it should be a tiny page).
Differences from ADSL or Land-line Dial-upEdit
Once you have confirmed that you have data access on your phone you are able to connect directly to your cell phone service provider's network and have medium speed Internet access using GPRS/EDGE. This is like using ADSL or a cable modem (except much slower and much more costly).
Note: I am still working on getting regular dial-up to operate on my phone so references in these notes to regular dial-up are incomplete. You may wish to try setting register s35 to 0 for DigitalData mode (ATS35=0). My phone won't allow me to alter S35 so I need a workaround... I have GPRS/EDGE working great. This information is still a work in progress, the tech support lines seem unwilling (claiming incompetance) to assist.
The second connection we are going to setup is direct dial-up to an ISP. This may be a regular dial-up number to your cell phone service provider's network or to another ISP (AOL, your home phone number, etc). This is like using a standard modem over a land-line except your modem is in your phone and you connect wirelessly. The resulting connection is not likely to be as fast as 56k and you will incur normal voice call usage charges.
Data plans are usually expensive. Try to choose one that gives you the most megabytes for a cost you are willing to pay. An extra 25 megabytes for $20 is OK if you can get that deal from your cell company. Anything close to unlimited data will cost over $100 per month. These plans are usually only offered for Blackberry phone so the setting they give you (and the Network they connect you to) may offer you features you must pay for and not use.
Voice plans can be purchased with unlimited airtime, they are usually offered at a more reasonable price. The data rate will be slow. Keep your phone plugged into the wall socket. ;) Remember this tutorial does not (yet) include using the 'voice-line' airtime, only the high speed data 5 cents / kbyte rates.
A cell voice (modem) connection charges for "airtime" but not for data transfered.
A cell GPRS/EDGE connection does not charge for "airtime" only data transfered.
You can remain connected constantly and send small 'keep-alive' packets for a low charge. You don't need 'keep-alive' packets for a voice (modem) connection as far as your cell phone company is concerned (they won't hang up your phone) but the server you contact might need 'keep-alive' packets that has nothing to do with your cell phone company.
Depending on your cell phone ISP provider and the APN you choose you may get direct access to the Internet or through a NAT firewall.
If access to the Internet is granted through a NAT server it does "Port Address Translation". You will need to make sure that a server responds to any application/device via the “reply port and IP” address which is contained in the frame of the data packet it receives. The address you 'think' you are at and the one that people on the Internet 'think' you are at are not the same.
My cell phone ISP's NAT firewall stealths all ports (that I tested).
Depending on your cell phone ISP provider and the APN you choose you may need to send 'keep-alive' packets. There are "Network Session" timers and "TCP/UDP timeouts" that can cause confusion if you don't understand them.
To maintain your "Network Session" (keep your dynamically assigned IP address) you need to move your location (to change cell site) or send a 'keep-alive' packet. You might get away with waiting 35 minutes but every 20 minutes is safer.
To maintain your "Network Connection" (keep your port) you need to send a 'keep-alive' packet every 40 seconds for UDP and every 15 minutes for TCP.
Setup for Cell Phone Dial-up Modem or GPRS/EDGE ConnectionEdit
The following instructions apply to either setting up a GPRS/EDGE connection or setting up a regular dial-up number (using your phone as a standard modem).
Where a difference between the two is needed it will be indicated. These instructions are for WinXP since coLinux doesn't have direct hardware access.
(Not completed yet)
There are four seperate threads in these instructions depending on what you are doing. It is easier to integrate them together since the instructions are very similar. (Note: I am still working on getting regular dial-up to work on my phone so there are only two seperate threads. I was getting progress but can't get a hold of the person who was helping. Tech support is dumfounded by the complexity of getting the service you pay for.)
Set up your Cell Phone ModemEdit
Install the software provided with your phone (on a CD) or downloaded from your cell phone manufacturer's web site. This software is used to manage your contacts and transfer data with your phone. It also contains drivers for WinXP (if needed) and drivers that are installed on your phone (if needed). Once you get that working come back here. This procedure is for connecting with a USB cable but you might be able to use an IR port or Bluetooth depending on the capability of your phone.
Check that your cell phone is connected and working by doing the following:
Left-click on the [start] button and left-click on the [Control Panel button.
If the left panel says "Switch to Classic View" then click on "Printers and Other Hardware" and then click the "Phone and Modem Options".
If the left panel if it says "Switch to Category View" then click on "Phone and Modem Options".
With the "Phone and Modem Options" window open click on the [Modems] tab.
You may see a few choices. Look for your cell phone's name and USB. Note the "Attached To" port number. I found that the port chosen did not work for me and I changed to a different (unused!) number and it worked. This is where some people have trouble and this may fix your difficulties.
If you correctly installed your software you may need to reboot BOTH your computer and your phone or you will get a message that says "The modem failed to respond. Make sure it is properly connected and turned on..." Don't forget to unlock your phone and check that the cables are tightly fitted.
Click on your cell phone modem and click the [Properties] button to open the 'Modem Properties' window. Click on the [Diagnostics] tab and click the [Query Modem] button.
You might see something like this:
Command Response ATQ0V1E0 Success AT+GMM Success AT+FCLASS=? 0 AT#CLS=? COMMAND NOT SUPPORTED AT+GCI? COMMAND NOT SUPPORTED AT+GCI=? COMMAND NOT SUPPORTED etc.
That means it is connected properly (even if every "AT" command is not supported).
If you get a message saying "The modem failed to respond...." then it is not connected properly. Try using the manufacturer's software that came with your phone. If it doesn't work ask them for help and then come back here and do this test again. Once you get your phone properly connected then you can continue.
Setup an APN for GPRS/EDGEEdit
If you are setting up a GPRS/EDGE connection (and not a regular dial-up connection) then you need a special init string to set your "Access Point Name" (APN). Your cell phone company should provide you with this info.
In your 'Modem Properties' window click the [Advanced] tab and set one of the following "Extra initialization commands:" (depending on your cell provider):bbbbnn
Tweaking Modem SettingsEdit
The first time you read these instructions and test your connection you may wish to skip forward two sections to "Set up your Network Connection" before you try adding non-default settings that might cause your setup to fail. You can come back here when everything is working properly.
The format of the AT command "+CGDCONT=" is as follows:
AT+CGDCONT[=[<cid>[,<PDP_type>[,<APN>[,<PDP_addr>[,<d_comp>[,<h_comp>[,<pd1>[,…[,pdN]]]]]]]]]]<cr> <cid> - (PDP Context Identifier) numeric parameter which specifies a particular PDP context definition. 1..max - where the value of max is returned by the Test command <PDP_type> - (Packet Data Protocol type) a string parameter which specifies the type of packet data protocol "IP" - Internet Protocol "PPP" - Point to Point Protocol <APN> - (Access Point Name) a string parameter that represents logical name used to select GGSN or external packet data network. If the value is null or omitted, then the subscription value will be requested. <PDP_addr> - a string parameter that identifies the terminal in the address space applicable to the PDP. The allocated address may be read using the +CGPADDR command. <d_comp> - numeric parameter that controls PDP data compression 0 - off (default if value is omitted) 1 - on <h_comp> - numeric parameter that controls PDP header compression 0 - off (default if value is omitted) 1 - on <pd1>, …, <pdN> - zero to N string parameters whose meanings are specific to the <PDP_type>
NOTE: a special form of the Set command, +CGDCONT=<cid>, causes the values for
context number <cid> to become undefined.
NOTE: issuing AT+CGDCONT<CR> is the same as issuing the Read command.
NOTE: issuing AT+CGDCONT=<CR> returns the OK result code.
NOTE: Your phone may not support all AT commands or the full set of parameters.
Example: Let's assume you want to set-up the GPRS connection with these parameters cid: 1 Packet Data Protocol type: Internet Protocol (IP) APN: internet.com IP address: dynamically assigned by the ISP Data compression: ON Header compression: ON command: AT+CGDCONT=1,"IP","internet.com","0.0.0.0",1,1 <cr> response: OK
NOTE: You need at terminal program to see the error message and type any AT commands manually.
NOTE: Your phone may only accept AT+CGDCONT=1,"IP","internet.com","0.0.0.0",0,0 without replying "ERROR", in that case simply use AT+CGDCONT=1,"IP","internet.com" . Unfortunately that means no compression.
You can search the Internet for "cgdcont" and your phone manufacturer's name to find help for your phone. Phones made in the same year and same series often work the same so if you can't find info about your particular model find info on a similar model number. This search may provide tips for setting your phone up better than these generic instructions. You may need to call your cell phone company's tech support for help. They must (but often refuse to) help you with your phone but don't expect them to support coLinux. Ask them how long they have owned a computer for - that shuts them up!
If you ever need to change the Port Number you can click the [Advanced Port Settings] button below. I checked the "Use FIFO buffers" box and set the buffers to maximum.
Click on your 'Modem Properties' [Modem] tab and set the "Maximum Port Speed" to the highest possible setting for GPRS/Edge and at least "115200" or "230400" for dial-up (to help MNP and other modem compression).
Re-run the [Diagnostics] when your done tinkering.
Click the [OK] button to close the 'Modem Properties' window and click [OK] again to close the "Phone and Modem Options" window.
You may find that compressed headers (and data) don't work since they want to charge you for every byte rather than make the effort to support the protocols properly. You can always try setup a tunnel and compress that.
Now skip down to the next section "Set up your Network Connection" then come back here if you wish.
Additional modem tweaking - after it worksEdit
You need to get it working first before you play with everything but if you like to tweak stuff then here are some suggestions. Make sure you can load a (SMALL) web page in (like http://www.google.com/) "Internet Explorer" using your GPRS/EDGE and also your cell phone modem's dial-up to your ISP (or your own phone number, to your own server) BEFORE you start tweaking things!
After setup is finished you can go back to your "Network Connections" window and right-click on the cell phone modem name "Motorola GPRS" or "Motorola DUN" then click "Properties".
When finished these intructions you will find you have a few modems, one land-line and two cell phone modems (one GPRS/EDGE and the other dial-up (like land-line but using cell phone wirelessly).
Click the [General] tab and choose your cell phone USB modem. Click the [Configure] tab and set the "Maximum spped (bps):" to maximum (921600 ?). Click the check boxes to "Enable hardware flow control", "Enable modem error control", and "Enable modem compression". These features may not all be supported by your cell phone modem but at least you have them on in case they do instead of off. (If you do have a problem with your [Diagnostics][Query Modem] test you might want to un-check things but that is probably not what is wrong. The "Show terminal window" and "Enable modem speaker" check boxes should be off (unless you like that sort of thing ;) ).
Press [OK] button to close the sub-window and return to the Properties window.
Click the [Options] tab, check the "Display progress while connecting" box and leave the other three un-checked. You might want to set the re-dialing options.
Click the [Security] tab, check the "Typical" radio button. You can click the "Advanced custom settings" button if you wish but it is usually only helpful if your password is different from everyone else's. Some networks use a common password (since they know which cell phone is calling) and some give out a different password to everyone (often using your phone number, so not very secret).
If you do use the advanced settings then for "Data Encryption" you will likely have to choose "Optional encrytion (connect even if no encryption)" or your connection may hang up on you in half a minute. You need to get it working first before you play with everything.
If you only choose "Microsoft CHAP Version 2 (MS-CHAP v2)" you will have greater security than "Unencrypted password (PAP)". When you are connected you can open your "Network Connections" and right-click on "Status". It will be greyed-out if you are not connected. The "Authentication" line will show "PAP" or "MD5CHAP".
Click [OK] to get back to the "Properties" window and click on the "Networking" tab. In the section "This connection uses the following items:" click on "Internet Protocol (TCP/IP)" and then click the "Properties" button. You must leave the "Obtain an IP address automatically" and "Obtain DNS server address automatically" radio buttons set (unless you buy your own network from the cell phone company - not likely).
Go down to the [Advanced] button and click it. Under the [General] tab you will (likely) want to leave the "Use default gateway on remote network" unchecked unless you have two seperate computers on an unreliable link.
In the "PPP Link" area check the "Use IP header compression" box it will save you money if your ISP will negotiate (accept) compressed headers.
Under the [DNS] tab you can leave the defaults. The "Append primary and connection specific DNS suffixes" radio button set and the "Append parent suffixes of the primary DNS suffix" box checked.
Under the [WINS] tab you can click the "Disable NetBIOS over TCP/IP" radio button.
Click [OK] to exit the "Advanced TCP/IP Settings" sub-sub-window. Click [OK] to exit the "Internet Protocol (TCP/IP) Properties sub-window.
Now you are back at the "(Connection Name) Properties" Window. Click the "Advanced" tab. You can click the "Windows Firewall" [Settings] button if you wish but things should work as-is. Don't set something to block yourself out. Your cell modem ISP probably has you behind a very good firewall. You can test this with sites like: http://www.grc.com/ or http://www.pcflank.com/ (and many others). Don't do too many tests or you may get an angry phone call ;) .
Click [OK] to close the "(Connection Name) Properties" Window when your done.
Set up your Network ConnectionEdit
Left-click on the [start] button and left-click on the [Control Panel button.
If the left panel says "Switch to Classic View" then click on "Network and Internet onnections", and then click the "Network Setup Wizard".
If the left panel if it says "Switch to Category View" then click on "Network Setup Wizard".
You can also right-click on a 'Network-Icon' on you task-bar's clock/icon area and open the "Network Connections" window. In the left panel click on "Create a new connection" and the "New Connection Wizard" will pop-up.
With the "New Connection Wizard" window open click next. Choose the radio button "Connect to the Internet" and then click next.
Choose the radio button "Set up my connection manually" and then click next.
Choose the radio button "Connect using a dial-up modem" and then click next.
Uncheck your computer's regular (land line) modem (if you have one and it is checked). Click the check-box for your cell-phone's modem and then click next.
If you don't see your cell-phone modem as a choice you need to re-install the software provided with your phone (on a CD) or downloaded from your cell phone manufacturer's web site. Try unplugging your phone's USB cable. Wait 15 seconds (or more) and plug it back in. The area near the clock might have a balloon appear that says your phone is recognized. If the balloon does not appear (due to settings) the cursor should "hourglass" for a moment and there will be disk access. You can also use the FExplorer utility mentioned previously.
It should not be neccesary but unplugging and plugging back in your USB cable can fix access problems with your phone's modem that can occur when the phone's keyboard lock timer disables the USB connection from the phone's end. WinXP doesn't always re-initialize the USB properly with the phones drivers - this is why they are not 'signed' because they are not tested and approved.
The "Connection Name" window will ask for your "ISP Name" you will want to type something different since you are naming the connection not reminding yourself of your provider (This will make more sense when you look at your multiple connections in the "Network Connections" window, you can always rename them later).
I suggest you use your phone brand name and you this procedure add "GPRS" or "DUN" (for Dial Up Number) depending on which procedure you are doing. For example the "ISP name" might be something like "Motorola GPRS" or "Motorola DUN". Click next.
Phone Number InfoEdit
The "Phone Number to Dial" will ask for a dial-up Internet provider number. Each cell phone company or dial-up ISP uses a different number. Cell phones can dial 'odd-looking' numbers to activate special features.
If you are going to dial your home phone and connect to your own computer (from your own computer) then enter your home phone number on this line.
If you are calling a dial-up Internet provider or some other service then use that number. If you need to type "9" to dial out or use a "1" or Area Code then your might as well type it here also. The "correct" way is to go to a different panel and instruct your computer about prefixes and area codes but that really makes it more complicated and doesn't remind you of all the numbers you are dialing on most areas that display the number - that might be confusing.
GPRS/EDGE Uses Special Phone NumberEdit
If you are setting up GPRS/Edge here are some "phone numbers" to try:
If you use GSM/Cingular/AT&T/TMobile: Enter phone number *99# If you use iDEN/Nextel/Telus: Enter phone number S=2 If you use CDMA/Verizon/Sprint/Bell Canada: Enter phone number #777
After you have entered a 'real' phone number or a 'special' phone number click next.
The next screen will ask for your user name and password. This will vary depending on which Internet provider you are using. If you are using a cell phone internet provider they know who is calling them and everyone used the same name and password. Here are some suggestions, your cell phone company ought to give your this info.
Cingular Blue, AT&T or Nextel: Username: (blank) Password: (blank) Rogers Canada: Username: wapuser1 Password: wap Cingular Orange: Username: ISPDA@CINGULARGPRS.COM Password: CINGULAR1 T-Mobile: Username: (Your existing TMobile.com Username) Password: (Your existing TMobile.com Password) Verizon, replace 8005555555 with your phone number: Username: email@example.com Password: 8005555555 Sprint: Username: (Your existing Sprint PCS Username) Password: (Your existing Sprint PCS Password) Bell Mobility, replace 8005555555 with your phone number: Username: firstname.lastname@example.org Password: (Your Bell Mobility Voicemail PIN)
Un-check the "Use this account name and password..." and the "Make this the default Internet connection" check boxes.
Click next and you can choose to make a shortcut on your desktop or simply click the [Finish] to end the "New Connection Wizard".
Tweaking Network SettingsEdit
You will now get a window pop-up called "Connect (name)" with the name you chose above (either "Connect Motorola GPRS" or "Connect Motorola DUN").
You may want to leave the "Save this user name..." box checked and click the "Me only" radio button. Now click the [Properties] button.
The Properties window will open. Select the [General] tab and ensure that the "Connect using:" says your cell phone modem (it may default to your land-line modem). If it does not say it is for your cell phone then click the [cancel] button. Close all your windows and open your Control Panel. Make sure your phone is not locked.
To get back to this "Property" window open your "Network Connections" from the "Control Panel" and double-click on the "Motorola DUN" (or whatever you called your cell-phone dial-up (Non GPRS/EDGE connection). If it dials instead of opening this "Property" window you need to open your "Properties" with a right-click (instead of a double-click) and on the [Options] tab check the "Prompt for " boxes (either "Prompt for name and password, certificate etc." or "Prompt for phone number" should prevent automatic dialing.
Now you can manually click the [Dial] button and test your connection.
A GPRS/EDGE connection will takes just seconds to start. A wireless dial-up connection will take quite a bit longer (like a regular land-line modem).
When you click [Dial] your phones screen may light up and show call progress. The phone's Antenna Icon may flash or turn to a "G" depending on your model.
You can use Hyperterm ( [Start]->"All Programs"->"Accessories"->"Communications" ) to connect to your phone when using it to call a dial-up ISP and use "AT" command to query your modem manually and dial the number yourself. Logon manually to see where it fails and what scripts you need to write for auto logon. Note that Hyperterm may send initialization commands to reset the modem that are not shown (look in the [Diagnostics] [View log]).
You might need to turn off "Carrier Detect" or set the "Result Codes" since a cell phone line doesn't have a dial tone.
If you don't like HyperTerm try these instead:
GTW420-pro - Powerful and friendly terminal emulation. http://www.batl.com/gtpro/gtw420pro.html
Flash Terminal 4.2 http://www.qwertystudios.com/
Gnokii (for Windows and Linux, but not coLinux) http://gnokii.org/
Once everything is tested and setup you don't need to use these terminal programs to communicate directly with your modem. You can go to "Network Connections" and just click on the name to bring up the dialer.
You might want to avoid automatic dialing since using your cell phone can be expensive depending on your voice or data plan. You don't want your computer to update a 100 megabyte software package while your asleep everynight and get a $10,000 dollar phone bill at the end of the month.
If you need to see what is going on then open the connection's "Properties" window and click the [Security] tab. In the "Interactive logon and scripting" area click the "Show terminal window" check-box. You can also open your "Control Panel" and click on the "Phone and Modem Options". Click the [Modems] tab and click on your cell phone USB modem. Click the [Diagnostics] tab and click the [Query Modem] button.
Please add your tips here: