The BIO Messaging Framework provides a framework supports plug-ins which receive, parse and process BIO messages
Bearer Independent Objects (BIO) messages contain data that can be received and interpreted by the device. Unlike conventional messages—such as, SMS and email, BIO messages does not depend on the type of transport over which it is received. not intended to be read by the user in their raw form. BIO messages can be received over a number of bearers: IR, Bluetooth, SMS and WAP Push.
Plug-ins supported by the framework handle incoming BIO messages received by a phone. BIO messages are sent to the system to update attributes on the system.
Examples of BIO messages are vCards vCals, device settings, ringtones, graphical logos and icons, Internet access point setup messages and Over the Air (OTA) configuration messages. vCards are parsed and then displayed to the user, and when accepted they modify the user’s contact database. OTA configuration messages are parsed before they are displayed to the user, and if accepted they create email accounts or internet access points.
An electronic business card, which is a collection of properties. Properties can be a property name, one or more property parameters. and a property value.
An electronic calendar entry, which consists of a collection of properties.
BIO Messaging Framework comprises of three main components—BIO MTM, BIO database and BIO parser.
BIO messages are not received by the BIO Message Framework directly. They come over other subsystems to the BIO database. For example, the SMS watchers receive BIO messages from the SMS stack and use BIO Messaging Framework to tag the messages with the correct BIO ID.
The following figure illustrates the BIO Messaging Framework architecture:
The BIO database is used to identify the type of BIO messages. It maps message attributes, such as port number, MIME type, or leading string to a BIO type. These attributes are then used by clients of the BIO Message Framework to determine what ports to listen for messages. For example, SMS messages which start with that string and, when storing these messages in the inbox, tag them with the BIO ID associated with that leading string.
BIO watcher
BIO watcher is part of the Watcher Framework, which handles BIO messages that come from the SMS and WAP stack. It firsts identifies the type of BIO message using the BIO database, and then creates a BIO message in a Message Store using the messaging APIs.
BIF files and utilities
BIO Information Files (BIF) are resource files that are read by the BIO database to provide registration information of BIO message types. There is one BIF file for every BIO message type. They encapsulate the information required for identifying BIO messages. The information may include the expected port number, MIME type or leading string. Different BIO watchers use different information.
BIF files can be one of two formats. The first format is a resource file and the second format is a custom binary format for representing the data fields in the BIF file. The BIF utilities (bifu.dll) provide the functionality to read information in BIF files of both formats.
The BIO Client MTM is responsible for loading the BIO database and BIO utilities to handle parse or process requests from messaging clients. It is called by a messaging client to parse or process a BIO message that is saved in a Message Store. If the client is trusted with the correct capabilities, the BIO parser DLLs are loaded successfully. Without the right capabilities, the DLLs will not run. A BIO watcher saves the BIO message with the BIO flag and the appropriate BIO type set.
The BIO MTM does not support sending messages and therefore does not support reply or forward of BIO messages. Forwarding and replying to BIO messages is supported by the MTM that the message is sent over, for example SMS.
BIO parsers are plug-ins (DLLs) that provide parsing and processing functionality for incoming BIO messages. The parser uses BIO utilities to provide base functionality. BIO utilities that load the BIO parser use the DLL filename and load the DLLs from the \sys\bin location.
Each BIO parser implements the ParseL and ProcessL functions. The level of functionality varies between parsers. Some parsers update the final repository with the received data. For example, the WAP parser updates the CommDb with the received settings. Some parsers save data in an unparsed state for processing by another component. This secondary parsing is not part of BIO Messaging Framework and must be initiated by a messaging client. For example, when generic file parser (GFP) saves a vCard data as a file to update the contact database, the UI must then invoke the Versit parser to parse the vCard and commit it to the contact database.
It is possible to add new BIO parsers to provide support for different types of BIO message. The following are the types of parsers provided by Symbian:
Generic file parser (GFP): The generic file parser can be used to identify and save a variety of BIO data types, for example, vCards and vCals. The generic file parser does not process the data, it saves it in the message store for processing by another component. The file is saved as an attachment of the message entry that is parsed.
OTA parser (WAPP): The WAPP parser decodes Nokia OTA messages and updates CommDb to reflect the received settings.
Internet Access Parser (IACP): The IACP parser decodes Nokia smart messages and updates the CommDb and messaging settings where appropriate.
CBIOClientMtm, CBIODatabase and CBaseScriptParser2 are the main APIs of BIO Message Framework.