BluetoothDialup

Differences between revisions 20 and 21
Revision 20 as of 2006-04-08 11:59:51
Size: 12757
Editor: rrcs-24-153-226-7
Comment: More info
Revision 21 as of 2006-04-08 12:02:07
Size: 12758
Editor: rrcs-24-153-226-7
Comment: Heading format fix
Deletions are marked like this. Additions are marked like this.
Line 206: Line 206:
==== Preferred method: Manually fix routing table==== ==== Preferred method: Manually fix routing table ====

This page describes how to configure PPP dialup through a Bluetooth-compatible mobile phone. The emphasis is on using GPRS/EDGE services. These instruction were compiled and tested on the Dapper Drake development release.

Configure mobile phone data profiles

Getting the data access profile

T-Mobile

T-Mobile accounts generally require separate data profiles for WAP and general data access. (Some people have had success running a regular data connection over the WAP profile.) Getting access to general data access requires a data access plan. Currently, the "Unlimited Internet VPN" is the best deal, as it costs the same as the "Unlimited Internet" plan but gives you a real, public IP address. Incoming connections are blocked on any T-Mobile data plan. T-Mobile does not seem to offer metered data plans anymore.

There are two ways to get the data service profile on your phone. Manual configuration is probably faster and better.

Automatic

T-Mobile can send the data services profile directly to your phone via SMS. Only the "wireless data" customer service people can send the data services profile to your phone. The regular service people can only send the WAP data profile, which will not work for general use. You will have to be transferred once or twice to reach the wireless data division. Once there, simply request that the data service profile for your plan be sent to your phone. (Of course, you'll need to be signed up for a data plan.)

Once you receive the plan information, your phone will ask you where you want to store it. T-Mobile uses profile 1 for the WAP profile, so don't overwrite it. I recommend using profile 2, as it's usually the first empty profile.

After storing the data services profile, your phone will probably set it as the default. This will probably cause your WAP (T-Zones/T-Mobile Internet) to fail for your on-phone browser. Set the WAP data profile (profile 1) to default fix this. See the configuration section below for your phone's brand. Setting the default profile is usually fairly obvious once you've reach the data services configuration screen.

Manual

Access the data profiles configuration for your phone's brand using the instructions under the configuration section below. The order and name for settings is for a Samsung T809. These settings are modified from the SMS T-Mobile sends Unlimited Internet VPN plan users. By adding the DNS and proxy information, you can use this profile for either T-Zones or general web browsing.

Use the following settings for the Unlimited Internet VPN plan:

  • Name: T-Mobile VPN

  • Home URL: http://www.t-mobile.com

  • Bearer: GPRS only

  • Proxy use: Enable

  • GPRS settings
    • Proxy: 216.155.165.50

    • Proxy Port: 8080

    • DNS1: 216.155.175.105

    • DNS2: 216.155.175.106

    • APN: internet3.voicestream.com

    • Login ID: Empty

    • Password: Empty

Other companies

Call your mobile service provider and request information about data plans. Many charge by the megabyte, but unlimited plans are increasingly available. Most of the instruction for T-Mobile will probably apply.

Configuration

Sony Ericsson GSM

This is from my memory of using a T610, but it should apply to any Sony Ericsson phone. Choose the lower-left icon from the main menu.

Samsung GSM

This is tested on a T809, but should apply to any Samsung GSM phone. Enter code *#87927# from the main screen. Select "Current profile" to choose the default profile. Select "Profile settings" to manage profiles.

Installing Bluetooth and dialup packages

  • If you have the ubuntu-desktop package installed, you can skip to the next section

  • Otherwise, run the following at a shell prompt; this should install the basic Bluetooth and PPP packages

sudo apt-get install bluez-utils bluez-pin ppp 

Listing Bluetooth devices

  • Make your phone Bluetooth discoverable.
  • Run the following at a shell prompt:

hcitool scan
  • Copy the MAC address (the text with the capital letters, numbers, and ':'s) somewhere convenient. You'll need it many times.

Pairing

You can skip this section if you've already paired your phone with your computer. However, consider the final optional step, as your phone might otherwise nag you every time you use if for dialup.

  • Run the following, replacing your-phone-mac-address with the proper data

sudo hcitool cc your-phone-mac-address
  • Run the following, replacing your-phone-mac-address with the proper data

sudo hcitool auth your-phone-mac-address
  • Enter a numeric code into the dialog box that pops up
  • Accept the pairing from your phone handset
  • Enter the same number on your phone
  • Run the hcitool auth your-phone-mac-address command again if it fails

  • You can remove your handset's Bluetooth discoverability now
  • Some phones (notably Samsungs) require further authorization for certain Bluetooth activities, including dialup; consult your phone's user manual to avoid confirming your computer's dialup action on your phone every time

Configuring the rfcomm device

  • Get the channel number for your phone's dialup service by running the following, replacing your-phone-mac-address with the proper data

sdptool browse your-phone-mac-address
  • Look under "Service Name: Dial-up Networking"
  • Under "Protocol Descriptor List:" and "RFCOMM", there should be a number after "Channel:"
  • Remember that number; you'll need it for the rfcomm configuration
  • Run

sudo gedit /etc/bluetooth/rfcomm.conf
  • Paste the following into the file, replacing your-phone-mac-address and your-phone-rfcomm-channel with appropriate values

rfcomm0 {
        bind yes;
        device your-phone-mac-address;
        channel your-phone-rfcomm-channel;
        comment "Bluetooth PPP Connection";
}
  • Save and close the rfcomm.conf file

  • Run the following, which will create the rfcomm0 device

sudo /etc/init.d/bluez-utils restart

Configuring PPP

  • Run the folloring

sudo gedit /etc/ppp/peers/BluetoothDialup
  • Paste the following into the file (the file should start out blank)

debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/BluetoothDialup"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0
  • Save and close the BluetoothDialup file

  • Run the following

sudo gedit /etc/chatscripts/BluetoothDialup
  • Paste the following into the file (the file should start out blank), replacing your-apn-here with the APN from your data services profile (probably "internet3.voicestream.com" if you're on T-Mobile) and your-data-profile-number-here with the number you stored the profile into on the phone (probably 2)

TIMEOUT 35
ECHO    ON
ABORT   '\nBUSY\r'
ABORT   '\nERROR\r'
ABORT   '\nNO ANSWER\r'
ABORT   '\nNO CARRIER\r'
ABORT   '\nNO DIALTONE\r'
ABORT   '\nRINGING\r\n\r\nRINGING\r'
''      \rAT
OK      'AT+CGDCONT=2,"IP","your-apn-here"'
OK      ATD*99***your-data-profile-number-here#
CONNECT ""
  • Save and close the BluetoothDialup file

Authorizing dialout

Run the following at a shell prompt, replacing your-username-here with your username:

sudo adduser your-username-here dialout

Connecting

  • If you have NetworkManager installed, right-click the applet and uncheck "Enable Wireless"; this will keep it from hopping onto wireless networks and botching your dialup DNS and default route settings

  • Run the following

pon BluetoothDialup
  • Wait about 30-60 seconds
  • You should now be able to ping ubuntu.com; expect latencies of around one second for most GPRS services

  • If pinging fails, see the troubleshooting section below
  • See the disconnect section below when you're finished using the connection

PPP and TCP/IP troubleshooting

Try these troubleshooting sections in order.

PPP connection

  • Monitor /var/log/syslog for dialup status information

    • The following indicates PPP success, where xxxs can be anything

xxx localhost pppd[xxx]: Script /etc/ppp/ip-up finished (pid xxx), status = 0x0

Solution if problem

  • Make sure there's not a PPP connection with rfcomm0 already in session; run poff BluetoothDialup to disconnect one in session

  • Find where the error is in either the chatscripts or peers file
    • Consult other help sources and update this page

IP address configuration

  • Run ifconfig to check your PPP connection

    • The ppp0 section should be as below, where xxx is anything

ppp0      Link encap:Point-to-Point Protocol
          inet addr:xxx.xxx.xxx.xxx  P-t-P:xxx.xxx.xxx.xxx Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:xxx errors:0 dropped:0 overruns:0 frame:0
          TX packets:xxx errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:xxx
          RX bytes:xxx (xxx b)  TX bytes:xxx (xxx b)
  • P-t-P:xxx.xxx.xxx.xxx should match the address on the /var/log/syslog line xxx localhost pppd[xxx]: remote IP address xxx.xxx.xxx.xxx

  • inet addr:xxx.xxx.xxx.xxx should match the address on the /var/log/syslog line xxx localhost pppd[xxx]: local  IP address xxx.xxx.xxx.xxx

  • If the addresses match, then your IP address configuration is probably fine

Solution if problem

  • If a /var/log/syslog line seems absent, try reconnecting via poff BluetoothDialup and pon BluetoothDialup

  • Make sure you're using the right data profile on your phone

Default route configuration

  • Ping a valid public hostname on a connected computer, then (if it worked) try pinging the actual IP address from your PPP-connected computer
    • If it didn't work, try pinging a different hostname; some block pings
    • If this works, then your routing table is probably fine
  • Check the routing table by running route -n

    • Your routing table should look like the following, where xxx is anything

Kernel IP routing table
Destination        Gateway         Genmask         Flags Metric Ref    Use Iface
xxx.xxx.xxx.xxx    *               255.255.255.255 UH    0      0        0 ppp0
default            *               0.0.0.0         U     0      0        0 ppp0
  • The xxx.xxx.xxx.xxx should match the P-t-P:xxx.xxx.xxx.xxx in the ifconfig command's ppp0 block above

  • If the routing table checks out, routing is probably not the problem

Solutions if problem

Preferred method: Manually fix routing table

This needs instructions, as it should be the preferred method

Alternate method: Remove other interfaces

  • Run the following

poff BluetoothDialup
  • Remove any non-loopback and ppp0 connections by running the following, replacing your-extra-interface with the appropriate names

sudo ifconfig your-extra-interface down
  • Run the following

pon BluetoothDialup

DNS configuration

  • Try pinging the DNS servers
  • Try running dig hostname-here, where hostname-here is a valid hostname

    • If it resolves, DNS is probably not the problem
  • Check /etc/resolv.conf to check your DNS configuration

    • Your routing table should look like the following, where xxx is anything

nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
  • The lines above should match the /var/log/syslog lines like the following

xxx localhost pppd[xxx]: primary   DNS address xxx.xxx.xxx.xxx
xxx localhost pppd[xxx]: secondary DNS address xxx.xxx.xxx.xxx

Solution if problem

  • If a /var/log/syslog line seems absent, try reconnecting via poff BluetoothDialup and pon BluetoothDialup

  • Manually configure /etc/resolv.conf to point to your provider's DNS servers (or a public DNS server)

    • Try pinging the manually-configured DNS servers; if it fails only on the Bluetooth dialup machine, double-check the routing configuration

Disconnecting

  • Run the following

poff BluetoothDialup

Other useful guides


CategoryHardware CategoryDocumentation

BluetoothDialup (last edited 2008-08-06 16:17:36 by localhost)