Mac/BlackBerry Tethering with Bluetooth

Apologies in advance. This is a mess, and pretty much a “brain dump”, but I’d rather it be messy and more inclusive than not out there at all since I’ll have limited time to work on it. Please bear with me as I get through this disaster.

The Mac: A PowerBook G4 12″

The BlackBerry: A RIM BlackBerry 8310 “Curve” GSM on the AT&T Network

The Status: Complicated

I can easily pair with the BB, and have no problems with configuration. The problem seems to lay in the modem script, modem commands, or some intermittent modem-reset snafu. I have devised a method to be able to further analyze the problem, but we’ll get to that at a later date.

How it works:

1) Pair the BB to the Mac. This is largely self-explanatory.
2) Obtain a modem script. These are somewhat diverse, but largely consist of the same command set and sequence. I will provide an in-depth analysis in the future.
3) Set up PPP.
4) Input the data connection settings. These are listed below.
5) Hit “Connect”, and hope for the best.

The best luck I’ve had with this so far is to connect successfully and surf for a few minutes. The worst luck is to have it get to a certain point in the connection process and crap out.

Connection Settings:

According to the AT&T Website (no ref link handy, sorry.) these are the settings to use.

“Dial Number” is “*99***1#”
“WAP Name” is “isp.cingular”
“Password” is “CINGULAR1”

I’ve found that if I did not disable “PPP Echo Request”, that the connection would never complete successfully. It is possible, however, that this was due to another issue. Supposedly, if you do not have tethering provisioned, your device can possibly be blacklisted upon connect.

Update 7/29/2008:

I’ve learned a bit more about what’s going on (potentially).

  1. According to rumor, there is a bug in the Blackberry’s Bluetooth stack that only appears when a Mac is tethered. I’m not sure if it’s an interaction with the bluetooth stacks or what. Again this is essentially rumor.
  2. Using the “WWAN Support” modem script also works, and seems to work a bit better. I created a modified script based on this one, changing the bitrate to 460800, and adding an additional initialization string [AT+cgdcont,\34IP\34,\34isp.cingular\34\13] to the script, which was successful the first time, but still had the same timeout and failure to connect with the device.