AUTOMOTIVE BLUETOOTH TELEPHONY. COMBINING BlueZ AND THE MODERN VEHICLE.
Timo Müller, Mikel Astiz
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2
Building Open Source IVI Stack for Bluetooth Use Cases
using BlueZ, oFono and PulseAudio
feeding back APIs and architectural decisions into the GENIVI Alliance
AUTOMOTIVE BLUETOOTH TELEPHONY. WHY ARE WE DOING THIS?
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. DATA TRANSPORT ARCHITECTURE.
Page 3
L2CAP Channels
Logical Links
Logical Transports
Physical Links
Physical Channel
(cf. [1] Architecture &Terminology Overview, p. 39)
L2CAP Layer
Logical Layer
Physical Layer
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. PHYSICAL LAYER.
Physical Channel
• Frequency Hopping Sequence
• Access Code
• Packet Timing
Physical Link
represents a connection between Bluetooth devices
Page 4
L2CAP Channels
Logical Links
Logical Transports
Physical Links
Physical Channel
L2CAP Layer
Logical Layer
Physical Layer
Master
Slave
(see. [2] Core System Package, p. 71ff and 96ff)
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. LOGICAL LAYER.
Logical Transport
defines a communication channel with a set of characteristics:
• Flow control
• Acknowledgment and repeat mechanisms
• Sequence numbering
• Scheduling behaviour
Logical Link
associated with a logical transport
supports applications with
different transport requirements
Page 5
L2CAP Channels
Logical Links
Logical Transports
Physical Links
Physical Channel
L2CAP Layer
Logical Layer
Physical Layer
(see. [1] Architecture & Terminology Overview, p. 61)
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. LOGICAL TRANSPORTS.
ACL (Asynchronous Connection-Oriented)
Packet-switched communication
SCO (Synchronous Connection-Oriented)
Circuit-switched communication
Page 6
L2CAP Channels
Logical Links
Logical Transports
Physical Links
Physical Channel
L2CAP Layer
Logical Layer
Physical Layer
Master
Slave
Master
Slave
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. LOGICAL LINK CONTROL AND ADAPTATION PROTOCOL LAYER.
L2CAP Channel
used for connection-oriented and connectionless data services
offers
• Segmentation and reassembly of packets
• Flow Control
• Error Control and retransmission
Page 7
L2CAP Channels
Logical Links
Logical Transports
Physical Links
Physical Channel
L2CAP Layer
Logical Layer
Physical Layer
(see. [3] Core System Package, p. 30ff)
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 8
HANDS-FREE PROFILE (HFP). ROLES.
Cellular
Network
(cf. [4] Hands-Free Profile 1.6, p. 14)
Hands-Free Unit (HF) Audio Gateway (AG)
Headset
Hands-free car kit
Cellular
connection
Bluetooth
connection
SCO and
eSCO (Audio)
Automotive Bluetooth Telephony, BMW Car IT GmbH
HANDS-FREE PROFILE (HFP). STRUCTURE.
Page 9
Hands-Free Profile (HFP)
Controller(s)
Host Controller Interface (HCI)
RFCOMM
Generic
Access Profile
(GAP)
Logical Link and Adaption Layer (L2CAP)
Service Discovery
Profile (SDP)
Serial Port Profile (SPP)
AT CMD
(cf. [4] Hands-Free Profile 1.6, p. 10)
SCO and
eSCO (Audio)
Automotive Bluetooth Telephony, BMW Car IT GmbH
HANDS-FREE PROFILE (HFP). STRUCTURE.
Page 10
Hands-Free Profile (HFP)
Controller(s)
Host Controller Interface (HCI)
Generic
Access Profile
(GAP)
Logical Link and Adaption Layer (L2CAP)
Service Discovery
Profile (SDP)
Serial Port Profile (SPP)
AT CMD
(cf. [4] Hands-Free Profile 1.6, p. 10)
L2CAP Socket SCO Socket
RFCOMM RFCOMM
Socket
SCO and
eSCO (Audio)
Automotive Bluetooth Telephony, BMW Car IT GmbH
HANDS-FREE PROFILE (HFP). STRUCTURE.
Page 11
Hands-Free Profile (HFP)
Controller(s)
Host Controller Interface (HCI)
RFCOMM
Generic
Access Profile
(GAP)
Logical Link and Adaption Layer (L2CAP)
Service Discovery
Profile (SDP)
Serial Port Profile (SPP)
(cf. [4] Hands-Free Profile 1.6, p. 10)
AT CMD
L2CAP Socket SCO Socket
RFCOMM
Socket
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 12
ARCHITECTURE. CORE COMPONENTS AND APIs.
oFono BlueZ Pulseaudio D-Bus API
Kernel
Bluetooth Hardware
Host Controller Interface (HCI)
D-Bus API
Management Socket SCO Socket RFCOMM Socket
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 13
ARCHITECTURE. CORE COMPONENTS AND APIs.
• Handle Connections
• Handover RFCOMM
oFono Pulseaudio
User Interface (Human Machine Interface)
• Handle audio streams
• Suspend and resume
• Echo cancellation and
noise reduction
BlueZ
Handsfree API Media API
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 14
ARCHITECTURE. CORE COMPONENTS AND APIs.
oFono BlueZ Pulseaudio
User Interface (Human Machine Interface)
Audio Control • Microphone Mute
• Echo Cancellation /
Noise Reduction
• Policy Handling
Bluetooth Device Control • Device Inquiry
• Device Pairing
• Profile Activation
• Priority Handling
Telephony Control • Dialing
• Call Handling
(Accept, Reject, Hold)
• Multiparty Call Handling
User Interface (Human Machine Interface)
Automotive Bluetooth Telephony, BMW Car IT GmbH
ARCHITECTURE. HUMAN MACHINE INTERFACE.
Page 15
oFono BlueZ Pulseaudio
Automotive Bluetooth Telephony, BMW Car IT GmbH
BLUETOOTH BASICS. OTHER RELEVANT AUDIO PROFILES.
A2DP (Advanced Audio Distribution Profile)
• Setup, Control and manipulate streaming of compressed audio
• Stream high-quality Audio over ACL-Link
AVRCP (Audio/Video Remote Control Profile)
• Control a media player and retrieve current status
• Browse and Search library of a media player
HSP (Headset Profile)
• Full-duplex audio connection over SCO-Link
• Minimal device control
Page 16
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. PUTTING CALLS ON HOLD.
Page 17
Hold call
Put call on hold
Activate held call
Activate call
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. PRIVATE MODE (ACTIVE CALL).
Page 18
Disconnect Audio
Connect Audio
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Enter private mode
Leave private mode
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. PRIVATE MODE (INCOMING CALL).
Page 19
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Answer call
Ringing
Connect Audio
Leave private mode
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. AUDIO PRIORITIES.
Page 20
Answer call
Hang up call
Hang up call
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Audio stream (A2DP)
Ringing
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. AUDIO PRIORITIES.
Page 21
Answer call
Hang up call
Hang up call
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Audio stream (A2DP)
Ringing
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
SINGLE PHONE USE CASES. AUDIO PRIORITIES – UNDER THE HOOD.
Page 22
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
Audio stream (A2DP) oFono BlueZ Pulseaudio
Stop audio
Acquire()
PropertyChanged()
SCO Socket
call_answer()
PropertyChanged(call active)
UI
+CIEV
new_call()
Answer
SCO connect
Ringing
ATA OK
OK
Notify
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 23
DEMO.
Automotive Bluetooth Telephony, BMW Car IT GmbH
MULTI-PHONE USE CASES. HOLD AND ANSWER.
Page 24
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
1 2 1 2
Ringing
Active call
Put call on hold
Hold and Answer
Answer call
Automotive Bluetooth Telephony, BMW Car IT GmbH
MULTI-PHONE USE CASES. SWAPPING CALLS.
Page 25
Activate held call
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
1 2 1 2
Swap calls
Put call on hold
Call on hold
Active call
Automotive Bluetooth Telephony, BMW Car IT GmbH
MULTI-PHONE USE CASES. AUTOMATIC REJECT.
Page 26
Bluetooth connection
Call active
Audio connection (HFP)
Call on hold
1 2 1 2
Active call
Call on hold
Ringing
Reject
Ringing
Reject
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 27
THE ROAD AHEAD.
• Wide band speech
• Transition to BlueZ 5.0
• Audio Routing
• IOP Testing
Used Versions:
BlueZ:
dbd9c3109e77088de3d7e35dec78524ba73d1ad4
oFono:
ce79121d27555dc8ad43b5db49a35db83a01a0b8
PulseAudio:
a423ee0f3d36b98baff64cc31558632e738b402d
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 28
THANK YOU VERY MUCH FOR YOUR INTEREST.
Automotive Bluetooth Telephony, BMW Car IT GmbH Page 29
RESOURCES.
www.bluetooth.org www.bluez.org
www.genivi.org www.ofono.org
www.press.bmwgroup.com www.pulseaudio.org
[1] Bluetooth SIG, Specification of Bluetooth System, Core, v4.0, Volume 1: Architecture & Terminology Overview
[2] Bluetooth SIG, Specification of Bluetooth System, Core, v4.0, Volume 2: Core System Package [BR/DER Controller Volume]
[3] Bluetooth SIG, Specification of Bluetooth System, Core, v4.0, Volume 3: Core System Package [Host Volume]
[4] Bluetooth SIG, Specification of Bluetooth System, Profiles, Version 1.6, Hands-Free Profile
Top Related