Bluetooth/GPRS

Posted: 2005-03-15

Running a dial-up over bluetooth to a S700i.

Most of this is cargo-culted from the pages listed on http://www.holtmann.org/linux/kernel/ (page no longer available) - with most of it coming from here.

Installed bluez-hcidump, bluez-pin and bluez-utils.

Used hcidump and sdptool to scan for the device - got the device's id.

bluez-pin worked for me - so I kept that.

Config files.

/etc/bluetooth/hcid.conf - unchanged

/etc/bluetooth/rfcomm.conf

rfcomm0 {
  bind yes;
  device device_id;
  channel 1;
  comment "S700i GPRS";
}

/etc/ppp/peers/gprs

/dev/rfcomm0 57600
connect '/usr/sbin/chat -v -f /etc/chatscripts/gprs'
noauth
defaultroute
replacedefaultroute
debug

NB - debug can probably be removed - replacedefaultroute too - that was used for testing whilst still online via normal net connection.

/etc/chatscripts/gprs

TIMEOUT         120
ABORT           'BUSY'
ABORT           'ERROR'
ABORT           'NO CARRIER'
''              'ATE1'
OK              AT+CGDCONT=1,"IP","internet"
OK              ATD*99***1#
# or OK         ATD*99#
CONNECT         \d\c

To connect

sudo rfcomm bind rfcomm0
sudo pppd call gprs

This brings up ppp0 and sets the default route so that communication goes over this.

To disconnect - wish I knew how to do this properly - at present

  1. Kill the pppd process
  2. sudo rfcomm release rfcomm0
  3. Reset the defaultroute (with a /etc/init.d/networking restart) - this is only necessary when testing (see comment above about replacedefaultroute).

ifdown ppp0 doesn't work (complains about not being configured) - pppd disconnect needs a script I don't have.