Sometime last week I stopped getting internet connectivity through my cell provider. I made the mistake of calling them. Between navigating their voice menu system, and talking to first tier help, waiting while they talked to second tier help, I only lost about 30 minutes of my time. However, they told me that the problem was the bluetooth connection to my phone. The problem *really* was that pppd was looking for an IP address in the 10.x.x.x range, and my provider had stopped NATing those. This took me about 20 minutes to fix. Although I probably didn't have to do this, I created a new GPRS CID (Connection IDentifier) on my phone from the data provided by "Opera":http://www.opera.com/products/mobile/docs/connect/ . This site will spit out the APN, username, and password settings you need to set to establish a GPRS connection with a wide variety of international providers. There are a million different gprs configurations for linux pppd out there. Here is another. Here is the "peers" file:

/dev/rfcomm0
115200
defaultroute
usepeerdns
nodetach
crtscts
lock
noauth
local
debug

lcp-echo-failure 4
lcp-echo-interval 65535

connect    "/usr/sbin/chat -v -f /etc/ppp/chat_scripts/gprs-connect-chat"
disconnect "/usr/sbin/chat -v -f /etc/ppp/chat_scripts/gprs-disconnect-chat"

Here is the connect script.

TIMEOUT		10
ECHO 		ON
ABORT		'BUSY'
ABORT		'ERROR'
ABORT		'NO ANSWER'

SAY		"Resetting phone...\n"
""		'ATZ'
OK		'ATE1V1'

ABORT		'NO CARRIER'
OK		'ATD*99***4#'		    # the '4' is for CID 4 on the phone
SAY		"Waiting for connect...\n"
CONNECT		""

And here is the disconnect script

""		"\K"
""		"+++ATH"
SAY		"GPRS disconnected"