palowireless
          Bluetooth Resource Center


Advanced search


Bluetooth Protocol Stack Technology Profiles
Bluetooth Stack Examples Overview FAQ
WPAN Technology Tutorial Baseband RFCOMM L2CAP LMP HCI


specs specifications docs pdfs WPAN Wireless Personal Area Network
 
 

Members

Member:

Password:

Forgot your
password?


New Member


 
 

 

 
Radio Baseband LMP HCI L2CAP RFCOMM SDP Profiles

K10 - Generic Object Exchange Profile

 

    This profile defines the requirements for Bluetooth devices necessary for the support of the object exchange usage models.The usage model can be, for example, Synchronization, File Transfer, or Object Push model. Essentially , the purpose of this document is to work as a generic profile document for all application profiles using the OBEX protocol.   

For more details : Download the K10 Specification from the SIG website, or visit the Documents Page.

        Table Of Contents

10.1 Profile Overview
10.1.1 Roles/Configurations
10.1.2 Profile Scenarios
10.1.3 Profile Fundamentals
10.2 Application Layer
10.2.1 Feature Overview
10.2.2 Establishing an Object Exchange Session
10.2.3 Pushing a Data Object
10.2.4 Pulling a Data Object
10.3 OBEX Interoperability Requirements
10.3.1 OBEX Operations Used
10.3.2 OBEX Initialization
10.3.3 OBEX Session Establishment
10.3.4 Pushing Data to Server
10.3.5 Pulling Data from Server
10.4 Serial Port Profile Interoperability Requirements
10.5 Generic Access Profile Interoperability Requirements

 

10.1  Profile Overview

10.1.1  Roles/Configurations

    The following roles are defined for this profile:

  • Server – This is the device that provides an object exchange server to and from which data objects can be pushed and pulled, respectively.
  • Client – This is the device that can push or/and pull data object(s) to and from the Server.

 

10.1.2  Profile Scenarios

    The scenarios covered by this profile are the following:

  • Usage of a Server by a Client to push data object(s)
  • Usage of a Server by a Client to pull data object(s)

    Certain restrictions apply to this profile, for example the profile only supports point-to-point configurations, and user interaction is required to place the server in initial modes.

 

10.1.3  Profile Fundamentals

    The profile fundamentals, with which all application profiles must comply, are the following:

  1. Before a Server is used with a Client for the first time, a bonding procedure including the pairing may be performed. This procedure must be supported, but its usage is dependent on the application profiles. The bonding typically involves manually activating bonding support and entering a Bluetooth PIN code on the keyboards of the Client and Server devices. This procedure may have to be repeated under certain circumstances; for example, if a common link key (as a bonding result) is removed on the device involved in the object exchange.
  2. In addition to the link level bonding, an OBEX initialization procedure may be performed before the Client can use the Server for the first time. The application profiles using GOEP must specify whether this procedure must be supported to provide the required security level.
  3. Security can be provided by authenticating the other party upon connection establishment, and by encrypting all user data on the link level. The authentication and encryption must be supported by the devices; but whether they are used depends on the application profile using GOEP.
  4. Link and channel establishments must be done according to the procedures defined in GAP
  5. There are no fixed master/slave roles.
  6. This profile does not require any lower power mode to be used.

 

10.2  Application Layer

    This section describes the service capabilities which can be utilised by the application profiles using GOEP.

10.2.1  Feature Overview

    There are 3 features which the Generic Object Exchange profile provides for the application profiles:

  • Establishing an Object Exchange Session
  • Pushing a Data Object
  • Pulling a Data Object

    The usage of other features (e.g. setting the current directory) must be defined by the applications profiles needing them.

 

10.2.2  Establishing an Object Exchange Session

    This feature is used to establish the object exchange session between the Client and Server. Before a session is established, payload data cannot be exchanged between the Client and the Server.

 

10.2.3  Pushing a Data Object

    If data needs to be transferred from the Client to the Server, then this feature is used.

 

10.2.4  Pulling a Data Object

    If data need to be transferred from the Server to the Client, then this feature is used.

 

10.3  OBEX Interoperability Requirements

10.3.1  OBEX Operations Used

    There are 6 OBEX operations which are specified by the OBEX protocol: Connect , Disconnect , Put , Get , Abort & SetPath.

    The application profiles using GOEP must specify which operations must be supported to provide the functionality defined in the application profiles.

 

10.3.2  OBEX Initialization

    If the OBEX authentication is supported and used by the Server and the Client, the initialization for this authentication must be done before the first OBEX connection can be established. The initialization can be done at any time before the first OBEX connection. The initialization of the OBEX authentication requires user intervention on both the Client device and the Server device.

    Authentication is done using an OBEX password, which may be the same as a Bluetooth PIN code on the link level. Even if the user uses the same code for link authentication and OBEX authentication, the user must enter these codes separately. After entering the OBEX password in both the Client and Server, the OBEX password is stored in the Client and the Server, and it can be used in the future for authenticating the Client and the Server. When an OBEX connection is established, the devices must authenticate each other if the OBEX authentication is enabled.

 

10.3.3  OBEX Session Establishment

    For the Object Exchange, the OBEX connection can be made with or without OBEX authentication. All application profiles using GOEP must support an OBEX session without authentication.

 

10.3.4  Pushing Data to Server

    The data object(s) is pushed to the Server using the PUT operation of the OBEX protocol. The data can be sent in one or more OBEX packets.

 

10.3.5  Pulling Data from Server

    The data object(s) is pulled from the Server using the GET operation of the OBEX protocol. The data can be sent in one or more OBEX packets.

 

10.4  Serial Port Profile Interoperability Requirements

    This profile requires compliance to the protocol requirements of the Serial Port Profile (SPP) [12]. For the purposes of reading the SPP , the Server shall always be considered to be Device B and the Client shall always be considered to be Device A.

    No additions to the SPP interoperability requirements stated for the L2CAP, RFCOMM, SDP & LM layers are required.For Link Controller use in this profile, the Limited discoverable modes should be used; but, if the Server device for some reason (e.g. lack of a sufficient user interface) wants to be visible at all times, the General discoverable mode can be used instead. The client device must support the General inquiry procedure, and should also support the Limited inquiry procedure.

 

10.5  Generic Access Profile Interoperability Requirements

    This profile requires compliance to the Generic Access Profile. Section 7 in the Generic Access Profile located on the bluetooth website defines in detail the support requirements with regards to procedures and capabilities defined in GAP.

Note , the above text contains excerpts from the Bluetooth SIG's Specification, as well as various interpretations of the Specs. For complete details of the various sections, consult the actual Bluetooth Specification.