OBEX library — Readme
12th October 2008 — release 1.7 (1.7.1012).
For the full list of changes in the current and previous versions see the Changes document. In brief the changes in the core
library in this version include
- The listings produced by some SonyEricsson and LG phones include a user-perm
(permissions) attribute with an empty value. This is disallowed by the
Folder-Listings DTD in the OBEX specification, and thus the .NET XmlReader fails
on reading that attribute, with “The 'user-perm' attribute has an invalid value
according to its data type.”. We have included a modified DTD in the library
which permits the emtpy string, and the Folder-Listing parser class now uses it
- Previously when reading a Folder-Listing, the operation generally was
completed by sending an ABORT pdu to the server. Now a normal GET close is
carried out. The ABORT pdu causes no problems as far as I know but thought I’d
fix it anyway in case the ABORT appears to server logs and might confuse
someone. This occurred due to our workaround for the bug in listings produced by
- Added an Authentication class which contains some method to create an parse
the various OBEX Authentication headers, and also to do the secure hash of the
password. These methods are currently marked as: “Prelimary code, may change or
disappear in later versions.” Please give me your feedback!
Changes in the previous version (1.6) include:
- Add option
IgnoreBadDateFormats to ObexFolderListingParser, to
allow it to continue even when the server provides invalid folder-listing
content. For instance the LG K800 phone sometimes produces date values like
modified="19800000T-90000" a negative time! See the Programmer’s
Guide for more information.
- Added ObexClientSession.PutFile which takes a pathname parameter of the file
- Add a
Headers property to the ObexResponseException which lists
the headers received along with the error response. (Note that the headers are
currently discarded if the exception is runtime-serialized).
These were a few fixes and improvements to the sample programs in that
The library provides very broad client-side OBEX support, providing not just
the ‘Put’ operation that most libraries and applications support, but also the
complete set of operations: Connect, Put, Get, SetPath, Delete, and Abort. This
is accessed through a session based interface. All errors communicating to the
peer OBEX server are exposed to the calling application.
As well as the ‘on-the-wire’ protocol support there is also broad support for
the objects defined in the OBEX specification, for instance the Folder Listing
XML documents as used by the Folder-Browsing service. A full parser, returning
an array of folder and file objects, is included
The library also provides access to its lower-level PDU (packet) creation and
parsing facilities, enabling third-party implementation of any required
features, for instance server-side operation, and perhaps even reliable-session
The library, its class documentation in both compiled HTML Help, and in raw
XML for Intellisense, and a Programmer’s
Guide are included.
Assemblies for both the FXv2 desktop and Compact Framework versions 1 and 2
Included sample code contains examples in both C# and VB.NET, showing how to
use Put, Get, SetPath, and Folder Listings operations. They include examples of
asynchronous usage, along with progress bar updating. Most use the
TransportConnection library to form the connection to the OBEX server. Some
however manually create the connection.
Copyright me, free for any use.