How to solve 3G data problems

From WebOS Internals
Revision as of 12:33, 8 January 2011 by Mephinet (talk | contribs) (warnings added that the information is not valid for WebOS version 2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

3G in General and APN

A working 3G data connection shows up in the top status row of the Pre. That row shows either 3G, G or E (both for 2G) on the left of the signal strength icon on GSM models, provided that the WiFi is off or WiFi is not connected. Once WiFI is connected its icon will overwrite the 3G icon. That way you always know what connection is active for data connections. Many have reported 3G data connection problems, especially when using the Pre on 'non-supported networks' (to be defined). An APN is an Access Point Name, that is required to connect to that named network. One of the contributing factors to 3G problems is that APN and information about that network such as a passwords are sometimes not correct in the Pre's database of networks/operators. This Wiki is intended to solve 3G (and APN) problems.

Type of 3G or APN Problems

  1. Connection to networks in countries where the Pre is not sold through Palm's channels: some work out of the box, some experience problems as follows.
  2. Network operator not present in the Pre Carrier database: reported in the forum that this can be solved, see case 2
  3. Network operator present, but entries in Database are wrong: reported in the forum that this can be solved, see case 3
  4. Manual settings on Phone preferences cannot be saved: not sure, probably network operator not present in database, see case 2
  5. Data connection not established while DB entries seem OK: can be solved in many cases, see case 5
  6. Voicemail number wrong or not present: can be solved, see case

Tools needed

This information covers WebOS version 1 only. WebOS version 2 does not use SQLite any longer.

If the problem cannot be solved by using manual settings under Phone preferences, you need some tools to modify some Pre files. (List of tools to be added)

  • If you have a PC, probably WebOS Quick Install is easy to install and use for beginners [1]
  • Likely you'll need an SQL Database editor. A free SQLite database will do (reference needed)

How to Determine which Problem Case(s) is (are) Applicable

This is tricky and needs some work.....

  1. Check whether your carrier/operator is listed in the Pre carrier database. Some copies of the carrier database are availablke in this thread [2]. If your carrier is not listed, you'll have to modify an existing other carrier's data into your carrier. It requires both a modified carrier DB entry and one or more modified data entries. See case 2.
  2. Check whether the data section of a listed carrier contains the right information. If the settings are not right, you have to modify the data section of your carrier. Probably modifying it by manual settings under phone preferences is easiest, for some nice screen shots see Marc's Blog [3]. If manual settings does not work for you, you'll have to change the databases located on the Pre, see case 3.
  3. Some have reported that even though all setting look OK, still there is no 3G data connection. One of the causes is that as of 1.3.1 some networks/carriers require PPP options for user name and password, see case 5.

Forum threads that discuss or solve the 3G problem

Since this How to is just starting, the following threads contains many working suggestions. Please add any thread you find valuable.

  1. Best how-to so far: Modifying WebOS carrier network settings[4]
  2. APN Problems with 1.3.1/1.3.5 [5]
  3. Carrier/APN settings for 1.13 German and 1.21 US[6]
  4. Adjusting Carrier Settings / SSH into device guide/help for dummies...does it exist?[7]
  5. MMS not working MMS not working [8]
  6. Data still not working in 1.3.1 UK (Multi-page thread 1 2 3 ... Last Page)[9]
  7. Confirmed manual Carrier/APN settings in webOS 1.3[10]
  8. Any GSM pre that has a working voicemail shortcut (key 1)[11]

Case 2: carrier/operator not present in the Pre carrier database

This information covers WebOS version 1 only. WebOS version 2 does not use SQLite any longer.

Thanks to Capitano69 Anyway, also if the procedure is not perfect and complete I will write down for all users:

1) Obtain the Carrier Database using one of the method at the beginning of the post

2) Open the file as explained at the beginning of the post with an SQL Editor (I used SQLite)

3) Select the tab "Browse data"

4) From the popup menu on the left upper corner select the table ".._CarrierNetworkSettings"

5) Create a new record with the button on the right upper corner "New Record"

6) Insert the corresponding mcc and mnc of your carrier; you can find a complete list at the following address Mobile Network Code - Wikipedia, the free encyclopedia. E.G. in my case I needed the Orange Operator in Moldova so I inserted mcc=259 and mnc=1

7) Insert the name of your operator in the following field: "qOperatorShortName" and "qOperatorLongName"

8) Insert "1" in the following fields: "gsmNumSimPDP" and "umtsNumSimPDP". This should be activate the EDGE and 3G connection... at least it worked in my case, with other carrier maybe different so try other options; look in the same column at the other carrier settings.

9) Insert the sms center number of your carrier in the following field: "smscNumber". This should activate the possibility to send SMS. E.G in my case it was +37369101030

10) The most of the other fields related to sms have intuitive names (eg. "smsMessageSize" that corresponds to the number of caracter for a single sms that usually is 160); in case of doubt leave the field blank

11) Insert the settings for the mms provided by your carrier in the following fields: "mmscWapgateway", "mmscUrl" and "mmscPortNumber". E.G in my case it was "192.168.127.125", "http://mms/mms" and "9201"

12) As for sms other fields have intuitive names (eg. "mmscMessageSizeLimit" or "mmsMaxPictureHeight"); insert the value according to the most common value from the other carriers settings

13) At the very end of the record ther is the 13digit number as explained at the beginning of the post; write down this number. It's the field simply indicated as "id"

14) Now select form the popup menu the table ".._DataConnectionSettings" and create a new record

15) In the 1st field named ".._CarrierNetworkSettings_id" insert the 13 digit number you wrote down

16) In the field "apn" insert the apn provided from your carrier. E.G in my case it was "wap.orange.md"

17) in the fields "cshuUserName" and "cshnPassword" insert the User Name and Password if specified in the settings from your carrier; leave them blank if you do not nedd username and password

18) In the fields "supporteService" and "serviceDefault" insert the number "1". This should activate the data connection.

19) In the field "regionName" insert the name of the settings provided by your carrier

20) Leave other fields blank in case of doubt or insert the most common number from other carriers. E.G. in the field "_class_id" all other carriers have number "1" so I inserted the number 1 also for my carrier...

This should be everything... I want to be clear that this procedure is based on an empiric process of several tries i made and it worked in my case (I inserted some settings and sent the file to the Pre, reset it and tried to see how the modifications worked) Maybe it will not work in other specific situations... in this case i cannot be of help, you should make changes and try several times until the settings will work for your carrier..

Case 3: Incorrect data base settings: How to Modify WebOS carrier network settings

This information covers WebOS version 1 only. WebOS version 2 does not use SQLite any longer.

(thanks palmdoc2005 for his excellent writeup) Please WiKi-expert,format the lists and sublists below

Assuming one has an unlocked GSM Pre which is activated, has network access via Wifi but may have 3G data connection problems due to incorrect carrier connection settings. Also assuming manual (data) setting under Phone preferences is OFF. (need a separate case how to handle ON)
Modifying the file CarrierNetworkSettings.db3 found in /usr/lib/luna/ may fix the problem You of course also need to first check what the correct data network settings (APN/login/username etc) for your carrier are (call them up if you are unsure). Need some reference here of a list of carrier settings ......

Step 1) Copying the carrier network database file to your PC
Several methods

method a) Obtain the database from the webosdoctor image
Download the image appropriate for your device.
Use 7zip to unpack the file.
The required DB file is found in : webosdoctorp100eww-wr\resources\webOS\nova-cust-image-castle.rootfs.tar\nova-cust-image-castle.rootfs\usr\lib\luna\CarrierNetworkSettings.db3
method b) Obtain the database from the device itself. You can:
either 1) use Putty
  • SSH to to your Pre using Putty, type
cp /usr/lib/luna/CarrierNetworkSettings.db3 /media/internal. This will copy the database file to the internal storage.
  • Put your Pre into USB disk mode and copy the database file to your machine.
or 2) use Internalz
  • Navigate to /usr/lib/luna/ and copy CarrierNetworkSettings.db3 to /media/internal
  • Put your Pre into USB disk mode and copy the database file to your machine.
or 3) Use WebOS Quick Install tool
  • Put your Pre in Developer Mode. Attach it to the PC through the USB cable and select Just Charge
  • Launch WebOS Quick Install
  • Select Receive File from the menu
  • Enter /usr/lib/luna/CarrierNetworkSettings.db3
  • Select destination folder in your PC


Step 2) Editing the database on your PC

I suppose it is prudent to back up the file before making modifications

a) Obtain a free SQLite database editor

  • either SQLite Database Browser
  • or Firefox SQLite manager extension

b) Open the carrier network db3 file in SQLite database browser Click on the Browse Data tab

  • From the drop down menu, select the ..._CarrierNetworkSettings table
  • Locate your carrier by browsing or searching the table
  • If there are many entries, like for tmobile, find a local carrier that for sure is located in your country
  • Note country code (need fieldname ref here) and find your carrier by finding a 'tmobile' that has the same country code
  • You might want to check the voicemail number
  • Check the field voicemailNumber
  • Change the voicemail number if needed
  • Note the 13 digit number ID value of your carrier, such as 2199023255831, at the end of the record on the right hand side
  • From the drop down menu, now select another table: the ..._DataConnectionSettings table
  • Locate that noted ID in the dataconnections table
Now you can edit the APN , username and password if these field to don contain the right information for your carrier
Don't forget to save each changed field, if required by the tool used!
  • Save the file


Step 3) Copying the database back to the device

  • Use Jason Robitaille's WebOS Quick Install tool
  • Click on Tools - Send File and point it to the amended database file.
  • As the destination folder use /usr/lib/luna/ and click Send To Device!
  • Repeat this, only this time use /var/luna/data/ as the destination folder.

Step 4) Reboot your Pre. That should be it.....

Case 5: all settings seem OK, yet no connection

This information covers WebOS version 1 only. WebOS version 2 does not use SQLite any longer.

(Thanks to xioq)
This problem seems to be solved as of webOS 1.4 (just one confirmation)

A patch is available for solving this problem, see [12]

The following procedure is an alternative and results in the same modification as the patch does. The steps:

  1. Fix CarrierNetworkSettings.db3, see Case Incorrect data base settings
  2. Modify /etc/ppp/options-gsm

The otions-gsm file has to be edited and put back on the Pre. The options are listed below, add them just before the end of file.

#noccp     
#novj           
#show-password      
#nobsdcomp      
#noipdefault      
#nodeflate        
user "vodafone"     
password "vodafone"  


The lines that are marked with # in front of them seem not to be required. They have been tried out to solve this problem. So just add your user/password lines in there and that should solve the problem. There are also reports that just having empty strings for user and passwords (so just "") works sometimes. And there are reports that the vodafone setting works on other networks that would need a different setting. If it does notwork, find the right settings for your network/operator. (need a web reference for those)

While no one is sure yet, why this problem has occurred since the 1.3.1 update - it's good to see it has been resolved. It has been reported in the forum this works for webOS 1.3.5.2 (GSM) and for 1.3.5.1 (Spint on a GSM model)

Case 6: Voice mail number not working on tap and hold key 1

This information covers WebOS version 1 only. WebOS version 2 does not use SQLite any longer.

When tap & hold key 1, a stored voice mail number is automatically dialed. If the Pre does not have the voicemail number on record, it asks to provide one (as of webOS 1.4?). This procedure however does not seem to work for the GSM models.For GSM models there are voicemail number entries in the Pre carrier database. However, about 50% of the 350 provider entries in the Pre's Carrier database have not filled out that entry.

  • Manually entering a voice mail number into the CarrierDB makes the 1 short key working. Instructions to edit the voicemail number, see Case 3

There is one exception. If manual settings on phone preferences has been activated once before the voicemail number is entered manually in the CarrierDB, the changed voice mail number will not be copied again to the manual settings DB. Manual setting apparently copies the complete record of the current provider as an override in a DB called PalmDatabase.db3.

So if manual setting has been activated before the carrier DB is changed, this PalmDatabase.db3 has to be updated too! There is a fairly complicated way to do this for sure on the Pre itself, see[13]

There is a simple way to check which record/database is being used. Just give the regular carrier DB a different voicemail number compared to the PalmDatabase. Check preferences on the phone App and it displays which voicemail number is active.

If you are prepared to take some (limited?) risk, one could do the following. A small risk is that the DB will be changed on your Pre during the time you edit it on the PC. So close all apps on the Pre.
need more details here......

  1. Try this procedure first, and stop before copying the DB back to the Pre. Then do it quickly all over again
  2. Terminate all programs running on the Pre
  3. The database to be changed is /var/luna/data/dbdata/PalmDatabase.db3
  4. Copy the DB to your windows PC.
  5. Run SQlite (freeware), open PalmDatabase.db3
  6. Find the record/table called com_palm_data_carriernetworksettings_DataConnectionSettings (same name a normal procedure)
  7. Change the voicemail (just by clicking, no SQL)
  8. Copy the PalmDatabase back to the Pre.
  9. Boot the Pre

A small risk is that the DB will have been changed on your Pre during the time oine edits that DB on a PC. So close all apps first. Try this procedure first, then do it quickly all over again, I have done this and it worked.