Monday, January 11, 2010

View SDP



















View SDP is an application for Symbian phones which allows you to use Bluetooth Service Discovery Protocol to discover what services another Bluetooth device supports. Available on OVI store now.

Service Discovery Protocol (SDP) is part of the Bluetooth Standard.


This is useful for:
Software developers working with Bluetooth.
Students and teachers studying Bluetooth.
Anybody who is interested in understanding the details of Bluetooth.

Operation

First search for a nearby Bluetooth device to read using the menu options “Search for devices”. Make sure that the device you are using is in discoverable mode. Select a device and a list of Service Discovery Records will be displayed. You can then select a record (either by touch or using the centre key) and the contents of the record will be displayed. For more details on the meaning of the record see the Bluetooth Specification at www.bluetooth.com.

You can also save the SDP data as a text file on your phone using the menu option “Save SDP data to file”. The text file will be stored on your phone in C:/data/others/SDP_xxxx.txt where xxxx is the Bluetooth name of the device.

FAQ

This application is for all Symbian phones from 3 edition FP1, including FP2 and edition 5.

See here for more details about Bluetooth and SDP

Bluetooth.Com
Bluetooth SIG
SDP on wikpedia


Here is an example SDP record

Handle:0x10000
Attribute 0x0000 Service Record Handle
ETypeUint 65536
Attribute 0x0001 Service Class ID List
ETypeDES
ETypeUUID 16bit 0x110c
Attribute 0x0004 Protocol Descriptor List
ETypeDES
ETypeDES
ETypeUUID 16bit 0x0100
ETypeUint 23
ETypeDES
ETypeUUID 16bit 0x0017
ETypeUint 256
Attribute 0x0005 Browse Group List
ETypeDES
ETypeUUID 16bit 0x1002
Attribute 0x0009 Bluetooth Profile DescriptorList
ETypeDES
ETypeDES
ETypeUUID 16bit 0x110e
ETypeUint 256
Attribute 0x0100
ETypeString AVRCP Target
Attribute 0x0101
ETypeString Audio Video Remote Control
Attribute 0x0102
ETypeString Symbian Software Ltd.
Attribute 0x0311 Supported Features
ETypeUint 15


Using ViewSdp to view the Bluetooth Services of an iPod Touch


This is a screen shot of View SDP showing the SDP records from a iPod Touch. The first thing to notice is that there are only 4 records, if you compare this to the SDP database from a Nokia 5800 which has 16 records, you can tell that an iPod touch supports a lot less Bluetooth features than a Nokia 5800.

The four records are Wireless Iap, AVRCP device, audio source and a unknown record. View SDP uses the string in the element with attribute 0x100 as the name

The AVRCP device record indicates that iPod Touch claims to support AVRCP which is the Audio and Video Remote control profile. This is the feature that is used for the buttons on Stero headsets such as play, stop etc. See this link for some information about Apples AVCRP support.

The audio source record indicates support as a source for A2DP which is the Advanced Audio Distribution Profile. This is stereo audio over Bluetooth.

Here is the complete database:

Record:0 Handle:0x4f49a620 Name:Wireless iAP
Attribute 0x0000 Service Record Handle
ETypeUint 1330226720
Attribute 0x0001 Service Class ID List
ETypeDES
ETypeUUID 128bit 0x00000000decafade decadeafdecacaca
Attribute 0x0002 Service Record State
ETypeUint 0
Attribute 0x0004 Protocol Descriptor List
ETypeDES
ETypeDES
ETypeUUID 16bit 0x0100
ETypeDES
ETypeUUID 16bit 0x0003
ETypeUint 1
Attribute 0x0005 Browse Group List
ETypeDES
ETypeUUID 16bit 0x1002
Attribute 0x0006 Language Base Attribute ID List
ETypeDES
ETypeUint 25966
ETypeUint 106
ETypeUint 256
ETypeUint 26226
ETypeUint 106
ETypeUint 272
ETypeUint 25701
ETypeUint 106
ETypeUint 288
ETypeUint 27233
ETypeUint 106
ETypeUint 304
Attribute 0x0008 Service Availability
ETypeUint 255
Attribute 0x0009 Bluetooth Profile DescriptorList
ETypeDES
ETypeDES
ETypeUUID 16bit 0x1101
ETypeUint 256
Attribute 0x0100
ETypeString Wireless iAP
Record:1 Handle:0x4f49110c Name:AVRCP Device
Attribute 0x0000 Service Record Handle
ETypeUint 1330188556
Attribute 0x0001 Service Class ID List
ETypeDES
ETypeUUID 16bit 0x110c
Attribute 0x0002 Service Record State
ETypeUint 0
Attribute 0x0004 Protocol Descriptor List
ETypeDES
ETypeDES
ETypeUUID 16bit 0x0100
ETypeUint 23
ETypeDES
ETypeUUID 16bit 0x0017
ETypeUint 258
Attribute 0x0005 Browse Group List
ETypeDES
ETypeUUID 16bit 0x1002
Attribute 0x0006 Language Base Attribute ID List
ETypeDES
ETypeUint 25966
ETypeUint 106
ETypeUint 256
ETypeUint 26226
ETypeUint 106
ETypeUint 272
ETypeUint 25701
ETypeUint 106
ETypeUint 288
ETypeUint 27233
ETypeUint 106
ETypeUint 304
Attribute 0x0008 Service Availability
ETypeUint 255
Attribute 0x0009 Bluetooth Profile DescriptorList
ETypeDES
ETypeDES
ETypeUUID 16bit 0x110e
ETypeUint 256
Attribute 0x0100
ETypeString AVRCP Device


Record:2 Handle:0x4f49110a Name:Audio Source
Attribute 0x0000 Service Record Handle
ETypeUint 1330188554
Attribute 0x0001 Service Class ID List
ETypeDES
ETypeUUID 16bit 0x110a
Attribute 0x0002 Service Record State
ETypeUint 0
Attribute 0x0004 Protocol Descriptor List
ETypeDES
ETypeDES
ETypeUUID 16bit 0x0100
ETypeUint 25
ETypeDES
ETypeUUID 16bit 0x0019
ETypeUint 258
Attribute 0x0005 Browse Group List
ETypeDES
ETypeUUID 16bit 0x1002
Attribute 0x0006 Language Base Attribute ID List
ETypeDES
ETypeUint 25966
ETypeUint 106
ETypeUint 256
ETypeUint 26226
ETypeUint 106
ETypeUint 272
ETypeUint 25701
ETypeUint 106
ETypeUint 288
ETypeUint 27233
ETypeUint 106
ETypeUint 304
Attribute 0x0008 Service Availability
ETypeUint 255
Attribute 0x0009 Bluetooth Profile DescriptorList
ETypeDES
ETypeDES
ETypeUUID 16bit 0x110d
ETypeUint 258
Attribute 0x0100
ETypeString Audio Source

Record:3 Handle:0x0 Name:unknown
Attribute 0x0000 Service Record Handle
ETypeUint 0
Attribute 0x0001 Service Class ID List
ETypeDES
ETypeUUID 16bit 0x1000
Attribute 0x0002 Service Record State
ETypeUint 0
Attribute 0x0004 Protocol Descriptor List
ETypeDES
ETypeDES
ETypeUUID 16bit 0x0100
ETypeDES
ETypeUUID 16bit 0x0001
Attribute 0x0006 Language Base Attribute ID List
ETypeDES
ETypeUint 25966
ETypeUint 106
ETypeUint 256
ETypeUint 26226
ETypeUint 106
ETypeUint 272
ETypeUint 25701
ETypeUint 106
ETypeUint 288
ETypeUint 27233
ETypeUint 106
ETypeUint 304
Attribute 0x0008 Service Availability
ETypeUint 255
Attribute 0x0200 Group ID
ETypeDES
ETypeUint 256
Attribute 0x0201 Service Database State
ETypeUint 40
Attribute 0x0300 Service Version
ETypeDES
ETypeString 2.1
ETypeString Copyright (c) 2007 Apple Inc. All rights reserved
Attribute 0x0308 HomePage URL
ETypeUrl


End of File