I was pretty impressed with Linux Bluetooth support - a single KDE desktop applet allowed me to browse all Bluetooth devices within range and view their individual services. Within only a few seconds I was able to transfer files and view device status... very schwag.
One thing I didn't understand until now was the concept of Bluetooth "profiles." Just as TCP may be a conduit for HTTP or FTP, Bluetooth is a conduit for OBEX exchanges or headset commands. It makes sense in retrospect, but Bluetooth host devices offer up services such as HSP (headset communication), OPP (pushing files) or BPP (printing).
No OSS project I've run across so far has been able to do vCard or vCal retrieval or transmission. Most projects appear to perform vCard and vCal access via OBEX, which Linux supports. One thing I was hoping to do was send vCards and vCals to and from the phone, but thus far I've been unable to do so. My phone doesn't have the SYNCH profile used for PIM exchange, yet it supposedly transmits raw vCards over Bluetooth... but I haven't been able to get Linux to receive them. Something I can hopefully remedy.
This limitation seems to exist even in commercially available products. DataPilot evidentally supports syncing the phone book, but not the calendar or text messages. Mobile action is evidently C|Net's choice, but just does contacts also.
From what I can tell, my handset supports:
- Headset Profile
- Uses Hayes Command Set for headset operations
- Hands-Free Profile
- Used for car interop. Synchronous Connection Oriented link with mono, PCM audio
- Dial-up Networking Profile
- Networking dial-up abilities using SPP from laptop or other workstation
- Object Push Profile
- Transfers are always instigated by the sender (client), not the receiver (server) using the APIs of OBEX operations connect, disconnect, put, get and abort
- File Transfer Profile
- Uses OBEX as a transport and is based on GOEP for getting folder listings, changing to different folders, getting files, putting files and deleting files
- Basic Printing Profile
- Sends print jobs to printers without needing drivers
- Advanced Audio Distribution Profile
- Possible ALSA integration, used for headphones & media players
- Audio/Video Remote Control Profile
- Used in concert with A2DP or VDP to allow a single remote control (or other device) to control all of the A/V equipment to which a user has access