BiteAPI User's Guide

1 Introduction

1.1. What is BiteAPI?

BiteAPI is a HTTP/SOAP interface to Bite Plus mobile internet system, which allows third parties to perform WAP billing and other functions needed by third parties developing premium WAP products. It is oriented towards a mini-wap-site type of product, but can also be used for SMS or MMS based services.

The guide is written for developers writing applications using BiteAPI web services interface. It includes general information and overview of operations which can be performed using BiteAPI web services interface. For a complete functional specification please consult the reference.

1.2. Request Scheme

Request Scheme

The principal elements involved in building a mobile Internet premium service from provider perspective are Your mobile www/wap SITE, the user phone which displays the pages, and BITE API which helps your site perform billing and messaging actions towards the user phone/account.

BITE API is accessible via Internet using SOAP over HTTP.

Few things are important when using the BiteAPI web services interface. First, the provider authentication is done using basic HTTP authentication method. Therefore, the interface expects properly encoded username and password within the HTTP headers. All major SOAP client APIs on different platforms and programing languages include the programmatic method to set the HTTP authentication headers within the SOAP request. Second, all SOAP requests to BiteAPI web services interface require appropriate SOAP headers which include provider and service information. Each call must be associated with some service to be properly identified. The system will not allow any requests without this information. Finally, each SOAP call must be accompanied by a proper value of SOAPAction HTTP header which is empty by default on some platforms ( e.g. PHP ). See appendix for a list of SOAPAction header values for each operation.

Note:
SOAPAction header values are non-physical URI's which just describe the SOAP action itself. Real URIs for each port are listed in the appendix. Many clients will be happy using port WSDL files which are located at http://soap.bite.lt/biteapi/axisinfo. General concepts

1.2.1. Providers

Each content provider (i.e. a legal entity) has his own user name and password which must be used to autenthicate to the API system.

1.2.2. Services

Each Provider can operate many premium services, for example “Weather reports” and “Adult mini-site”. A service is something which is understood by the user as a single premium service, and has a human understandable descripion and an URL to it’s home.

A service is supplied for a given market. Therefore, running the same service in Lithuania and Latvia still requires to set up 2 separate services to reflect currency and accounting differences.

1.2.3. Actions

Each service is delivered to the user via paid Actions, such as “Java File download” or “Payment for WAP site access”, or “SMS to the user”. Each action has one or more prices that the end-user can be charged, and may have an associated cost for the provider too (in case of sending SMS to the user). Please consult appendix for a list of billable actions and their descriptions.

1.2.4. System Manager

All configuration of the API including partner account setup, service setup, price setup and other administrative activities are performed by a person responsible of managing the partners services, their actions and prices. Email: partner_support@bite.lt.

2. End-user identification

All end users are identified by their unique Account ID. When the user passes through the Internet Gateway, the Account ID becomes available. All other persons who are browsing your site and who are not BITE network users will not have the Account ID.

Account ID is never reused, it is unique to the very phone number and person using it.

Account ID along with other account information (such as country and language) is available through special HTTP headers (added when the request passes Bite gateway; automatically for all Bite accounts). For account ID - “Bite-Account-Id” header value, for country - “Bite-Account-Country” header value, for language - “Bite-Account-Language” header value.

Warning:
Provider should never use the Account ID which was acquired outside Bite network. Only those which have been collected from the user request passing the Bite gateway are allowed. Check the appendix for a list of Bite gateway's for a time of writing.

3. Ports

BiteAPI interface defines several web service ports:

  • Device port.
  • Billing port
  • Subscription port
  • Messaging port
  • Provider port

Each port groups several functions similar by their nature and context of use. WSDL files for all ports are provided at the following address: http://soap.bite.lt/biteapi/axisinfo.

3.1. Device information

Device port contains functions to get information about mobile equipment devices known to the system. These functions expect device User Agent as input parameter.

Note:
Future versions of BiteAPI will accept the account ID as an input parameter to substitute the User Agent parameter which will become optional.

Device information functions are useful to identify the capabilities for a concrete device to, for example, adapt the content to be properly handled. Check the appendix for a list of available device properties.

Note:
An updated version of Device Port (version 1.1) contains additional parameter to pass the user agent profile URL, in case it's available and/or user agent is not available. Profile is used to fetch and store the capabilities information for later use and additionally uniquily identify the device if user agent is not available. Some latest mobile equipment software doesn't include their user agent information into WAP request headers, instead only the user agent profile URL is provider.

3.2. Billing

BiteAPI allows partners to perform billing transactions to bill their users (accounts). Transaction opening, committing, and roll backing is supported along with plain untransactional billing, which allows to perform single step billing in cases where transactions are not feasible. To bill or open a billing transaction several input parameters have to be supplied. They identify an account to bill, a service and associated account action to be billed for as well as price and currency.

To open transaction openBillingTransaction function is used. It returns an ID of transaction being opened. If an error occurred during operation a soap fault is generated providing error information. Having an opened transaction the partner can now operate within current transaction context and use a commit function in case of successful partner operation or rollback the transaction in case of failure. Both commit and rollback functions use the same transaction ID returned when transaction was opened.

There are cases when it's not possible to perform operation or a group of operations within transactional context due to the limitations posed by the nature of these operations. In such cases billAccount function should be used. It accepts the same parameters as transactional openBillingTransaction function. Each account action is associated with a list of allowed prices (with specified currencies). It's disallowed to perform billing operation with prices outside these values. Prices and actions are managed by system manager.

Billing Port 1.1 functions billAccount and openBillingTransaction after successful billing process returns transaction id, on the other case returns such negative value:

-1: system error;
-2: insufficient balance;
-3: account/service not found;
-4: account blocked exception;
-5: account unresolved;
-6: account is suspended.

3.3. Provider functions

Provider web services port contains functions to retrieve information for partners about their services and actions associated with concrete services which also includes prices information. To get a list of their services partners should use getServices function. Function getFunctions returns a list a allowed chargeable actions (for a specified service) partner can use and strictly informational actions showing other charging information. Each action returned by getFunctions contains a map with provider price, user price, currency and other properties containing appropriate values. Please consult the reference for a full list of properties returned by this function.

3.4. Subscriptions

BiteAPI contains functions to manage subscriptions of partners' services. These can be used to subscribe and unsubscribe account as well as to get a list of subscribers for a specific service and check subscription status.

Subscriptions are renewed based on renewal policy defined in subscribe function which accept subscription term and renewal period parameters. Term parameter defines when subscription should be terminated after it was created. For example, after an hour, day, week or month. Renewal parameter defines when subscription should be renewed, for example, after an hour, one day, week or month. It's possible to pass special UNDEF or NONE values to these parameters to indicated undefined term and/or nonrenewable subscription. Please consult the reference guide for precise parameter values.

Note:
It's not allowed to pass UNDEF value to term parameter when renewal is not NONE ('N').

Initial subscription billing is performed according to term parameter and subscription renewal billing is performed according to renew parameter.

If renewal is needed in several (“X”) days, use Subscriptions port 1.1 functions subscribeAccount or subscribeAndDefineFirstBill. For these functions you must pass such term and renewal parameters values: term “X”, renewal “X”, termUnit “D”.

To get a list of all subscribers for a specific service a getSubscribers function should be used.

To check subscription status a checkSubscription function should be used. It returns an integer value which corresponds to a specific status. Please consult the reference guide for more detailed information of these values.

Billing subscriber on a regular basis (specified with renewal parameter) is performed automatically. Each service subscription renewal period (month, day, etc.) is assigned a price by the system administrator. This price is used to bill the account automatically. Therefore Bite API provides a convenient interface to manager subscriptions without taking care of routine billing.

3.5. Messaging

It's possible to use BiteAPI web services interface to provider messaging-based services. BiteAPI web services interface provides several useful functions to send SMS and MMS messages as well as WAP pushes and bookmarks.

Note:
Messaging port is not fully implemented at the time of writing. Future versions will allow sending MMS messages using a provided client library.

To send SMS message to recipient or a group of recipients sendSMS function is used. Recipients are determined by an array of account Ids (which may also contain a single account id) and by an array of MSISDNs. Final list of message recipients contains both. Account Ids array should be null if message is intended for service subscribers. Passing null value to account ids array parameter will result message being sent to the subscribers of a current service (determined from a SOAP header. see 1.2 Request Scheme.). This is common to all messaging functions. Also all messaging functions accept parameters for billing purposes, bill amount and bill currency to bill the message recipient for. All billing operation s are transactional, therefore any message sending failure will result billing operation to be rollbacked.

Billing amount and currency should be in tune with a list of prices for the particular action (in this case , action is “send sms/mms/other”). Provider is not allowed to bill the recipient for an amount/currency if such a price is not created for that provider, service and action.

It's allowed to specify when the message should be actually sent as well as when the message becomes obsolete. Use startDeliveryTime and endDeliveryTime parameters.

3.5.1. Sending MMS messages using MM7Port

Bite API provides a simplified version of MM7 protocol interface for accepting MMS messages for delivery to the real MMSC. Please consult 3GPP website, for a specification of MM7 protocol. Currently Bite API supports version 5.3.0 of MM7 protocol and additionally requires users to submit Bite API specific information in the SOAP headers of MM7 request message. Bite API MM7 port will not provide any MMSC debug responses other than error messages specific to Bite API, such as invalid or insufficient service or billing information.

This is a sample of SOAP header from a MM7 request message. It illustrate the Bite API specific requirements for message submission:

<soapenv:Header>
<mm7:TransactionID soapenv:mustUnderstand="0" xsi:type="xsd:string" xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">013A71AE3167C52F517E5D5D654159EB</mm7:TransactionID>
  <provider-service soapenv:mustUnderstand="0" xmlns="">
   <service-id>1055</service-id>
  </provider-service>
  <billing soapenv:mustUnderstand="0" xmlns="">
   <amount>0.1</amount>
   <currency>EUR</currency>
  </billing>
  <subscription soapenv:mustUnderstand="0" xmlns="">true</subscription>
 </soapenv:Header>

The provider-service header is common to all Bite API request messages and is documented elsewhere in this document. Message billing information is supplied in billing header. It includes an amount to bill the account for and currency. Subscription header element indicates if this message should be delivered to the subscribers of specified services or to the list of recipients specified in the body of MM7 request message. In case a text value of this header is “true”, the message will be sent to the subscribers of the service indicated in provider-service header and a recipient list in MM7 request message body will be ignored.

Finally MMS message will be accepted for a delivery (as notified with appropriate SOAP response) in case all Bite API requirements are met and message status can be tracked using delivery report functions in the messaging port.

Note:
Delivery reports function in the messaging port is at the beta stage.

4. Typical mini-site implementation & usage of API

For a typical mini-site, the following API functions may be used:

  1. Identifying the end-user AccountID
    • Using Provider Port, getAccountByIP
  2. Checking if the AccountID is a subscriber (for subscription services), subscribing/unsubscribing
    • Using Subscriptions Port, checkSubscription
  3. Checking the capabilities of AccountID device
    • Using Device Port, getDeviceProperty (passing User Agent as parameter)
  4. Charging the AccountID for successful download
    • Using Billing Port, billAccount
  5. Charging the AccountID for access to premium areas
    • Using Billing Port, billAccount
  6. Sending SMS to all service subscribers
    • Using Messaging port (to be implemented)

5. Platform specific instructions

This section concentrates on providing instructions to access BiteAPI web services interface using different platforms, in particular PHP and Python. It includes general information on how to properly format SOAP request messages and interpret SOAP responses. BiteAPI web services interfaces strives to support all major platforms. Therefore typing information conceived by SOAP messages should be correctly interpreted by all SOAP client libraries. Collection and vector types were replaced with simple arrays and complex objects (value objects or beans) with maps (dictionaries), where keys contain property names and values - property values. Besides custom SOAP header and basic HTTP authentication BiteAPI web interface doesn't include any custom logic, typing or other constraints.

5.1. PHP SOAP client

Depending on which version of PHP is used different SOAP client libraries might be used.

5.1.1. PHP 4

In PHP version 4, nuSOAP client library can be used. Consult it's website ( http://dietrich.ganx4.com/nusoap/index.php ) for more reference information. To access BiteAPI web services interfaces proper HTTP authentication and custom SOAP headers must be constructed and included in a request. Here is a sample PHP 4 class working a facade to the web service interface and using nuSOAP:

class SOAPManager {
 var $s; //SOAP client object
 var $conf; //Configuration file object
 
    function SOAPManager(){
        // READ CONFIGURATION
        $this->conf = new ini_file(dirname(__FILE__).'/../../ini/admlt_ini.php'); 
        $wsdl_url=$this->conf->read_var('soap', 'wsdl');
        $password=$this->conf->read_var('soap', 'password');
        $user=$this->conf->read_var('soap', 'user');
        $service_id=$this->conf->read_var('soap', 'service_id');
 
		// NEW SOAP CLIENT INSTANCE
        $this->s = new soapclient($wsdl_url);
 
		// HTTP BASIC AUTHENTICATION
        $this->s->setCredentials($user,$password);
 
 // CUSTOM SOAP HEADER REQUIRED BY BiteAPI
        $this->s->setHeaders("<provider-service><service-id>$service_id</service-id></provider-service>"); 
    }
    function getDeviceModelsList(&$err) {
        // REQUEST PARAMETERS
        $param = array();
 
		// SOAP CALL. SOAP action is the last parameter.
        $res = $this->s->call('getDeviceModelsList', $param, 'http://biteapi.metasite.net/device','http://biteapi.metasite.net/device/getDeviceModelsList'); 
 
		if (!$err = $this->s->getError()) {                     
            return $res['getDeviceModelsListReturn'];           
        } else {    
            return;                                            
        }
    }
}

6. Testing

For testing purposes you should hardcode the following account ID: 2219983

7. Appendix

7.1. SOAP Header

<provider-service>
    <service-id>1231231</service-id>
</provider-service>

7.2. Billable actions

Action ID Description
sendContent 374 Send content to account, such as java games, mp3 files, etc.
browse 380 Browse website content.
billAccount 350 For other purposes.

7.3. Bite Gateways

213.226.131.21
213.226.131.132
213.226.131.133
213.226.131.154
213.226.131.141
213.226.131.149
213.226.131.151
84.15.15.4
84.15.15.5
84.15.15.10
84.15.15.11
84.15.15.12

7.4. Port URLs

7.5. SOAPAction URIs for each operation:

Device Port 1.1
http://biteapi.metasite.net/device/1.1/getDeviceModelsList
http://biteapi.metasite.net/device/1.1/getDeviceInfo
http://biteapi.metasite.net/device/1.1/getDeviceProperty
http://biteapi.metasite.net/device/1.1/getDeviceModel
http://biteapi.metasite.net/device/1.1/getDeviceModelsProperty

Device Port
http://biteapi.metasite.net/device/getDeviceModelsList
http://biteapi.metasite.net/device/getDeviceInfo
http://biteapi.metasite.net/device/getDeviceProperty
http://biteapi.metasite.net/device/getDeviceModel
http://biteapi.metasite.net/device/getDeviceModelsProperty

Messaging Port
http://biteapi.metasite.net/messaging/sendSMS
http://biteapi.metasite.net/messaging/sendWAPPush
http://biteapi.metasite.net/messaging/sendSMSDirect

Provider Port
http://biteapi.metasite.net/provider/getServices
http://biteapi.metasite.net/provider/getFunctions
http://biteapi.metasite.net/provider/getAccountByIP
http://biteapi.metasite.net/provider/getMsisdn

Subscriptions Port 1.1.
http://biteapi.metasite.net/subscriptions/getSubscribers
http://biteapi.metasite.net/subscriptions/checkSubscription
http://biteapi.metasite.net/subscriptions/unsubscribeAccount
http://biteapi.metasite.net/subscriptions/subscribeAccount
http://biteapi.metasite.net/subscriptions/subscribeAndDefineFirstBill

Subscriptions Port
http://biteapi.metasite.net/subscriptions/getSubscribers
http://biteapi.metasite.net/subscriptions/checkSubscription
http://biteapi.metasite.net/subscriptions/unsubscribeAccount
http://biteapi.metasite.net/subscriptions/subscribeAccount
http://biteapi.metasite.net/subscriptions/subscribeAndDefineFirstBill

Billing Port 1.1
http://biteapi.metasite.net/billing/billAccount
http://biteapi.metasite.net/billing/openTransaction
http://biteapi.metasite.net/billing/commitTransaction
http://biteapi.metasite.net/billing/rollbackTransaction

Billing Port
http://biteapi.metasite.net/billing/billAccount
http://biteapi.metasite.net/billing/openTransaction
http://biteapi.metasite.net/billing/commitTransaction
http://biteapi.metasite.net/billing/rollbackTransaction

MM7 Port
http://biteapi.metasite.net/messaging/sendMMS

7.6. Device properties:

Group:product_info (human readable brand and model name and other generic info)

Capability Name Type Description
brand_name string Brand
model_name string Model
is_wireless_device true/false Tells you if a device is wireless or not. Specifically a mobile phone or a PDA are considered wireless devices, a desktop PC or a laptop are not
device_claims_web_support true/false Wether the device is wireless or not, the browser may claim web support or not. Opera for Symbian is an example of a browser that claims web support (and tries to render at best) a page that was developed for web presentation independently from the device.

Group:wml_ui (User Interface for WML browser)

Capability Name Type Description
proportional_font true/false The standard font is proportional
built_in_back_button_support true/false User may always click on a button to go back
card_title_support true/false The device displays the title on the screen
softkey_support true/false Softkeys are supported
table_support true/false The browser displays tables formatted "correctly" (rather than 1 cell per line)
numbered_menus true/false The browser lists numbers to pick an element from a list
menu_with_select_element_recommended true/false A select element is the most usable menu format
menu_with_list_of_links_recommended true/false A list of links is the most usable menu format
icons_on_menu_items_support true/false Links may be associated with icons
break_list_of_links_with_br_element_recommended true/false When presenting a list of links the use of <br/> is suggested for better presentation
access_key_support true/false respects the "accesskey" attribute of the anchor tag
wrap_mode_support true/false The browser can be forced to wrap or not lines
times_square_mode_support true/false times_square_mode_support
deck_prefetch_support true/false Prefetching of other decks is supported
elective_forms_recommended true/false input and select elements can/should be placed in a single card rather than on discrete cards
wizards_recommended true/false wizards_recommended
image_as_link_support true/false You may use images to present a link
insert_br_element_after_widget_recommended true/false The use of a break is suggested after widgets
wml_can_display_images_and_text_on_same_line true/false Some devices not display an image and text on the same line. Set this to true if the device supports it
wml_displays_image_in_center true/false Some devices will show images aligned in center by default, true if this happens
opwv_wml_extensions_support true/false This is specific for Openwave browsers and possibly third party browsers that are compatible. As WML extensions we mean pictograms and other tags that were never formalized by the WAP forum
wml_make_phone_call_string string Prefix to initiate a voice call

Group:chtml_ui (User Interface for Compact HTML i;Mode browser)

Capability Name Type Description
chtml_display_accesskey true/false The device displays a number when you use an accesskey
emoji true/false Emoji are special characters which appear in i-Mode pages as small icons
chtml_can_display_images_and_text_on_same_line true/false As for WML, this is set to true if the device can display images and text on the same line
chtml_displays_image_in_center true/false As for WML, this is set to true if the device will align images in center by default
imode_region string This field describes the market region for the device, useful for emoji's and other possible localizations. Possible values as "ja" for Japan, "eu" for Europe, "us" for USA "as" for Asia. "none" means unknown or not set.
chtml_make_phone_call_string string Prefix to initiate a voice call
chtml_table_support true/false Tables are not supported by default on i-mode/chtml devices. This capability tells you if the device supports this "extra" feature

Group:xhtml_ui (User Interface for HTML/XHTML-MP browser)

Capability Name Type Description
xhtml_honors_bgcolor true/false Background colour can be set
xhtml_supports_forms_in_table true/false Form entry within a table is possible
xhtml_support_wml2_namespace true/false The WML version 2.0 namespace is supported, so the device will successfully render WML2.0 content
xhtml_autoexpand_select true/false Some device automatically expand select's (MOT T720, for example)
xhtml_select_as_dropdown true/false The device displays select's as dropdown lists
xhtml_select_as_radiobutton true/false The device displays select's as radio buttons
xhtml_select_as_popup true/false The device displays select's as popup lists, similar to the Openwave GUI extension
xhtml_display_accesskey true/false The device displays a number when you use an accesskey
xhtml_supports_invisible_text true/false
xhtml_supports_inline_input true/false Some browsers let you type text locally. Others bring you to a separate data entry control.
xhtml_supports_monospace_font true/false Does device support monospace fonts only?
xhtml_supports_table_for_layout true/false This device support for tables is solid enough that you can use tables to layout content on the screen. Used in WALL)
xhtml_supports_css_cell_table_coloring true/false CSS support in this device is good enough that table cells are correctly colored when the color is defined through CSS (Used in WALL)
xhtml_format_as_css_property true/false This field is true if the device supports a css property to define the format of an input field. This is what the "format" attribute was in WML. Follows the same rules as "format" used to do. Example:
style="-wap-input-format:NNNN" (Used in WALL)
xhtml_format_as_attribute true/false This is set true if the device supports the "format" attribute in input fields (Used in WALL)
xhtml_nowrap_mode true/false Does device support wrap mode as a XHTML attribute? (Used by WALL)
xhtml_marquee_as_css_property true/false Does device support MARQUEE though CSS syntax? (used by WALL)
xhtml_readable_background_color1 string This and the following properties lets you define 2 colors which interoperate visually on the device. For example, by using one of these two colors as background, you don't risk that an hyperlink disappears against its background. (Used by WALL) against
xhtml_readable_background_color2 string refer to xhtml_readable_background_color1 for description (Used by WALL)
xhtml_allows_disabled_form_elements true/false XHTML lets you define "disabled" form elements. If this actually works on the different devices is tracked down by this capability.
xhtml_document_title_support true/false While one can define the document title with the title tag, not all devices actually render the title. This capability keeps track of that behavior (Used by WALL)
xhtml_preferred_charset string UTF-8 should be supported by default, but some devices have problems. Here you may find alternative charsets such as iso8859. This field does not present the exact charset because with ISO charsets you may need to specify the one of your region (1, 15, other) - Capability mentor: Pau Aliagas
opwv_xhtml_extensions_support true/false The Openwave browser has some supports some useful extensions. Tracked by this capability (used by WALL)
xhtml_make_phone_call_string string Prefix to initiate a voice call (Used by WALL)
xhtmlmp_preferred_mime_type string Most devices should support both text/html and the specific XHTML MP mime type. Some are a little pickie, here you should find a mime type that always works. Default is text/html
xhtml_table_support true/false tables SHOULD be supported as syntax, but are often rendered poorly. This tag tells you if the browser is able to render tables decently

Group:markup supported mark languages

Capability Name Type Description
preferred_markup string This field identifies which markup is best supported by the device. This field is filled on personal experiences of our contributors and is used by the WALL library. Values for this capability look like: wml_1_1, html_wi_imode_compact_generic and html_wi_oma_xhtmlmp_1_0. Just like any other capability, you may override this value in the patch file
wml_1_1 true/false Supports WML version 1.1
wml_1_2 true/false Supports WML version 1.2
wml_1_3 true/false Supports WML version 1.3
wmlscript_1_0 true/false Supports WML script version 1.0
wmlscript_1_1 true/false Supports WML script version 1.1
wmlscript_1_2 true/false Supports WML script version 1.2
wmlscript_1_3 true/false Supports WML script version 1.3
html_wi_w3_xhtmlbasic true/false XHTML basic is XHTML reduced to a minimal set of tags, and was introduced to serve as a basis for a markup which would work on devices with very limited capabilities.
html_wi_oma_xhtmlmp_1_0 true/false XHTML MP is XHTML Basic with the addition of a few extra tags to allow for the application of WCSS ('style' attribute and tag, 'hr' tag)
html_wi_imode_html_1 true/false Supports DoCoMo's iHTML version 1.0
html_wi_imode_html_2 true/false Supports DoCoMo's iHTML version 2.0
html_wi_imode_html_3 true/false Supports DoCoMo's iHTML version 3.0
html_wi_imode_html_4 true/false Supports DoCoMo's iHTML version 4.0
html_wi_imode_html_5 true/false Supports DoCoMo's iHTML version 5.0
html_wi_imode_htmlx_1 true/false Supports DoCoMo's xHTML version 1.0
html_wi_imode_compact_generic true/false Supports generic compact HTML (cHTML)
html_web_3_2 true/false Supports HTML version 3.2
html_web_4_0 true/false Supports HTML version 4
voicexml true/false Supports voice XML
multipart_support true/false Supports multipart contents

Group:cache

Capability Name Type Description
total_cache_disable_support true/false possibility to disable the browser's cache completely
time_to_live_support true/false Device support 'time to live'(TLL) or not. The length of time that a device keeps a deck in cache is called the time to live (TTL). The default TTL is 30 days (or until memory is exhausted) for Openwave browsers. If a deck contains time-sensitive information, you can specify a shorter TTL so that the device will reload the deck from the server more frequently.

Group:display

Capability Name Type Description
resolution_width any integer number This field represents the display's usable width
resolution_height any integer number This field represents the display's usable height
columns any integer number Number of columns presented
rows any integer number Number of lines presented
max_image_width any integer number Width of the images viewable
max_image_height any integer number Height of the images viewable

Group: image_format

s s s
Capability Name Type Description
wbmp true/false supports wbmp format
bmp true/false Supports bmp format
epoc_bmp true/false Supports the EPOC (Symbian) bitmap format, also known as mbm
gif true/false supports gif format
gif_animated true/false supports animated gif (gif89a) format
jpg true/false supports jpg format
png true/false supports png format
tiff true/false supports tiff format
flash_lite true/false supports flash lite format version 1.0
flash_lite_1_1 true/false supports flash lite format version 1.1
flash_lite_download_limit any integer number Defines the download limit in bytes for flash lite files
svgt_1_1 true/false supports SVGT v1.1 - Capability mentor: Antoine Quint
svgt_1_1_plus true/falsesupports SVGT v1.1+ - Capability mentor: Antoine Quint
greyscale true/falsesupports greyscale format
colors any integer numberIn general the number of colors used by the phone

Group:bugs

Capability Name Type Description
post_method_support true/false If true the phone supports HTTP POST method
basic_authentication_support true/false basic authentication support (login and password)
emptyok true/false An empty select is allowed
empty_option_value_support true/false If true the phone will allow the user to pick an empty value from a select

Group:wta

Capability Name Type Description
nokia_voice_call true/false Supports the Nokia 'make call' function
wta_voice_call true/false Supports the standard WML call function
wta_phonebook true/false The WTA implementation supports access to the device's phonebook
wta_misc true/false The WTA implementation supports the miscellaneous features of the WTAI specification
wta_pdc true/false Supports WTA over a PDC network

Group:security

Capability Name Type Description
https_support true/false support for HTTPS protocol (SSL connections)
https_detectable true/false The device can detect when a request is made to an HTTPS resource
phone_id_provided true/false The IMEI number is accessible

Group:storage

Capability Name Type Description
max_deck_size any integer number Maximum allowed size for a deck in bytes
max_url_length_in_requests any integer number Maximum allowed URL length
max_url_length_homepage any integer number Maximum allowed URL length for the browser's homepage
max_url_length_bookmark any integer number Maximum allowed URL length for a bookmark
max_url_length_cached_page any integer number Maximum allowed URL length for a cached page
max_no_of_connection_settings any integer number Number of connection profiles supported
max_no_of_bookmarks any integer number Number of bookmarks the browser can store
max_length_of_username any integer number Maximum allowed length for a username
max_length_of_password any integer number Maximum allowed length for a password
max_object_size any integer number The maximum filesize supported when downloading using WTP-SAR

Group:object_download

Capability Name Type Description
downloadfun_support true/false if true the phone supports download fun features
directdownload_support true/false if true the phone supports object downloading in an anchor
inline_support true/false if true the phone has the possibility to save an image or object shown in a page
oma_support true/false if true the phone supports OMA specifications for object downloading
ringtone true/false if true the phone supports the download of ringtones
ringtone_midi_monophonic true/false support for monophonic (type 0) midi files
ringtone_midi_polyphonic true/false support for polyphonic midi files
ringtone_imelody true/false support for the download of iMelody files
ringtone_digiplug true/false support for the download of digiplug files
ringtone_compactmidi true/false support for the download of compact-midi files
ringtone_mmf true/false support for the download of MMF/SMAF files (Yamaha)
ringtone_rmf true/false support for the download of RMF files (Beatnik)
ringtone_xmf true/false support for the download of XMF files (Beatink - midi approved)
ringtone_amr true/false support for the download of AMR files
ringtone_awb true/false support for the download of AMR wide band files
ringtone_aac true/false support for the download of AAC files
ringtone_wav true/false support for the download of WAV files
ringtone_mp3 true/false support for the download of MP3 files
ringtone_spmidi true/false support for the download of SPmidi files
ringtone_voices any integer number Represents the maximum number of voices for a downloaded ringtone
ringtone_df_size_limit any integer number Size limit in bytes of downloadable ringtones through downloadfun
ringtone_directdownload_size_limit any integer number Size limit in bytes of downloadable ringtones through direct download
ringtone_inline_size_limit any integer number Size limit in bytes of downloadable ringtones for inline objects
ringtone_oma_size_limit any integer number Size limit in bytes of downloadable ringtones through OMA DD
wallpaper true/false if true the phone supports the download of wallpapers
wallpaper_wbmp true/false support for wbmp images
wallpaper_bmp true/false support for bmp images
wallpaper_gif true/false support for gif images
wallpaper_jpg true/false support for jpg images
wallpaper_png true/false support for png images
wallpaper_greyscale true/false true if the phone users a greyscale
wallpaper_colors any integer number This is the number in bit of displayable colors.
Note: if a phone uses 8 tones of grey, you should set wallpaper_greyscale to true and wallpaper_colors to 3
wallpaper_max_width any integer number Maximum width supported for a wallpaper
wallpaper_max_height any integer number Maximum height supported for a wallpaper
wallpaper_preferred_width any integer number Maximum width suggested for a wallpaper
wallpaper_preferred_height any integer number Maximum height suggested for a wallpaper
wallpaper_df_size_limit any integer number Maximum size in bytes of a wallpaper
wallpaper_directdownload_size_limit any integer number Maximum size in bytes of a wallpaper
wallpaper_inline_size_limit any integer number Maximum size in bytes of a wallpaper
wallpaper_oma_size_limit any integer number Maximum size in bytes of a wallpaper
wallpaper_resize string Describes if and how the device resizes a downloaded wallpaper if not exactly the same size of the screen. Possible values are "none", "fixed_ratio" (rescale respecting original proportions), "crop_centered", "crop_top_left".
screensaver true/false if true the phone supports the download of screensavers
screensaver_wbmp true/false support for wbmp images
screensaver_bmp true/false support for bmp images
screensaver_gif true/false support for gif images
screensaver_jpg true/false support for jpg images
screensaver_png true/false support for png images
screensaver_greyscale true/false true if the phone users a greyscale
screensaver_colors any integer number This is the number in bit of displayable colors.
Note: if a phone uses 8 tones of grey, you should set wallpaper_greyscale to true and wallpaper_colors to 3
screensaver_max_width any integer number Maximum width supported for a screensaver
screensaver_max_height any integer number Maximum height supported for a screensaver
screensaver_preferred_width any integer number Maximum width suggested for a screensaver
screensaver_preferred_height any integer number Maximum height suggested for a screensaver
screensaver_df_size_limit any integer number Maximum size in bytes of a screensaver through downloadfun
screensaver_directdownload_size_limit any integer number Maximum size in bytes of a screensave through direct download
screensaver_inline_size_limit any integer number Maximum size in bytes of a screensaver for an inline object
screensaver_oma_size_limit any integer number Maximum size in bytes of a screensaver through OMA DD
screensaver_resize string Describes if and how the device resizes a downloaded screensaver if not exactly the same size of the screen. Possible values are "none", "fixed_ratio" (rescale respecting original proportions), "crop_centered", "crop_top_left".
picture true/false if true the phone supports the download of picture files
picture_wbmp true/false support for wbmp images
picture_bmp true/false support for bmp images
picture_gif true/false support for gif images
picture_jpg true/false support for jpg images
picture_png true/false support for png images
picture_greyscale true/false true if the phone users a greyscale
picture_colors any integer number This is the number in bit of displayable colors.
Note: if a phone uses 8 tones of grey, you should set wallpaper_greyscale to true and wallpaper_colors to 3
picture_max_width any integer number Maximum width supported for a picture
picture_max_height any integer number Maximum height supported for a picture
picture_preferred_width any integer number Maximum width suggested for a picture
picture_preferred_height any integer number Maximum height suggested for a picture
picture_df_size_limit any integer number Maximum size in bytes of a picture throught downloadfun
picture_directdownload_size_limit any integer number Maximum size in bytes of a picture throught direct download
picture_inline_size_limit any integer number Maximum size in bytes of a picture for an inline object
picture_oma_size_limit any integer number Maximum size in bytes of a picture through OMA DD
picture_resize string Describes if and how the device resizes a downloaded picture if not exactly the same size of the screen. Possible values are "none", "fixed_ratio" (rescale respecting original proportions), "crop_centered", "crop_top_left".
video true/false true if the phone may download video clips
video_real_media_8 true/false true if the phone supports real media V8
video_real_media_9 true/false true if the phone supports real media V9
video_real_media_10 true/false true if the phone supports real media V10
video_3gpp true/false true if the phone supports 3GPP videos (including H.263)
video_3gpp2 true/false true if the phone supports 3GPP 2 videos (for CDMA devices)
video_mp4 true/false true if the phone supports MP4 videos
video_wmv true/false true if the phone supports WMV videos
video_mov true/false true if the phone supports MOV videos
video_max_frame_rate integer Max frame rate supported. 0 is the default
video_max_width integer Max width. 0 is the default
video_max_height integer Max height. 0 is the default
video_qcif true/false True if the device can play QCIF videos
video_sqcif true/false True if the device can play SQCIF videos
video_preferred_width integer Suggested max height so that the device will not need any resizing. 0 is the default
video_preferred_height integer Suggested max height so that the device will not need any resizing. 0 is the default
video_df_size_limit integer Max size in bytes for downloadfun. 0 is the default
video_directdownload_size_limit integer Max size in bytes for directdownload. 0 is the default
video_inline_size_limit integer Max size in bytes for inline download. 0 is the default
video_oma_size_limit integer Max size in bytes for OMA DD. 0 is the default
video_vcodec_h263_0 true/false True if the device can play videos encoded using H.263 type 0
video_vcodec_h263_3 true/false True if the device can play videos encoded using H.263 type 3
video_vcodec_mpeg4 true/false True if the device can play videos encoded using MPEG 4
video_acodec_amr true/false True if the device can play videos with AMR audio
video_acodec_awb true/false True if the device can play videos with AMR Wide-Band audio
video_acodec_aac true/false True if the device can play videos with AAC audio
video_acodec_aac_ltp true/false True if the device can play videos with AAC LTP audio
video_acodec_qcelp true/false True if the device can play videos with Qualcomm Code Excited Linear Predictive waveform audio format

Group:drm

Capability Name Type Description
oma_v_1_0_forwardlock true/false true if the phone support OMA DRM ForwardLock V1.0
oma_v_1_0_combined_delivery true/false true if the phone support OMA DRM Combined Delivery V1.0
oma_v_1_0_separate_delivery true/false true if the phone support OMA DRM Separate Delivery V1.0

Group:streaming

Capability Name Type Description
streaming_video true/false true if the phone supports video streaming
streaming_real_media_8 true/false true if the phone supports Real media V8
streaming_real_media_9 true/false true if the phone supports Real media V9
streaming_real_media_10 true/false true if the phone supports Real media V10
streaming_3gpp true/false true if the phone supports 3GPP
streaming_mp4 true/false true if the phone supports MP4
streaming_wmv true/false true if the phone supports WMV
streaming_mov true/false true if the phone supports MOV
streaming_video_qcif true/false true if the phone supports QCIF standard
streaming_video_qcif_max_width integer Max (suggested) width for QCIF videos
streaming_video_qcif_max_height integer Max (suggested) height for QCIF videos
streaming_video_sqcif true/false true if the phone supports SQCIF standard
streaming_video_sqcif_max_width integer Max (suggested) width for SQCIF videos
streaming_video_sqcif_max_height integer Max (suggested) height for SQCIF videos
streaming_video_max_bit_rate integer Max bit rate for video+audio
streaming_video_max_video_bit_rate integer Max bit rate for video
streaming_video_min_video_bit_rate integer Minimum bit rate for video
streaming_video_max_audio_bit_rate integer Max bit rate for audio
streaming_video_max_frame_rate integer Max frame rate
streaming_video_size_limit integer Max size in bytes for the clip
streaming_video_vcodec_h263_0 true/false true if the device supports H.263 type 0 encoded videos
streaming_video_vcodec_h263_3 true/false true if the device supports H.263 type 3 encoded videos
streaming_video_vcodec_mpeg4 true/false true if the device supports MPEG 4 encoded videos
streaming_video_acodec_amr true/false true if the phone supports AMR
streaming_video_acodec_awb true/false true if the phone supports AWB
streaming_video_acodec_aac true/false true if the phone supports AAC
streaming_video_acodec_aac_ltp true/false true if the phone supports AAC LTP

Group:wap_push

Capability Name Type Description
wap_push_support true/false true if the phone support WAP Push messages
connectionless_service_indication true/false true if the phone supports it
connectionless_service_load true/false true if the phone supports it
connectionless_cache_operation true/false true if the phone supports it
connectionoriented_unconfirmed_service_indication true/false Whether unconfirmed service indications are supported, when connection-oriented push is used
connectionoriented_unconfirmed_service_load true/false Whether unconfirmed service load operations are supported, when connection-oriented push is used
connectionoriented_unconfirmed_cache_operation true/false Whether unconfirmed cache operations are supported, when connection-oriented push is used
connectionoriented_confirmed_service_indication true/false Whether confirmed service indications are supported, when connection-oriented push is used
connectionoriented_confirmed_service_load true/false Whether confirmed service load operations are supported, when connection-oriented push is used
connectionoriented_confirmed_cache_operation true/false Whether confirmed cache operations are supported, when connection-oriented push is used
utf8_support true/false Whether the UTF-8 character set is supported
ascii_support true/false Whether the ASCII character set is supported
iso8859_support true/false Whether the ISO-8559 character set is supported
expiration_date true/false Whether an expiry date can be set for the resource

Group:mms

Capability Name Type Description
receiver true/false May receive MMS messages
sender true/false May send MMS messages
mms_max_height any integer number Maximum height for an image
mms_max_width any integer number Maximum width for an image
built_in_recorder true/false The device features a built-in audio recorder
built_in_camera true/false The device features a built-in camera
mms_jpeg_baseline true/false Baseline JPG images support
mms_jpeg_progressive true/false Progressive JPG images support
mms_gif_static true/false Static GIF (87a) support
mms_gif_animated true/false Animated GIF (89a) support
mms_png true/false PNG support
mms_bmp true/false BMP support
mms_wbmp true/false WBMP support
mms_amr true/false AMR support
mms_wav true/false WAV support
mms_midi_monophonic true/false Monophonic MIDI support
mms_midi_polyphonic true/false Polyphonic MIDI support
mms_midi_polyphonic_voices integer If polyphonic MIDI is supported, the number of available voices
mms_spmidi true/false SPMIDI support
mms_ota_bitmap true/false OTA Bitmap support
mms_nokia_wallpaper true/false Nokia wallpaper support
mms_nokia_operatorlogo true/false Nokia operator logo support
mms_nokia_3dscreensaver true/false Nokia 3D screensaver support
mms_nokia_ringingtone true/false Nokia ringingtone support
mms_rmf true/false RMF support
mms_symbian_install true/false Symbian install files support (May receive Symbian install files inside an MMS)
mms_jar true/false JAR support
mms_jad true/false JAD support
mms_vcard true/false Vcard support
mms_wml true/false The message may contain wml
mms_wbxml true/false The message may contain wbxml
mms_wmlc true/false The message may contain wmlc
mms_video true/false The message may contain a video clip
mms_mp4 true/false The message may contain an MP4 video
mms_3gpp true/false The message may contain a 3GPP video
mms_3gpp2 true/false The message may contain a 3GPP2 (CDMA phones) video
mms_max_frame_rate integer The max frame rate for the video

Group:sms Binary SMS and SCKL capabilities.

Capability Name Type Description
nokiaring true/false true if the phone supports nokiarings
picturemessage true/false true if the phone supports Nokia picture messages
operatorlogo true/false true if the phone supports Nokia operator logo's (72x14 pixel)
largeoperatorlogo true/false true if the phone supports Nokia large operator logo's (72x28 pixel)
callericon true/false true if the phone supports Nokia caller icons
nokiavcard true/false true if the phone supports Nokia vcards
nokiavcal true/false true if the phone supports Nokia vcals
sckl_ringtone true/false true if the phone supports SCKL ringtones
sckl_operatorlogo true/false true if the phone supports SCKL operator logos
sckl_groupgraphic true/false true if the phone supports SCKL group graphics
sckl_vcard true/false true if the phone supports SCKL vcards
sckl_vcal true/false true if the phone supports SCKL vcals
text_imelody true/false true if the phone supports textual iMelody
ems true/false true if the phone supports EMS messages
ems_variablesizedpictures true/false true if the phone supports EMS messages
ems_imelody true/false true if the phone supports iMelody over EMS messages
ems_odi true/false true if the phone supports EMS ODI (Object Distribution Indicator)
ems_upi true/false true if the phone supports EMS UPI (User Prompt Indicator)
ems_version integer EMS version
siemens_ota true/false true if the phone supports Siemens OTA
siemens_logo_width integer Logo width (default is 101)
siemens_logo_height integer Logo height (default is 29)
siemens_screensaver_width integer Screensaver width (default is 101)
siemens_screensaver_height integer Screensaver height (default is 50)
gprtf true/false true if the phone supports Motorola proprietary ringtones (GPRTF)
sagem_v1 true/false true if the phone supports Sagem proprietary ringtones spec 1.0
sagem_v2 true/false true if the phone supports Sagem proprietary ringtones spec 2.0
panasonic true/false true if the phone supports Panasonic proprietary ringtones

Group:j2me
NOTE: this group has been totally reviewed, old tags don't exist any more, check out the new tags
Group mentors: José Manuel Cantera Fonseca and Cristian Rodriguez from Telefonica I+D

Capability Name Type Description
j2me_midp_1_0 true/false true if the phone is compliant to MIDP 1.0 specifications
j2me_cldc_1_0 true/false true if the phone is compliant to CLDC 1.0 specifications
j2me_midp_2_0 true/false true if the phone is compliant to MIDP 2.0
j2me_cldc_1_1 true/false true if the phone is compliant to CLDC 2.0 specifications
doja_1_0 true/false true if the phone is compliant to DoJa 1.0 specifications
doja_1_5 true/false true if the phone is compliant to DoJa 1.5 specifications
doja_2_0 true/false true if the phone is compliant to DoJa 2.0 specifications
doja_2_1 true/false true if the phone is compliant to DoJa 2.1 specifications
doja_2_2 true/false true if the phone is compliant to DoJa 2.2 specifications
doja_3_0 true/false true if the phone is compliant to DoJa 3.0 specifications
doja_3_5 true/false true if the phone is compliant to DoJa 3.5 specifications
doja_4_0 true/false true if the phone is compliant to DoJa 4.0 specifications
j2me_jtwi true/false JTWI support
j2me_mmapi_1_0 true/false MMAPI 1.0 support
j2me_mmapi_1_1 true/false MMAPI 1.1 support
j2me_wmapi_1_0 true/false WMAPI 1.0 support
j2me_wmapi_1_1 true/false WMAPI 1.1 support
j2me_wmapi_2_0 true/false WMAPI 2.0 support
j2me_btapi true/false BlueTooth API support
j2me_3dapi true/false 3D API support
j2me_locapi true/false Localization API support
j2me_nokia_ui true/false Nokia UI support
j2me_motorola_lwt true/false Motorola LWT support
j2me_siemens_color_game true/false Siemens Color Game extension support
j2me_siemens_extension true/false Siemens extension support
j2me_heap_size any integer number Memory limit in bytes of the memory during runtime
j2me_storage_size any integer number The physical memory limit
j2me_max_jar_size any integer number Limit in bytes of a midlet downloaded over-the-air
j2me_max_record_store_size any integer number Limit in bytes of a record store
j2me_screen_width any integer number Screen width in pixels
j2me_screen_height any integer number Screen height in pixels
j2me_canvas_width any integer number Canvas width in pixels
j2me_canvas_height any integer number Canvas height in pixels
j2me_bits_per_pixel any integer number Bits per pixels - tells you the colors supported
j2me_audio_capture_enabled any integer number The device may capture audio clips while in a midlet
j2me_video_capture_enabled any integer number The device may capture video clips while in a midlet
j2me_photo_capture_enabled any integer number The device may capture images clips while in a midlet
j2me_capture_image_formats string If j2me_photo_capture_enabled is true, this will tell you the image format supported
j2me_http true/false The device may start HTTP sessions
j2me_https true/false The device may start HTTPS sessions
j2me_socket true/false The device may open a socket
j2me_udp true/false The device may start UDP sessions
j2me_serial true/false The device may start serial connections
j2me_gif true/false true if it supports gif images
j2me_gif89a true/false true if it supports gif 89a (animated) images
j2me_jpg true/false true if it supports jpg images
j2me_png true/false true if it supports png images
j2me_bmp true/false true if it supports bmp images
j2me_bmp3 true/false true if it supports bmp3 images
j2me_wbmp true/false true if it supports wbmp images
j2me_midi true/false true if it supports midi files
j2me_wav true/false true if it supports wav files
j2me_amr true/false true if it supports amr files
j2me_mp3 true/false true if it supports mp3 files
j2me_mp4 true/false true if it supports mp4 audiofiles
j2me_imelody true/false true if it supports imelody files
j2me_rmf true/false true if it supports rmf files
j2me_au true/false true if it supports au files
j2me_aac true/false true if it supports aac files
j2me_realaudio true/false true if it supports realaudio files
j2me_xmf true/false true if it supports xmf files
j2me_wma true/false true if it supports wma files
j2me_3gpp true/false true if it supports 3gpp files
j2me_h263 true/false true if it supports h263 files
j2me_svgt true/false true if it supports svgt files
j2me_mpeg4 true/false true if it supports mpeg4 audio/video files
j2me_realvideo true/false true if it supports realvideo files
j2me_real8 true/false true if it supports real8 files
j2me_realmedia true/false true if it supports realmedia files
j2me_left_softkey_code any integer number Softkey (key on the pad) that's on the left
j2me_right_softkey_code any integer number Softkey (key on the pad) that's on the right
j2me_middle_softkey_code any integer number Softkey (key on the pad) that's in the middle
j2me_select_key_code any integer number Softkey (key on the pad) to select items
j2me_return_key_code any integer number Softkey (key on the pad) to confirm selections
j2me_clear_key_code any integer number Softkey (key on the pad) to cancel/escape
j2me_datefield_no_accepts_null_date true/false datefields do not accept empty values (this is a bug)
j2me_datefield_broken true/false datefields do not work (this is a bug)

Group:sound_format (supported sound formats)

Capability Name Type Description
wav true/false Supports the .wav (Waveform) sound format
mmf true/false Supports the MMF (a Yamaha format) version is understood by the number of voices
smf true/false Supports the smf (Standard MIDI File) sound format
mld true/false An iMode sound format
midi_monophonic true/false Supports the midi (Musical Instrument Digital Interface) monophonic sound format
midi_polyphonic true/false Supports the midi (Musical Instrument Digital Interface) polyphonic sound format
sp_midi true/false Supports the Scalable Polyphony MIDI sound format
rmf true/false Supports the rmf sound format (Beatnik format)
xmf true/false Supports the XMF sound format (Beatnik format)
compactmidi true/false Supports the Compact MIDI sound format (a Faith Inc. format)
digiplug true/false A compact polyphonic sound format developed by the Digiplug company
nokia_ringtone true/false Supports the Nokia ringing tone sound format
imelody true/false A standard file format for melodies, also adopted as the ringtone format by the 4 companies developing the EMS standard
au true/false Also called the uLaw, NeXT, or Sun Audio format
amr true/false AMR standard sound format
awb true/false AMR wide band standard sound format
aac true/false AAC standard sound format
mp3 true/false Supports the mp3 sound format
qcelp true/false Supports the Qualcomm Code Excited Linear Predictive waveform format
evrc true/false Supports the Enhanced Variable Rate Codec waveform format
voices any integer number Maximum number of notes the device can play at the same time

 
api_users_guide.txt · Last modified: 2015/03/12 15:08 by tomas