Siemens and Motorola have submitted Java Specification Request 253, Mobile Telephony API (MTA), to the Java Community Process. According to the JSR,
Mobile Telephony API (MTA) defines a set of functions for controlling calls and using network services suitable for Java applications written for J2ME devices. An example of Java application that uses MTA can be conference application, scheduled calls, or voice services. The MTA must be suited to small devices in terms of functionality and processing. Existing APIs such as JTAPI and JAIN JCC do not suit these requirements.
It is not intended to model the whole telephony network, nor is it necessarily intended to expose every telephony feature available in every wireless network. The goal is to define a portable API basis that exposes common telephony features available in most wireless handsets. The design targets extensibility such that unique features available in some networks can be made available as option packages.
The MTA supports call and supplementary services handling as well as access to the call-related parameters that are required for call management. The interface is an abstraction of the underlying protocols (GSM, CDMA, or UMTS), therefore call and call-related functions must be generalized in order to be applicable independent of the network protocol. The API does not deal with any service functionality and call control on the operator side. The API neither deals with user interfaces nor any presentation issues. The Mobile Telephony API allows java applications to access call-related functionality such as:
- Initiate voice and emergency calls
- Receive/accept an incoming call
- Control and end an existing call
- Receive event notifications of call state changes
- Receive event notifications of network state changes (e.g. roaming to a different network)
- Access network information such as Network ID and "Network Selection Modes"
- Use supplementary services such as multiparty calls, and call forwarding
- Get status information about supplementary services
- Activate/deactivate supplementary services
- Send/receive Unstructured Supplementary Service Data
- Manage call-related phone and user parameters such as "Phone Identity Presentation Restriction" or "User Group"
The resulting APIs will be suitable on both the CLDC and CDC platforms.
This JSR does not define mapping of the Mobile Telephony API to underlying protocols and does not deal with any protocol details. The choice of the underlying protocol to use is a responsibility of the API implementation.
Comments are due by September 20.