Handsfree Profile (HFP) Implementation
Handsfree Profile (HFP) Implementation
- Subject: Handsfree Profile (HFP) Implementation
- From: Andrew Cooper <email@hidden>
- Date: Wed, 5 Jul 2006 02:52:00 -0500
Hello all,
I am trying to implement and vend a Handsfree Profile for use with a
cellphone.
Following the "Providing a New Service" section in [1], modifying the
plist in the RFCOMMServerSample example, and using the HFP 1.5
specification at [2](p.65), I believe that I successfully created a
service definition plist which I can successfully read and register.
Bluetooth Explorer.app's Local Device Information lists the following
new service while my app is running (comments are my addition for
this email):
//ServiceRecordHandle
0x0000 = 0x00010001,
//ServiceClassIDList = { ServiceClassHandsFree,
ServiceClassGenericAudio}
0x0001 = { <111e>, <1203> },
//ServiceName
0x0100 = "AutoMac HandsFree",
//SupportedFeatures
0x0311 = <0000>,
//ProtcolDescriptorList = {{L2CAP}, {RFCOMM, channel #1}}
0x0004 = { { <0100> }, { <0003>, 0x01 } },
//LanguageBaseAttributeIDList = { Not sure, the 3rd value seems to be
the offset for the ServiceName }
0x0006 = { 0x656e, 0x006a, 0x0100 },
//BluetoothProfileDescriptorList = {{ServiceClassHandsFree,0x0105}}
0x0009 = { { <111e>, <0105> } }
As far as I can tell, these are the correct values according to the
spec.
Now, when I use my phone to search for new Handsfree devices, it does
not find my machine. Also, PacketLogger.app does not capture any
packets while the phone is searching, which seems odd. Is there
anything else I need to do to let the phone see the new handsfree
device? I noticed that there are a lot of checkboxes in the Class of
Device section of Bluetooth Explorer, but I did not change them since
I'm not exactly sure what they do. Perhaps I need to add Audio or
Telephony to my machine's class?
Also, I looked at the 1.0 version of the HFP spec [3], and the only
difference I could see in the SDP definition was a different version
number in the BluetoothProfileDescriptionList entry for Hands-Free:
0x0101 instead of 0x0105. Changing this had no effect.
For reference, these are the specs on my development machine:
PowerBook G4 15" 1.67G
Bluetooth version 1.7.5f10 (using built-in bluetooth adapter)
XCode 2.3
Mac OS X 10.4.7
The phone is an "unlocked" Motorola V600 with BT file transfer
support enabled. The BT module does work as I can exchange contacts,
ringtones, and generic files with the phone.
Many thanks,
Andrew Cooper
References:
[1]http://developer.apple.com/documentation/DeviceDrivers/Conceptual/
Bluetooth/BT_Develop_BT_Apps/chapter_4_section_4.html
[2]http://www.bluetooth.com/NR/rdonlyres/C0F90A55-BDE4-4FB3-A4FF-
DAB0F137DBDF/1762/HFP15_SPEC_V10r00.pdf
[3]http://www.bluetooth.com/NR/rdonlyres/
94EAD32B-3E70-4AEC-9CD5-1E3F887A15F4/917/HFPSpecVersion1_0.pdf
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden