All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bluez-devel] SDP browsing inconsistency on Motorola A1000
@ 2005-03-11 12:40 Dimitry Andric
  2005-03-11 13:59 ` Stephen Crane
  0 siblings, 1 reply; 3+ messages in thread
From: Dimitry Andric @ 2005-03-11 12:40 UTC (permalink / raw)
  To: BlueZ Development List

[-- Attachment #1: Type: text/plain, Size: 1848 bytes --]

Hi,

I've just been asked to check out an SDP problem, which occurred with
a Motorola A1000 phone.  It seems like the phone doesn't return any
Service Class ID's for its Handsfree Audio Gateway profile.

This turns out to be caused by sdp_get_service_classes() failing.  I
added some debug code to this function (see sdp-dtd-debug.patch, and
compile with -DSDP_DEBUG), to help diagnose the problem.

For some reason, spd_get_service_classes thinks there's a SDP_UINT16
(0x09) instead of a SDP_UUID16 (0x19) in the Service Class ID list of
the HF AG record, but here hcidump and sdptool disagree.

sdptool says (see sdptool-arm for full dump):

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100

while hcidump says (see hcidump-arm.raw):

          record #4
              aid 0x0000 (SrvRecHndl)
                 uint 0x10003
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

However, this is all on an ARM platform, while on an x86 platform it
DOES seem to work correctly!

sdptool says on x86 (see sdptool-x86):

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio

and hcidump says (see hcidump-x86.raw):

          record #3
              aid 0x0000 (SrvRecHndl)
                 uint 0x10003
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >

So it seems to be another nice alignment problem somewhere in the SDP
library stuff! (Hi Marcel :P)  If anyone has an idea where this might
be, please let me know.

[-- Attachment #2: sdp-dtd-debug.patch --]
[-- Type: text/plain, Size: 5464 bytes --]

\a\0\x01\0¤â2Bfˆ\f\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0¦â2BkÂ\x03\0\x04\x03\v\0.\0o\x1f(
\0\x01\0	\0\x01\0¦â2BKñ\x03\0\x04\x0e\x06\x01\r\b\0.\0\a\0\x01\0¨â2Bm3\b\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0¨â2BMb\b\0\x04\x05\x04\0.\0\x16\x11\0\0\0×â2Bï\	\0\x01\x05\x04\ro\x1f(
\0\x18Ì\x01\0Äž\x01\a\0\x01\0×â2B	\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0Øâ2Bv\x02\f\0\x04\x03\v\0.\0o\x1f(
\0\x01\0\x11\0\0\0Øâ2B\x02\f\0\x02. \f\0\b\0\x01\0\x02\x01\x04\0\x01\0@\0\b\0\0\0Øâ2B“\x02\f\0\x01\r\b\x04.\0\x0f\0\b\0\x01\0Øâ2Bå\x19\f\0\x04\x13\x05\x01.\0\x01\0\x06\0\x01\0Øâ2B÷@\f\0\x04^[\x03.\0\x05	\0\x01\0Øâ2Bþc\f\0\x04\x0e\x06\x01\r\b\0.\0\x15\0\x01\0Øâ2Bé–\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\x01\0\x02\0\x15\0\x01\0Øâ2B&¶\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\0\0\0\0\x11\0\0\0Øâ2B4¶\f\0\x02. \f\0\b\0\x01\0\x04\x02\x04\0M\0\0\0\x11\0\x01\0Øâ2Bö½\f\0\x02. \f\0\b\0\x01\0\x04\x01\x04\0@\0\0\0\x13\0\0\0Øâ2B\x04¾\f\0\x02. \x0e\0
\0\x01\0\x05\x01\x06\0M\0\0\0\0\0\b\0\x01\0Øâ2BÅÅ\f\0\x04\x13\x05\x01.\0\x01\0\b\0\x01\0Øâ2BcÕ\f\0\x04\x13\x05\x01.\0\x01\0\x13\0\x01\0Øâ2B4Ý\f\0\x02. \x0e\0
\0\x01\0\x05\x02\x06\0@\0\0\0\0\0\x1d\0\0\0Øâ2BÆÝ\f\0\x02. \x18\0\x14\0M\0\x06\0\0\0\x0f5\x03\x19\x10\x02ÿÿ5\x05
\0\0ÿÿ\0\b\0\x01\0Øâ2Bwü\f\0\x04\x13\x05\x01.\0\x01\0X\x01\x01\0Øâ2Bòe\r\0\x02. S\x01O\x02@\0\a\0\0\x02J\x02G6\x02D5•	\0\0
\0\x01\0\0	\0\x015\x06\x19\x11\x12\x19\x12\x03	\0\x02
\0\0\0
	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x02	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\b	\x01\0	\x01\0%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11\x05	\0\x045\x115\x03\x19\x01\05\x05\x19\0\x03\b\x035\x03\x19\0\b	\0\x055\x03\x19\x10\x02	\0	5\b5\x06\x19\x11\x05	\x01\0	\x01\0%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	\0\0
\0\x01\0\x02	\0\x015\x03\x19\x11\x03	\0\x02
\0\0\0		\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x01	\0\x055\x03\x19\x10\x02\x05\x01\x01\0Øâ2B©q\r\0\x02.\x10\0\x01	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x03	\x01\0	\x01\0%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5¤	\0\0
\0\x01\0\x03	\0\x015\x06\x19\x11\x1f\x19\x12\x03	\0\x02
\0\0\0\r	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x04	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x1e	\x01\0	\x01\0%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	\0\a\0\x11\0\0\0Øâ2Bƒr\r\0\x02. \f\0\b\0\x01\0\x06\x03\x04\0M\0@\0\b\0\x01\0Øâ2B^[‰\r\0\x04\x13\x05\x01.\0\x01\0\x11\0\x01\0Øâ2Bû4\x0e\0\x02. \f\0\b\0\x01\0\a\x03\x04\0M\0@\0\a\0\0\0Úâ2B²3\x0e\0\x01\x06\x04\x03.\0\x13\a\0\x01\0Úâ2BvP\x0e\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0Úâ2B$‡\x0e\0\x04\x05\x04\0.\0\x16OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "OBEX Object Push"
Attribute Identifier : 0x101
  Text : "OBEX Object Push"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x303
  Data Sequence
    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x1103 - DialupNetworking (DUN)
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Dialup Networking"
Attribute Identifier : 0x101
  Text : "Dialup Networking"
Attribute Identifier : 0x102
  Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7


[-- Attachment #3: sdptool-arm --]
[-- Type: text/plain, Size: 5464 bytes --]

\a\0\x01\0¤â2Bfˆ\f\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0¦â2BkÂ\x03\0\x04\x03\v\0.\0o\x1f(
\0\x01\0	\0\x01\0¦â2BKñ\x03\0\x04\x0e\x06\x01\r\b\0.\0\a\0\x01\0¨â2Bm3\b\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0¨â2BMb\b\0\x04\x05\x04\0.\0\x16\x11\0\0\0×â2Bï\	\0\x01\x05\x04\ro\x1f(
\0\x18Ì\x01\0Äž\x01\a\0\x01\0×â2B	\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0Øâ2Bv\x02\f\0\x04\x03\v\0.\0o\x1f(
\0\x01\0\x11\0\0\0Øâ2B\x02\f\0\x02. \f\0\b\0\x01\0\x02\x01\x04\0\x01\0@\0\b\0\0\0Øâ2B“\x02\f\0\x01\r\b\x04.\0\x0f\0\b\0\x01\0Øâ2Bå\x19\f\0\x04\x13\x05\x01.\0\x01\0\x06\0\x01\0Øâ2B÷@\f\0\x04^[\x03.\0\x05	\0\x01\0Øâ2Bþc\f\0\x04\x0e\x06\x01\r\b\0.\0\x15\0\x01\0Øâ2Bé–\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\x01\0\x02\0\x15\0\x01\0Øâ2B&¶\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\0\0\0\0\x11\0\0\0Øâ2B4¶\f\0\x02. \f\0\b\0\x01\0\x04\x02\x04\0M\0\0\0\x11\0\x01\0Øâ2Bö½\f\0\x02. \f\0\b\0\x01\0\x04\x01\x04\0@\0\0\0\x13\0\0\0Øâ2B\x04¾\f\0\x02. \x0e\0
\0\x01\0\x05\x01\x06\0M\0\0\0\0\0\b\0\x01\0Øâ2BÅÅ\f\0\x04\x13\x05\x01.\0\x01\0\b\0\x01\0Øâ2BcÕ\f\0\x04\x13\x05\x01.\0\x01\0\x13\0\x01\0Øâ2B4Ý\f\0\x02. \x0e\0
\0\x01\0\x05\x02\x06\0@\0\0\0\0\0\x1d\0\0\0Øâ2BÆÝ\f\0\x02. \x18\0\x14\0M\0\x06\0\0\0\x0f5\x03\x19\x10\x02ÿÿ5\x05
\0\0ÿÿ\0\b\0\x01\0Øâ2Bwü\f\0\x04\x13\x05\x01.\0\x01\0X\x01\x01\0Øâ2Bòe\r\0\x02. S\x01O\x02@\0\a\0\0\x02J\x02G6\x02D5•	\0\0
\0\x01\0\0	\0\x015\x06\x19\x11\x12\x19\x12\x03	\0\x02
\0\0\0
	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x02	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\b	\x01\0	\x01\0%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11\x05	\0\x045\x115\x03\x19\x01\05\x05\x19\0\x03\b\x035\x03\x19\0\b	\0\x055\x03\x19\x10\x02	\0	5\b5\x06\x19\x11\x05	\x01\0	\x01\0%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	\0\0
\0\x01\0\x02	\0\x015\x03\x19\x11\x03	\0\x02
\0\0\0		\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x01	\0\x055\x03\x19\x10\x02\x05\x01\x01\0Øâ2B©q\r\0\x02.\x10\0\x01	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x03	\x01\0	\x01\0%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5¤	\0\0
\0\x01\0\x03	\0\x015\x06\x19\x11\x1f\x19\x12\x03	\0\x02
\0\0\0\r	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x04	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x1e	\x01\0	\x01\0%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	\0\a\0\x11\0\0\0Øâ2Bƒr\r\0\x02. \f\0\b\0\x01\0\x06\x03\x04\0M\0@\0\b\0\x01\0Øâ2B^[‰\r\0\x04\x13\x05\x01.\0\x01\0\x11\0\x01\0Øâ2Bû4\x0e\0\x02. \f\0\b\0\x01\0\a\x03\x04\0M\0@\0\a\0\0\0Úâ2B²3\x0e\0\x01\x06\x04\x03.\0\x13\a\0\x01\0Úâ2BvP\x0e\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0Úâ2B$‡\x0e\0\x04\x05\x04\0.\0\x16OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "OBEX Object Push"
Attribute Identifier : 0x101
  Text : "OBEX Object Push"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x303
  Data Sequence
    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x1103 - DialupNetworking (DUN)
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Dialup Networking"
Attribute Identifier : 0x101
  Text : "Dialup Networking"
Attribute Identifier : 0x102
  Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7


[-- Attachment #4: hcidump-arm.raw --]
[-- Type: application/octet-stream, Size: 5464 bytes --]

[-- Attachment #5: sdptool-x86 --]
[-- Type: text/plain, Size: 5464 bytes --]

\a\0\x01\0¤â2Bfˆ\f\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0¦â2BkÂ\x03\0\x04\x03\v\0.\0o\x1f(
\0\x01\0	\0\x01\0¦â2BKñ\x03\0\x04\x0e\x06\x01\r\b\0.\0\a\0\x01\0¨â2Bm3\b\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0¨â2BMb\b\0\x04\x05\x04\0.\0\x16\x11\0\0\0×â2Bï\	\0\x01\x05\x04\ro\x1f(
\0\x18Ì\x01\0Äž\x01\a\0\x01\0×â2B	\0\x04\x0f\x04\0\x01\x05\x04\x0e\0\x01\0Øâ2Bv\x02\f\0\x04\x03\v\0.\0o\x1f(
\0\x01\0\x11\0\0\0Øâ2B\x02\f\0\x02. \f\0\b\0\x01\0\x02\x01\x04\0\x01\0@\0\b\0\0\0Øâ2B“\x02\f\0\x01\r\b\x04.\0\x0f\0\b\0\x01\0Øâ2Bå\x19\f\0\x04\x13\x05\x01.\0\x01\0\x06\0\x01\0Øâ2B÷@\f\0\x04^[\x03.\0\x05	\0\x01\0Øâ2Bþc\f\0\x04\x0e\x06\x01\r\b\0.\0\x15\0\x01\0Øâ2Bé–\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\x01\0\x02\0\x15\0\x01\0Øâ2B&¶\f\0\x02. \x10\0\f\0\x01\0\x03\x01\b\0M\0@\0\0\0\0\0\x11\0\0\0Øâ2B4¶\f\0\x02. \f\0\b\0\x01\0\x04\x02\x04\0M\0\0\0\x11\0\x01\0Øâ2Bö½\f\0\x02. \f\0\b\0\x01\0\x04\x01\x04\0@\0\0\0\x13\0\0\0Øâ2B\x04¾\f\0\x02. \x0e\0
\0\x01\0\x05\x01\x06\0M\0\0\0\0\0\b\0\x01\0Øâ2BÅÅ\f\0\x04\x13\x05\x01.\0\x01\0\b\0\x01\0Øâ2BcÕ\f\0\x04\x13\x05\x01.\0\x01\0\x13\0\x01\0Øâ2B4Ý\f\0\x02. \x0e\0
\0\x01\0\x05\x02\x06\0@\0\0\0\0\0\x1d\0\0\0Øâ2BÆÝ\f\0\x02. \x18\0\x14\0M\0\x06\0\0\0\x0f5\x03\x19\x10\x02ÿÿ5\x05
\0\0ÿÿ\0\b\0\x01\0Øâ2Bwü\f\0\x04\x13\x05\x01.\0\x01\0X\x01\x01\0Øâ2Bòe\r\0\x02. S\x01O\x02@\0\a\0\0\x02J\x02G6\x02D5•	\0\0
\0\x01\0\0	\0\x015\x06\x19\x11\x12\x19\x12\x03	\0\x02
\0\0\0
	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x02	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\b	\x01\0	\x01\0%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11\x05	\0\x045\x115\x03\x19\x01\05\x05\x19\0\x03\b\x035\x03\x19\0\b	\0\x055\x03\x19\x10\x02	\0	5\b5\x06\x19\x11\x05	\x01\0	\x01\0%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	\0\0
\0\x01\0\x02	\0\x015\x03\x19\x11\x03	\0\x02
\0\0\0		\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x01	\0\x055\x03\x19\x10\x02\x05\x01\x01\0Øâ2B©q\r\0\x02.\x10\0\x01	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x03	\x01\0	\x01\0%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5¤	\0\0
\0\x01\0\x03	\0\x015\x06\x19\x11\x1f\x19\x12\x03	\0\x02
\0\0\0\r	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x04	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0\b\bÿ	\0	5\b5\x06\x19\x11\x1e	\x01\0	\x01\0%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	\0\a\0\x11\0\0\0Øâ2Bƒr\r\0\x02. \f\0\b\0\x01\0\x06\x03\x04\0M\0@\0\b\0\x01\0Øâ2B^[‰\r\0\x04\x13\x05\x01.\0\x01\0\x11\0\x01\0Øâ2Bû4\x0e\0\x02. \f\0\b\0\x01\0\a\x03\x04\0M\0@\0\a\0\0\0Úâ2B²3\x0e\0\x01\x06\x04\x03.\0\x13\a\0\x01\0Úâ2BvP\x0e\0\x04\x0f\x04\0\x01\x06\x04\a\0\x01\0Úâ2B$‡\x0e\0\x04\x05\x04\0.\0\x16OBEXObjectPush
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x3
    Data Sequence
      UUID16 : 0x0008 - OBEX
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1105 - OBEXObjectPush
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "OBEX Object Push"
Attribute Identifier : 0x101
  Text : "OBEX Object Push"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x303
  Data Sequence
    Integer : 0xff

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10002
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x1103 - DialupNetworking (DUN)
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0x9
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x1
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x1103 - DialupNetworking (DUN)
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Dialup Networking"
Attribute Identifier : 0x101
  Text : "Dialup Networking"
Attribute Identifier : 0x102
  Text : "Motorola"

Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    UUID16 : 0x111f - HandsfreeAudioGateway
    UUID16 : 0x1203 - GenericAudio
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100
Attribute Identifier : 0x2 - ServiceRecordState
  Integer : 0xd
Attribute Identifier : 0x4 - ProtocolDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x0100 - L2CAP
    Data Sequence
      UUID16 : 0x0003 - RFCOMM
      Channel/Port (Integer) : 0x4
Attribute Identifier : 0x5 - BrowseGroupList
  Data Sequence
    UUID16 : 0x1002 - PublicBrowseGroup (SDP)
Attribute Identifier : 0x8 - ServiceAvailability
  Integer : 0xff
Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
  Data Sequence
    Data Sequence
      UUID16 : 0x111e - Handsfree
      Version (Integer) : 0x100
Attribute Identifier : 0x100
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x101
  Text : "Handsfree Audio Gateway"
Attribute Identifier : 0x102
  Text : "Motorola"
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7


[-- Attachment #6: hcidump-x86.raw --]
[-- Type: application/octet-stream, Size: 5464 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Bluez-devel] SDP browsing inconsistency on Motorola A1000
  2005-03-11 12:40 [Bluez-devel] SDP browsing inconsistency on Motorola A1000 Dimitry Andric
@ 2005-03-11 13:59 ` Stephen Crane
  2005-03-11 14:35   ` Dimitry Andric
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Crane @ 2005-03-11 13:59 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 23754 bytes --]

Hi Dimitry,
I don't know what's causing your problem but I've had a look at the
dumps and it seems that the integer-sequence values being printed out in
error are in fact from the LANG_BASE_ATTR_ID_LIST, which occurs 44 bytes
after the SVCLASS_ID_LIST. 

Can you step through this in a debugger on the ARM box? Also to check
for memory corruption, can you run it under valgrind on the x86 box?

Finally, are you sure that the text of your sdptool-arm dump is correct?
The data for the record in question seems to be repeated:

[...]
Attribute Identifier : 0x301
  Integer : 0x20
Attribute Identifier : 0x311
  Integer : 0x7

ttribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100
[...]

Thanks,
Steve

On Fri, 2005-03-11 at 13:40 +0100, Dimitry Andric wrote:
> Hi,
> 
> I've just been asked to check out an SDP problem, which occurred with
> a Motorola A1000 phone.  It seems like the phone doesn't return any
> Service Class ID's for its Handsfree Audio Gateway profile.
> 
> This turns out to be caused by sdp_get_service_classes() failing.  I
> added some debug code to this function (see sdp-dtd-debug.patch, and
> compile with -DSDP_DEBUG), to help diagnose the problem.
> 
> For some reason, spd_get_service_classes thinks there's a SDP_UINT16
> (0x09) instead of a SDP_UUID16 (0x19) in the Service Class ID list of
> the HF AG record, but here hcidump and sdptool disagree.
> 
> sdptool says (see sdptool-arm for full dump):
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10003
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     Integer : 0x656e
>     Integer : 0x6a
>     Integer : 0x100
> 
> while hcidump says (see hcidump-arm.raw):
> 
>           record #4
>               aid 0x0000 (SrvRecHndl)
>                  uint 0x10003
>               aid 0x0001 (SrvClassIDList)
>                  < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >
> 
> However, this is all on an ARM platform, while on an x86 platform it
> DOES seem to work correctly!
> 
> sdptool says on x86 (see sdptool-x86):
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10003
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x111f - HandsfreeAudioGateway
>     UUID16 : 0x1203 - GenericAudio
> 
> and hcidump says (see hcidump-x86.raw):
> 
>           record #3
>               aid 0x0000 (SrvRecHndl)
>                  uint 0x10003
>               aid 0x0001 (SrvClassIDList)
>                  < uuid-16 0x111f (Handsfree AG) uuid-16 0x1203 (Audio) >
> 
> So it seems to be another nice alignment problem somewhere in the SDP
> library stuff! (Hi Marcel :P)  If anyone has an idea where this might
> be, please let me know.
> plain text document attachment (sdp-dtd-debug.patch)
> \a&#0;\x01&#0;€â2Bfˆ\f&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Šâ2BkÂ\x03&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;	&#0;\x01&#0;Šâ2BKñ\x03&#0;\x04\x0e\x06\x01\b&#0;.&#0;\a&#0;\x01&#0;šâ2Bm3\b&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;šâ2BMb\b&#0;\x04\x05\x04&#0;.&#0;\x16\x11&#0;&#0;&#0;×â2Bï\	&#0;\x01\x05\x04o\x1f(
> &#0;\x18Ì\x01&#0;Äž\x01\a&#0;\x01&#0;×â2B	&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Øâ2Bv\x02\f&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;\x11&#0;&#0;&#0;Øâ2B\x02\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x02\x01\x04&#0;\x01&#0;@&#0;\b&#0;&#0;&#0;Øâ2B“\x02\f&#0;\x01\b\x04.&#0;\x0f&#0;\b&#0;\x01&#0;Øâ2Bå\x19\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x06&#0;\x01&#0;Øâ2B÷@\f&#0;\x04^[\x03.&#0;\x05	&#0;\x01&#0;Øâ2Bþc\f&#0;\x04\x0e\x06\x01\b&#0;.&#0;\x15&#0;\x01&#0;Øâ2Bé–\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;\x01&#0;\x02&#0;\x15&#0;\x01&#0;Øâ2B&¶\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;\x11&#0;&#0;&#0;Øâ2B4¶\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x02\x04&#0;M&#0;&#0;&#0;\x11&#0;\x01&#0;Øâ2Böœ\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x01\x04&#0;@&#0;&#0;&#0;\x13&#0;&#0;&#0;Øâ2B\x04Ÿ\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x01\x06&#0;M&#0;&#0;&#0;&#0;&#0;\b&#0;\x01&#0;Øâ2BÅÅ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\b&#0;\x01&#0;Øâ2BcÕ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x13&#0;\x01&#0;Øâ2B4Ý\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x02\x06&#0;@&#0;&#0;&#0;&#0;&#0;\x1d&#0;&#0;&#0;Øâ2BÆÝ\f&#0;\x02. \x18&#0;\x14&#0;M&#0;\x06&#0;&#0;&#0;\x0f5\x03\x19\x10\x02ÿÿ5\x05
> &#0;&#0;ÿÿ&#0;\b&#0;\x01&#0;Øâ2Bwü\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;X\x01\x01&#0;Øâ2Bòe&#0;\x02. S\x01O\x02@&#0;\a&#0;&#0;\x02J\x02G6\x02D5•	&#0;&#0;
> &#0;\x01&#0;&#0;	&#0;\x015\x06\x19\x11\x12\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;
> 	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x02	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\b	\x01&#0;	\x01&#0;%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	&#0;&#0;
> &#0;\x01&#0;\x01	&#0;\x015\x03\x19\x11\x05	&#0;\x045\x115\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x035\x03\x19&#0;\b	&#0;\x055\x03\x19\x10\x02	&#0;	5\b5\x06\x19\x11\x05	\x01&#0;	\x01&#0;%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	&#0;&#0;
> &#0;\x01&#0;\x02	&#0;\x015\x03\x19\x11\x03	&#0;\x02
> &#0;&#0;&#0;		&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x01	&#0;\x055\x03\x19\x10\x02\x05\x01\x01&#0;Øâ2B©q&#0;\x02.\x10&#0;\x01	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x03	\x01&#0;	\x01&#0;%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5€	&#0;&#0;
> &#0;\x01&#0;\x03	&#0;\x015\x06\x19\x11\x1f\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x04	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x1e	\x01&#0;	\x01&#0;%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	&#0;\a&#0;\x11&#0;&#0;&#0;Øâ2Bƒr&#0;\x02. \f&#0;\b&#0;\x01&#0;\x06\x03\x04&#0;M&#0;@&#0;\b&#0;\x01&#0;Øâ2B^[‰&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x11&#0;\x01&#0;Øâ2Bû4\x0e&#0;\x02. \f&#0;\b&#0;\x01&#0;\a\x03\x04&#0;M&#0;@&#0;\a&#0;&#0;&#0;Úâ2B²3\x0e&#0;\x01\x06\x04\x03.&#0;\x13\a&#0;\x01&#0;Úâ2BvP\x0e&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;Úâ2B$‡\x0e&#0;\x04\x05\x04&#0;.&#0;\x16OBEXObjectPush
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x3
>     Data Sequence
>       UUID16 : 0x0008 - OBEX
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1105 - OBEXObjectPush
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x101
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x303
>   Data Sequence
>     Integer : 0xff
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10002
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x1103 - DialupNetworking (DUN)
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0x9
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x1
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1103 - DialupNetworking (DUN)
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Dialup Networking"
> Attribute Identifier : 0x101
>   Text : "Dialup Networking"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10003
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x111f - HandsfreeAudioGateway
>     UUID16 : 0x1203 - GenericAudio
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 
> ttribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     Integer : 0x656e
>     Integer : 0x6a
>     Integer : 0x100
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 
> plain text document attachment (sdptool-arm)
> \a&#0;\x01&#0;€â2Bfˆ\f&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Šâ2BkÂ\x03&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;	&#0;\x01&#0;Šâ2BKñ\x03&#0;\x04\x0e\x06\x01\b&#0;.&#0;\a&#0;\x01&#0;šâ2Bm3\b&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;šâ2BMb\b&#0;\x04\x05\x04&#0;.&#0;\x16\x11&#0;&#0;&#0;×â2Bï\	&#0;\x01\x05\x04o\x1f(
> &#0;\x18Ì\x01&#0;Äž\x01\a&#0;\x01&#0;×â2B	&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Øâ2Bv\x02\f&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;\x11&#0;&#0;&#0;Øâ2B\x02\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x02\x01\x04&#0;\x01&#0;@&#0;\b&#0;&#0;&#0;Øâ2B“\x02\f&#0;\x01\b\x04.&#0;\x0f&#0;\b&#0;\x01&#0;Øâ2Bå\x19\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x06&#0;\x01&#0;Øâ2B÷@\f&#0;\x04^[\x03.&#0;\x05	&#0;\x01&#0;Øâ2Bþc\f&#0;\x04\x0e\x06\x01\b&#0;.&#0;\x15&#0;\x01&#0;Øâ2Bé–\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;\x01&#0;\x02&#0;\x15&#0;\x01&#0;Øâ2B&¶\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;\x11&#0;&#0;&#0;Øâ2B4¶\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x02\x04&#0;M&#0;&#0;&#0;\x11&#0;\x01&#0;Øâ2Böœ\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x01\x04&#0;@&#0;&#0;&#0;\x13&#0;&#0;&#0;Øâ2B\x04Ÿ\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x01\x06&#0;M&#0;&#0;&#0;&#0;&#0;\b&#0;\x01&#0;Øâ2BÅÅ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\b&#0;\x01&#0;Øâ2BcÕ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x13&#0;\x01&#0;Øâ2B4Ý\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x02\x06&#0;@&#0;&#0;&#0;&#0;&#0;\x1d&#0;&#0;&#0;Øâ2BÆÝ\f&#0;\x02. \x18&#0;\x14&#0;M&#0;\x06&#0;&#0;&#0;\x0f5\x03\x19\x10\x02ÿÿ5\x05
> &#0;&#0;ÿÿ&#0;\b&#0;\x01&#0;Øâ2Bwü\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;X\x01\x01&#0;Øâ2Bòe&#0;\x02. S\x01O\x02@&#0;\a&#0;&#0;\x02J\x02G6\x02D5•	&#0;&#0;
> &#0;\x01&#0;&#0;	&#0;\x015\x06\x19\x11\x12\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;
> 	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x02	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\b	\x01&#0;	\x01&#0;%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	&#0;&#0;
> &#0;\x01&#0;\x01	&#0;\x015\x03\x19\x11\x05	&#0;\x045\x115\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x035\x03\x19&#0;\b	&#0;\x055\x03\x19\x10\x02	&#0;	5\b5\x06\x19\x11\x05	\x01&#0;	\x01&#0;%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	&#0;&#0;
> &#0;\x01&#0;\x02	&#0;\x015\x03\x19\x11\x03	&#0;\x02
> &#0;&#0;&#0;		&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x01	&#0;\x055\x03\x19\x10\x02\x05\x01\x01&#0;Øâ2B©q&#0;\x02.\x10&#0;\x01	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x03	\x01&#0;	\x01&#0;%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5€	&#0;&#0;
> &#0;\x01&#0;\x03	&#0;\x015\x06\x19\x11\x1f\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x04	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x1e	\x01&#0;	\x01&#0;%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	&#0;\a&#0;\x11&#0;&#0;&#0;Øâ2Bƒr&#0;\x02. \f&#0;\b&#0;\x01&#0;\x06\x03\x04&#0;M&#0;@&#0;\b&#0;\x01&#0;Øâ2B^[‰&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x11&#0;\x01&#0;Øâ2Bû4\x0e&#0;\x02. \f&#0;\b&#0;\x01&#0;\a\x03\x04&#0;M&#0;@&#0;\a&#0;&#0;&#0;Úâ2B²3\x0e&#0;\x01\x06\x04\x03.&#0;\x13\a&#0;\x01&#0;Úâ2BvP\x0e&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;Úâ2B$‡\x0e&#0;\x04\x05\x04&#0;.&#0;\x16OBEXObjectPush
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x3
>     Data Sequence
>       UUID16 : 0x0008 - OBEX
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1105 - OBEXObjectPush
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x101
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x303
>   Data Sequence
>     Integer : 0xff
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10002
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x1103 - DialupNetworking (DUN)
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0x9
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x1
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1103 - DialupNetworking (DUN)
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Dialup Networking"
> Attribute Identifier : 0x101
>   Text : "Dialup Networking"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10003
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x111f - HandsfreeAudioGateway
>     UUID16 : 0x1203 - GenericAudio
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 
> ttribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     Integer : 0x656e
>     Integer : 0x6a
>     Integer : 0x100
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 
> plain text document attachment (sdptool-x86)
> \a&#0;\x01&#0;€â2Bfˆ\f&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Šâ2BkÂ\x03&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;	&#0;\x01&#0;Šâ2BKñ\x03&#0;\x04\x0e\x06\x01\b&#0;.&#0;\a&#0;\x01&#0;šâ2Bm3\b&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;šâ2BMb\b&#0;\x04\x05\x04&#0;.&#0;\x16\x11&#0;&#0;&#0;×â2Bï\	&#0;\x01\x05\x04o\x1f(
> &#0;\x18Ì\x01&#0;Äž\x01\a&#0;\x01&#0;×â2B	&#0;\x04\x0f\x04&#0;\x01\x05\x04\x0e&#0;\x01&#0;Øâ2Bv\x02\f&#0;\x04\x03\v&#0;.&#0;o\x1f(
> &#0;\x01&#0;\x11&#0;&#0;&#0;Øâ2B\x02\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x02\x01\x04&#0;\x01&#0;@&#0;\b&#0;&#0;&#0;Øâ2B“\x02\f&#0;\x01\b\x04.&#0;\x0f&#0;\b&#0;\x01&#0;Øâ2Bå\x19\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x06&#0;\x01&#0;Øâ2B÷@\f&#0;\x04^[\x03.&#0;\x05	&#0;\x01&#0;Øâ2Bþc\f&#0;\x04\x0e\x06\x01\b&#0;.&#0;\x15&#0;\x01&#0;Øâ2Bé–\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;\x01&#0;\x02&#0;\x15&#0;\x01&#0;Øâ2B&¶\f&#0;\x02. \x10&#0;\f&#0;\x01&#0;\x03\x01\b&#0;M&#0;@&#0;&#0;&#0;&#0;&#0;\x11&#0;&#0;&#0;Øâ2B4¶\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x02\x04&#0;M&#0;&#0;&#0;\x11&#0;\x01&#0;Øâ2Böœ\f&#0;\x02. \f&#0;\b&#0;\x01&#0;\x04\x01\x04&#0;@&#0;&#0;&#0;\x13&#0;&#0;&#0;Øâ2B\x04Ÿ\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x01\x06&#0;M&#0;&#0;&#0;&#0;&#0;\b&#0;\x01&#0;Øâ2BÅÅ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\b&#0;\x01&#0;Øâ2BcÕ\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x13&#0;\x01&#0;Øâ2B4Ý\f&#0;\x02. \x0e&#0;
> &#0;\x01&#0;\x05\x02\x06&#0;@&#0;&#0;&#0;&#0;&#0;\x1d&#0;&#0;&#0;Øâ2BÆÝ\f&#0;\x02. \x18&#0;\x14&#0;M&#0;\x06&#0;&#0;&#0;\x0f5\x03\x19\x10\x02ÿÿ5\x05
> &#0;&#0;ÿÿ&#0;\b&#0;\x01&#0;Øâ2Bwü\f&#0;\x04\x13\x05\x01.&#0;\x01&#0;X\x01\x01&#0;Øâ2Bòe&#0;\x02. S\x01O\x02@&#0;\a&#0;&#0;\x02J\x02G6\x02D5•	&#0;&#0;
> &#0;\x01&#0;&#0;	&#0;\x015\x06\x19\x11\x12\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;
> 	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x02	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\b	\x01&#0;	\x01&#0;%\x15Headset Audio Gateway	\x01\x01%\x15Headset Audio Gateway	\x01\x02%\bMotorola5y	&#0;&#0;
> &#0;\x01&#0;\x01	&#0;\x015\x03\x19\x11\x05	&#0;\x045\x115\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x035\x03\x19&#0;\b	&#0;\x055\x03\x19\x10\x02	&#0;	5\b5\x06\x19\x11\x05	\x01&#0;	\x01&#0;%\x10OBEX Object Push	\x01\x01%\x10OBEX Object Push	\x01\x02%\bMotorola	\x03\x035\x02\bÿ5Š	&#0;&#0;
> &#0;\x01&#0;\x02	&#0;\x015\x03\x19\x11\x03	&#0;\x02
> &#0;&#0;&#0;		&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x01	&#0;\x055\x03\x19\x10\x02\x05\x01\x01&#0;Øâ2B©q&#0;\x02.\x10&#0;\x01	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x03	\x01&#0;	\x01&#0;%\x11Dialup Networking	\x01\x01%\x11Dialup Networking	\x01\x02%\bMotorola5€	&#0;&#0;
> &#0;\x01&#0;\x03	&#0;\x015\x06\x19\x11\x1f\x19\x12\x03	&#0;\x02
> &#0;&#0;&#0;	&#0;\x045\f5\x03\x19\x01&#0;5\x05\x19&#0;\x03\b\x04	&#0;\x055\x03\x19\x10\x02	&#0;\x065		en	&#0;j	\x01&#0;	&#0;\b\bÿ	&#0;	5\b5\x06\x19\x11\x1e	\x01&#0;	\x01&#0;%\x17Handsfree Audio Gateway	\x01\x01%\x17Handsfree Audio Gateway	\x01\x02%\bMotorola	\x03\x01\b 	\x03\x11	&#0;\a&#0;\x11&#0;&#0;&#0;Øâ2Bƒr&#0;\x02. \f&#0;\b&#0;\x01&#0;\x06\x03\x04&#0;M&#0;@&#0;\b&#0;\x01&#0;Øâ2B^[‰&#0;\x04\x13\x05\x01.&#0;\x01&#0;\x11&#0;\x01&#0;Øâ2Bû4\x0e&#0;\x02. \f&#0;\b&#0;\x01&#0;\a\x03\x04&#0;M&#0;@&#0;\a&#0;&#0;&#0;Úâ2B²3\x0e&#0;\x01\x06\x04\x03.&#0;\x13\a&#0;\x01&#0;Úâ2BvP\x0e&#0;\x04\x0f\x04&#0;\x01\x06\x04\a&#0;\x01&#0;Úâ2B$‡\x0e&#0;\x04\x05\x04&#0;.&#0;\x16OBEXObjectPush
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x3
>     Data Sequence
>       UUID16 : 0x0008 - OBEX
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1105 - OBEXObjectPush
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x101
>   Text : "OBEX Object Push"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x303
>   Data Sequence
>     Integer : 0xff
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10002
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x1103 - DialupNetworking (DUN)
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0x9
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x1
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x1103 - DialupNetworking (DUN)
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Dialup Networking"
> Attribute Identifier : 0x101
>   Text : "Dialup Networking"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> 
> Attribute Identifier : 0x0 - ServiceRecordHandle
>   Integer : 0x10003
> Attribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     UUID16 : 0x111f - HandsfreeAudioGateway
>     UUID16 : 0x1203 - GenericAudio
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
>   Data Sequence
>     Code ISO639 (Integer) : 0x656e
>     Encoding (Integer) : 0x6a
>     Base Offset (Integer) : 0x100
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 
> ttribute Identifier : 0x1 - ServiceClassIDList
>   Data Sequence
>     Integer : 0x656e
>     Integer : 0x6a
>     Integer : 0x100
> Attribute Identifier : 0x2 - ServiceRecordState
>   Integer : 0xd
> Attribute Identifier : 0x4 - ProtocolDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x0100 - L2CAP
>     Data Sequence
>       UUID16 : 0x0003 - RFCOMM
>       Channel/Port (Integer) : 0x4
> Attribute Identifier : 0x5 - BrowseGroupList
>   Data Sequence
>     UUID16 : 0x1002 - PublicBrowseGroup (SDP)
> Attribute Identifier : 0x8 - ServiceAvailability
>   Integer : 0xff
> Attribute Identifier : 0x9 - BluetoothProfileDescriptorList
>   Data Sequence
>     Data Sequence
>       UUID16 : 0x111e - Handsfree
>       Version (Integer) : 0x100
> Attribute Identifier : 0x100
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x101
>   Text : "Handsfree Audio Gateway"
> Attribute Identifier : 0x102
>   Text : "Motorola"
> Attribute Identifier : 0x301
>   Integer : 0x20
> Attribute Identifier : 0x311
>   Integer : 0x7
> 

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Bluez-devel] SDP browsing inconsistency on Motorola A1000
  2005-03-11 13:59 ` Stephen Crane
@ 2005-03-11 14:35   ` Dimitry Andric
  0 siblings, 0 replies; 3+ messages in thread
From: Dimitry Andric @ 2005-03-11 14:35 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 1697 bytes --]

Stephen Crane wrote:

> I don't know what's causing your problem but I've had a look at the
> dumps and it seems that the integer-sequence values being printed out in
> error are in fact from the LANG_BASE_ATTR_ID_LIST, which occurs 44 bytes
> after the SVCLASS_ID_LIST. 

I didn't notice this earlier, but I'd say they are *before* the
ServiceClassIDList:

[...]
Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
[...]
Attribute Identifier : 0x6 - LanguageBaseAttributeIDList
  Data Sequence
    Code ISO639 (Integer) : 0x656e
    Encoding (Integer) : 0x6a
    Base Offset (Integer) : 0x100
[...]
Attribute Identifier : 0x0 - ServiceRecordHandle
  Integer : 0x10003
Attribute Identifier : 0x1 - ServiceClassIDList
  Data Sequence
    Integer : 0x656e
    Integer : 0x6a
    Integer : 0x100
[...]

At least I've got a bit of a clue where to start looking now. :)


> Can you step through this in a debugger on the ARM box?

I'll need to fix up some things for that, I'll get back about this
later.  I tried debugging on the thing before, but there's some weird
problems with gdb on it.

Usually I try to get by with inserting printfs in various strategic
locations, but the problem here is that I'm not sure where to put
them...


> Also to check for memory corruption, can you run it under valgrind
> on the x86 box?

Valgrind reports no problems, at least as far as I can interpret its
output.  (Attached as valgrind.dump.gz)


> Finally, are you sure that the text of your sdptool-arm dump is correct?
> The data for the record in question seems to be repeated:

Hm, either my mail client or my mail server corrupted this specific
file.  I'm sending it again as a .gz file.


[-- Attachment #2: valgrind.dump.gz --]
[-- Type: application/octet-stream, Size: 1553 bytes --]

[-- Attachment #3: sdptool-arm.gz --]
[-- Type: application/octet-stream, Size: 1553 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-03-11 14:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-11 12:40 [Bluez-devel] SDP browsing inconsistency on Motorola A1000 Dimitry Andric
2005-03-11 13:59 ` Stephen Crane
2005-03-11 14:35   ` Dimitry Andric

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.