1 INTRODUCTION

1.1 SCOPE

The purpose of the Generic Access Profile is:

To introduce definitions, recommendations and common requirements related

to modes and access procedures that are to be used by transport and

application profiles.

To describe how devices are to behave in standby and connecting states in

order to guarantee that links and channels always can be established between

Bluetooth devices, and that multi-profile operation is possible. Special focus is

put on discovery, link establishment and security procedures.

To state requirements on user interface aspects, mainly coding schemes and

names of procedures and parameters, that are needed to guarantee a satisfac-tory

user experience.

1.2 SYMBOLS AND CONVENTIONS

1.2.1 Requirement status symbols

In this document (especially in the profile requirements tables), the following

symbols are used:

‘M’ for mandatory to support (used for capabilities that shall be used in the

profile);

’O’ for optional to support (used for capabilities that can be used in the profile);

‘C’ for conditional support (used for capabilities that shall be used in case a cer-tain

other capability is supported);

‘X’ for excluded (used for capabilities that may be supported by the unit but

shall never be used in the profile);

’N/A’ for not applicable (in the given context it is impossible to use this

capability).

Some excluded capabilities are capabilities that, according to the relevant

Bluetooth specification, are mandatory. These are features that may degrade

operation of devices following this profile. Therefore, these features shall never

be activated while a unit is operating as a unit within this profile.

In this specification, the word shall is used for mandatory requirements, the

word should is used to express recommendations and the word may is used for

options.

 

 

1.2.2 Signalling diagram conventions

 

The following arrows are used in diagrams describing procedures

:

Figure 1.1: Arrows used in signalling diagrams

In the table above, the following cases are shown: PROC1 is a sub-procedure

initiated by B. PROC2 is a sub-procedure initiated by A. PROC3 is a sub-pro-cedure

where the initiating side is undefined (may be both A or B). Dashed

arrows denote optional steps. PROC4 indicates an optional sub-procedure ini-tiated

by A, and PROC5 indicates an optional sub-procedure initiated by B.

MSG1 is a message sent from B to A. MSG2 is a message sent from A to B.

MSG3 indicates an optional message from A to B, and MSG4 indicates a con-ditional

message from B to A.

1.2.3 Notation for timers and counters

Timers are introduced specific to this profile. To distinguish them from timers

used in the Bluetooth protocol specifications and other profiles, these timers

are named in the following format: ’T GAP (nnn)’.

 

 

 


                                        

Äâîéíàÿ ñòðåëêà âëåâî/âïðàâî:                PROC 1
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


                                               MSG 1

 

 

                                               MSG 2

 

 

                                               MSG 3

 

                                              

                                               MSG 4

 

 

 

 

2 PROFILE OVERVIEW

2.1 PROFILE STACK

Object Exchange

Protocol (OBEX)

 

 

Telephony Control

Protocol (TCS)

 

RFCOMM

 

Service Discovery

Protocol (SDP)

 

 
 

 

 

 

 

 

 

 

 

 

 

Baseband [Link Controller (LC)]

 
 

 

 


Figure 2.1: Profile stack covered by this profile.

 

The main purpose of this profile is to describe the use of the lower layers of the

Bluetooth protocol stack (LC and LMP). To describe security related alterna-tives,

also higher layers (L2CAP, RFCOMM and OBEX) are included.

2.2 CONFIGURATIONS AND ROLES

For the descriptions in this profile of the roles that the two devices involved in a

Bluetooth communication can take, the generic notation of the A-party (the

paging device in case of link establishment, or initiator in case of another pro-cedure

on an established link) and the B-party (paged device or acceptor) is

used. The A-party is the one that, for a given procedure, initiates the establish-ment

of the physical link or initiates a transaction on an existing link.

This profile handles the procedures between two devices related to discovery

and connecting (link and connection establishment) for the case where none of

the two devices has any link established as well as the case where (at least)

one device has a link established (possibly to a third device) before starting the

described procedure.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figure 2.2: This profile covers procedures initiated by one device (A) towards another device

(B) that may or may not have an existing Bluetooth link active.

 

 

The initiator and the acceptor generally operate the generic procedures

according to this profile or another profile referring to this profile. If the acceptor

operates according to several profiles simultaneously, this profile describes

generic mechanisms for how to handle this.

2.3 USER REQUIREMENTS AND SCENARIOS

The Bluetooth user should in principle be able to connect a Bluetooth device to

any other Bluetooth device. Even if the two connected devices don’t share any

common application, it should be possible for the user to find this out using

basic Bluetooth capabilities. When the two devices do share the same applica-tion

but are from different manufacturers, the ability to connect them should not

be blocked just because manufacturers choose to call basic Bluetooth capabil-ities

by different names on the user interface level or implement basic proce-dures

to be executed in different orders.

2.4 PROFILE FUNDAMENTALS

This profile states the requirements on names, values and coding schemes

used for names of parameters and procedures experienced on the user inter-face

level.

This profile defines modes of operation that are not service- or profile-specific,

but that are generic and can be used by profiles referring to this profile, and by

devices implementing multiple profiles.

This profile defines the general procedures that can be used for discovering

identities, names and basic capabilities of other Bluetooth devices that are in a

mode where they can be discoverable. Only procedures where no channel or

connection establishment is used are specified.

This profile defines the general procedure for how to create bonds (i.e. dedi-cated

exchange of link keys) between Bluetooth devices.

This profile describes the general procedures that can be used for establishing

connections to other Bluetooth devices that are in mode that allows them to

accept connections and service requests.

2.5 CONFORMANCE

Bluetooth devices that do not conform to any other Bluetooth profile shall con-form

to this profile to ensure basic interoperability and co-existence.

Bluetooth devices that conform to another Bluetooth profile may use adapta-tions

of the generic procedures as specified by that other profile. They shall,

however, be compatible with devices compliant to this profile at least on the

level of the supported generic procedures.

If conformance to this profile is claimed, all capabilities indicated mandatory for

this profile shall be supported in the specified manner (process-mandatory).

This also applies for all optional and conditional capabilities for which support is

indicated. All mandatory capabilities, and optional and conditional capabilities

for which support is indicated, are subject to verification as part of the Blue-tooth

certification program.

 

3 USER INTERFACE ASPECTS

3.1 THE USER INTERFACE LEVEL

In the context of this specification, the user interface level refers to places

(such as displays, dialog boxes, manuals, packaging, advertising, etc.) where

users of Bluetooth devices encounters names, values and numerical represen-tation

of Bluetooth terminology and parameters.

This profile specifies the generic terms that should be used on the user inter-face

level.

3.2 REPRESENTATION OF BLUETOOTH PARAMETERS

3.2.1 Bluetooth device address (BD_ADDR)

3.2.1.1 Definition

BD_ADDR is the unique address of a Bluetooth device as defined in [1]. It is

received from a remote device during the device discovery procedure.

3.2.1.2 Term on user interface level

When the Bluetooth address is referred to on UI level, the term ’Bluetooth

Device Address’ should be used.

3.2.1.3 Representation

On BB level the BD_ADDR is represented as 48 bits [1].

On the UI level the Bluetooth address shall be represented as 12 hexadecimal

characters, possibly divided into sub-parts separated by’:’.

(E.g., ’000C3E3A4B69’ or ’00:0C:3E:3A:4B:69’.) At UI level, any number shall

have the MSB -> LSB (from left to right) ’natural’ ordering (e.g., the number ’16’

shall be shown as ’0x10’).

3.2.2 Bluetooth device name (the user-friendly name)

3.2.2.1 Definition

The Bluetooth device name is the user-friendly name that a Bluetooth device

presents itself with. It is a character string returned in LMP_name_res as

response to a LMP_name_req.

3.2.2.2 Term on user interface level

When the Bluetooth device name is referred to on UI level, the term ’Bluetooth

Device Name’ should be used.

3.2.2.3 Representation

The Bluetooth device name can be up to 248 bytes maximum according to [2].

It shall be encodedaccording to UTF-8 (i.e. name entered on UI level may be

down to 82 characters outside the Unicode range 0x00-0x7F are used).

A device can not expect that a general remote device is able to handle more

than the first 40 characters of the Bluetooth device name. If a remote device

has limited display capabilities, it may use only the first 20 characters.

3.2.3 Bluetooth passkey (Bluetooth PIN)

3.2.3.1 Definition

The Bluetooth PIN is used to authenticate two Bluetooth devices (that have not

previously exchanged link keys) to each other and create a trusted relationship

between them. The PIN is used in the pairing procedure (see Section 10.2) to

generate the initial link key that is used for further authentication.

The PIN may be entered on UI level but may also be stored in the device; e.g.

in the case of a device without sufficient MMI for entering and displaying digits.

3.2.3.2 Terms at user interface level

When the Bluetooth PIN is referred to on UI level, the term ’Bluetooth Passkey’

should be used.

3.2.3.3 Representation

The Bluetooth PIN has different representations on different levels. PINBB is

used on baseband level, and PINUI is used on user interface level.

PINBB is the PIN used by [1] for calculating the initialization key during the

pairing procedure. PINUI is the character representation of the PIN that is

entered on UI level. The transformation from PINUI to PINBB shall be accord-ing

to UTF-8 and decimal digits shall be within the Unicode range 0x00 - 0x7F.

According to [1], PINBB can be 128 bits (16 bytes). I.e. if a device supports

entry of characters outside the Unicode range 0x00 - 0x7F, the maximum num-ber

of characters in the PINUI may be less than 16.

Examples:

 

User-entered code

Corresponding PIN BB [0..length-1]

(value as a sequence of octets in hexadecimal notation)

 

’0123’

length = 4, value = 0x30 0x31 0x32 0x33

’Ärlich’

length = 7, value = 0xC3 0x84 0x72 0x6C 0x69 0x63 0x68

 

All Bluetooth devices that support the bonding procedure and support PIN

handling on UI level shall support UI level handling of PINs consisting of deci-mal

digits. In addition, devices may support UI level handling of PINs consisting

of general characters.

If a device has a fixed PIN (i.e. PIN is stored in the device and cannot be

entered on UI level during pairing), the PIN shall be defined using decimal dig-its.

A device that is expected to pair with a remote device that has restricted UI

capabilities should ensure that the PIN can be entered on UI level as decimal

digits.

 

3.2.4 Class of Device

3.2.4.1 Definition

Class of device is a parameter received during the device discovery procedure,

indicating the type of device and which types of service that are supported.

3.2.4.2 Term on user interface level

The information within the Class of Device parameter should be referred to as

’Bluetooth Device Class’ (i.e. the major and minor device class fields) and

’Bluetooth Service Type’ (i.e. the service class field). The terms for the defined

Bluetooth Device Types and Bluetooth Service Types are defined in [11].

When using a mix of information found in the Bluetooth Device Class and the

Bluetooth Service Type, the term ’Bluetooth Device Type’ should be used.

3.2.4.3 Representation

The Class of device is a bit field and is defined in [11]. The UI-level representa-tion

of the information in the Class of device is implementation specific.

 

3.3 PAIRING

Two procedures are defined that make use of the pairing procedure defined on

LMP level (LMP-pairing, see Section 10.2). Either the user initiates the bonding

procedure and enters the passkey with the explicit purpose of creating a bond

(and maybe also a secure relationship) between two Bluetooth devices, or the

user is requested to enter the passkey during the establishment procedure

since the devices did not share a common link key beforehand. In the first

case, the user is said to perform ’bonding (with entering of passkey)’ and in the

second case the user is said to ’authenticate using the passkey’.




Rambler's Top100