So, I finally got Internet access over Bluetooth to my Nokia 6233
working.  Here's a short summary of the steps taken (this assumes
a properly configured phone).

Make sure your Bluetooth device is recognized by OpenBSD:

   $ dmesg | grep ubt
   ubt0 at uhub4 port 1 "Micro Star International Bluetooth" \
   rev 2.00/32.64 addr 2

Install the bluetooth-tools package.  This provides, among
other things, btconfig, btpin and rfcomm_sppd.

Bring the Bluetooth interface up and verify that you're able
to detect your phone:

   $ sudo btconfig ubt0 up
   bthub0 at ubt0 00:21:85:b2:51:41
   $ btconfig ubt0 inquiry
   Device Discovery from device: ubt0 .... 1 response
     1: bdaddr 00:1d:e9:e5:ad:01 (phone)
      : name "Nokia 6233"
      : class: [0x5a0204] Cellular Phone <Networking> <Capturing> <Object 
Transfer>
           <Telephony>
      : page scan rep mode 0x01
      : clock offset 27997

Add the bdaddr to /etc/bluetooth/hosts so you don't have to
type in the address each time you want to refer to your phone:

   $ sudo echo "00:1d:e9:e5:ad:01 phone" >> /etc/bluetooth/hosts

Start bthcid(8), generate a pin using btpin(1) and connect to
your phones' Dial Up Networking (DUN) service using rfcomm_sppd(1).

   $ sudo /usr/local/sbin/bthcid
   $ btpin -a phone -r -l 4
   PIN: 2701
   $ rfcomm_sppd -d ubt0 -a phone -s DUN

You should receive a question on your phone if you want to accept
the connection and then type in the PIN generated above.  You
should now be able to communicate with your phone:

   rfcomm_sppd[16519]: Starting on stdio...
   AT
   OK
   ATI3
   Nokia 6233

   OK

Now that we know this works, we can attach this to a pty:

   $ rfcomm_sppd -d ubt0 -a phone -s DUN -t /dev/ttyp0
   $

Create a ppp interface and connect using pppd(8) [1]

   $ sudo ifconfig ppp0 create
   $ pppd call netcom
   $ ifconfig ppp0
   ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
           priority: 0
           groups: ppp
           inet 89.8.5.99 --> 10.6.6.6 netmask 0xff000000

(fancy IP address ;-)).  Now check the routing table:

   $ netstat -rnf inet | grep default
   default            10.6.6.6           UG         0        0     -    56 ppp0

I've no idea what the name servers are supposed to be, so I
just started a local one and pointed /etc/resolv.conf at it;

   $ sudo /usr/sbin/named
   $ sudo echo "nameserver 127.0.0.1" >> /etc/resolv.conf

We're on!

   $ ping -c 4 www.google.com
   PING www.l.google.com (209.85.137.104): 56 data bytes
   64 bytes from 209.85.137.104: icmp_seq=0 ttl=237 time=640.756 ms
   64 bytes from 209.85.137.104: icmp_seq=1 ttl=237 time=595.876 ms
   64 bytes from 209.85.137.104: icmp_seq=2 ttl=237 time=619.887 ms
   64 bytes from 209.85.137.104: icmp_seq=3 ttl=237 time=645.883 ms
   --- www.l.google.com ping statistics ---
   4 packets transmitted, 4 packets received, 0.0% packet loss
   round-trip min/avg/max/std-dev = 595.876/625.600/645.883/19.746 ms


[1] My option file and chat script is as follows (you probably have
    to modify this):

    $ cat /etc/ppp/peers/netcom  # probably don't need all this poop
    /dev/ttypz
    115200
    local
    debug
    #crtscts
    nodetach
    noipdefault
    defaultroute
    lock
    novj
    nobsdcomp
    novjccomp
    nopcomp
    noaccomp
    noauth
    connect '/usr/sbin/chat -f /etc/ppp/peers/chat/umts.netcom'

    $ cat /etc/ppp/peers/chat/umts.netcom
    TIMEOUT             5
    ECHO                ON
    ABORT               '\nBUSY\r'
    ABORT               '\nERROR\r'
    ABORT               '\nNO ANSWER\r'
    ABORT               '\nNO DIAL TONE\r'
    ABORT               '\nNO DIALTONE\r'
    ABORT               '\nRINGING\r\n\r\nRINGING\r'
    ''                  \rAT
    TIMEOUT             30
    OK                  ATD*99#
    TIMEOUT             10
    CONNECT             ""

Reply via email to