Abstract: A protocol independent implementation of the OBEX specification that allows OBEX applications to communicate without having to know transport specific details is presented. OBEX services reside on top of an OBEX layer and the layer communicates with the transports with a interface that is independent of the transport protocol and other interfaces are provided when connections are created. OBEX applications use the protocol independent interface to communicate with OBEX services and other applications and to transfer data via the transports. A primary interface is provided that has commands to enumerate transports and to enumerate devices. Other interfaces include a transport interface for communicating with a transport, a service interface for determining when an incoming connection arrives, and a device interface for communicating with the at least one device.