automotive bluetooth telephony. · automotive bluetooth telephony, bmw car it gmbh page 2 building...

29
AUTOMOTIVE BLUETOOTH TELEPHONY. COMBINING BlueZ AND THE MODERN VEHICLE. Timo Müller, Mikel Astiz

Upload: others

Post on 19-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

AUTOMOTIVE BLUETOOTH TELEPHONY. COMBINING BlueZ AND THE MODERN VEHICLE.

Timo Müller, Mikel Astiz

Page 2: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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?

Page 3: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 4: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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)

Page 5: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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)

Page 6: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 7: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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)

Page 8: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 9: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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)

Page 10: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 11: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 12: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 13: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 14: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 15: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

User Interface (Human Machine Interface)

Automotive Bluetooth Telephony, BMW Car IT GmbH

ARCHITECTURE. HUMAN MACHINE INTERFACE.

Page 15

oFono BlueZ Pulseaudio

Page 16: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and 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

Page 17: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 18: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 19: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 20: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 21: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 22: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 23: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

Automotive Bluetooth Telephony, BMW Car IT GmbH Page 23

DEMO.

Page 24: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 25: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 26: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 27: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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

Page 28: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

Automotive Bluetooth Telephony, BMW Car IT GmbH Page 28

THANK YOU VERY MUCH FOR YOUR INTEREST.

Page 29: AUTOMOTIVE BLUETOOTH TELEPHONY. · Automotive Bluetooth Telephony, BMW Car IT GmbH Page 2 Building Open Source IVI Stack for Bluetooth Use Cases using BlueZ, oFono and PulseAudio

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