Obex Protocol Overview

The Symbian implementation of Obex works over IrDA, Bluetooth and USB.

Purpose

The Symbian implementation of Obex works over IrDA, Bluetooth and USB.

Architecture

The Obex component was originally developed to enable simple beaming of vCards from device to device. This has resulted in a simple architecture, where standard transport DLLs wrap an underlying transport, RSocket for Bluetooth and IrDA and RDevUsbcClient for USB.

The Obex component relies largely on subsystem components that provide its underlying transports. This amounts to a dependency on ESOCK for RSocket and related classes, plus (not shown on the diagram) Bluetooth.LIB and IrDA.LIB for Bluetooth socket address and IrDA socket address classes respectively.

Obex.dll is dynamically dependent upon the transport plugins. Any code that is part of a proprietary transport DLL must include ObexTransport.DLL as a library in its MMP file. Code using Obex over Bluetooth or IrDA must link to Bluetooth.LIB or IrDA.LIB to access the socket address classes.

Obex is implemented as a static DLL, so all user code that uses Obex functionality should include Obex.DLL as a library in its MMP file.

Obex Protocol Summary

The Obex component provided by the Obex subsystem currently is constituted in several different executable files, namely Obex.DLL, ObexExtensionAPIs.DLL and ECOM plugin modules for the transports that Obex runs over. Each transport is a different DLL, allowing the licensee maximum flexibility when selecting which transports a particular build is intending to support.

There are three standard transports shipped by default with the Obex Component: USB, IrDA and Bluetooth. Licensees may also add their own proprietary transport plugins.[END COPY]

The Obex Protocol component provides the following:

  • irobex.lib

    Build irobex.lib to allow legacy apps to effectively link to obex.dll.

  • obex.dll

    Performs packet formation and parsing, and implements a state machine to handle connections, disconnection and object puts and gets.

  • Obex Bluetooth RFCOMM transport control

    obexbtrfcommtransportcontroller.dll

    Part of the Obex BT RFCOMM Controller plugin, used to control the RFCOMM transport.

  • Obex common transport classes

    ObexCommonTransport.dll

    Obex common transport classes.

  • Obex Irda ttp Controller plug in

    ObexIrdaTtpTransportController.dll

    Used to load the Irda ttp transport.

  • Obex USB Controller plug-in

    ObexUsbTransportController.dll

    Used to load the USB transport.