Developer meeting – Helsinki 2008

Meeting held at the Nokia office in Helsinki May, 28th – 30th

attendees

  • Marcel Holtmann (Intel/BlueZ)
  • Johan Hedberg (Nokia)
  • Claudio Takahasi (INdT)
  • Luiz Augusto von Dentz (INdT)
  • Ville Tervo (Nokia)
  • Denis Kenzior (Trolltech)
  • Bea Lam (Trolltech)
  • Alok Barsode (Azingo)
  • David Woodhouse (Red Hat)
  • Lennart Poettering (Red Hat)
  • James Ho (Qualcomm)
  • Marc-André Lureau (Nokia)
  • Frédéric Dalleau (Access)

agenda

  • BlueZ 4.x
    • With some luck 4.0 can be made within a week or two
    • Merge bluez-libs into bluez-utils. Call package simply “bluez”
    • Rename hcid to bluetoothd (finally!)
    • Move development over to git hosted under kernel.org
    • New API’s documented under doc/
  • qualification
    • some companies been told that they can’t refer to Nokia’s host stack listing even though there shouldn’t be any problem
    • Access’s listing refers to Nokia’s without problems. It also contains profiles such as A2DP which other companies using BlueZ can refer to.
    • Bluetooth 2.1 qualification should preferably be done soon. Biggest missing piece is proper Secure Simple Pairing support.
  • kernel
    • netlink API coming. needed at least for BT2.1?
    • potential IOP problems with HFP + authorization since the RFCOMM socket API (L2CAP has the same issue too) doesn’t allow rejecting the RFCOMM connect request
      • suggestion: add new socket option, when set need to do a read() for a positive reply to be sent to the L2CAP/RFCOMM connect request. if the socket is closed before read() the request gets a negative reply.
    • SCO server support currently buggy: kernel will accept SCO connects even if there is no listening socket
    • RFCOMM server tty bugs need fixing. Currently there exists a race condition when a socket is adapted to an rfcomm tty and data already exists on the socket. When adaptation happens, the data is lost.
  • hcid/bluetoothd
    • Defined the API for services: register_adapter_driver & register_device_driver
    • Further updates to full use of libgdbus
    • Define bt_io API (libbluetooth-glib)
    • Implement basic skeleton within services for using the new API
    • Add external SDP client API to 4.x Adapter API. Takes string pattern as parameter and returns dictionary where keys are service record handles and values the actual records.
    • Add external Authorization API. Service record handle could be used as parameter to identify the service in question.
    • Update Agent API to tell bluetoothd about it’s IO capabilities (for Secure Simple Pairing)
  • audio
    • Telephony driver: need to define exact procedures and callbacks that are necessary for HFP
    • Current HSP implementation not strictly according to spec: button press should really toggle SCO state
    • Native pulse plugin work ready to start as a Google Summer of Code project
    • Lennart interested in the pulse integration. Will help with the pulse plugin.
    • We might be able to do better stream synchronization using the Bluetooth clock. Marcel will add a socket option to get it.
    • Lennart requested some ioctl’s to be added to get current socket buffer status (needed for some optimizations)
  • serial
    • Define new API to fit new service model
    • basic Connect/Disconnect methods for RFCOMM client
    • API’s that create new objects require some more thought
    • Created RFCOMM tty’s should preferably be made readable for the UID of the D-Bus client
  • network
    • network server disable: how to disconnect clients based on the server that they are connected to. BNEPGETCONNINFO + BNEPGETCONNLIST don’t provide enough information.
  • input
    • Input should check HIDNormallyConnectable and HIDReconnectInitiate.