Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 180: SIP API for J2METM

Updates to the Original JSR

The following information has been updated from the original proposal.

2012.08.29: North Sixty-One has become the Co-Maintenance Lead.

Maintenance Lead: Erkki Rysä

E-Mail Address: jsr180@northsixtyone.com

Telephone Number: -

Fax Number: -

2012.07.12:
The Maintenance Lead from Nokia Corporation has changed to Wang Cheng.

Maintenance Lead: Wang Cheng

E-Mail Address: cheng.9.wang@nokia.com

Telephone Number: -

Fax Number: -

The Maintenance Lead from Nokia Corporation has changed to Erkki Rysa.

Maintenance Lead: Erkki Rysa

E-Mail Address: erkki.rysa@nokia.com

Telephone Number: -

Fax Number: -


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Nokia

Name of Contact Person: Chris Bouret

E-Mail Address: christophe.bouret@nokia.com

Telephone Number: +358 50 483 72 77

Fax Number: +358 7180 36852



NOTE that the Maintenance Lead changed after this JSR went final. Refer to the updates section for information on the current lead.

Specification Lead: Chris Bouret

E-Mail Address: christophe.bouret@nokia.com

Telephone Number: +358 50 483 72 77

Fax Number: +358 7180 36852


Initial Expert Group Membership:

Nokia, Dynamicsoft

Supporting this JSR:

Nokia, Dynamicsoft



Section 2: Request

2.1 Please describe the proposed Specification:

The Session Initiation Protocol (SIP) is used to establish and manage multimedia IP sessions. This same mechanism can also be used to provide instant messaging, presence and gaming services. This JSR requests the creation of a general SIP API for J2ME based on SIP protocol defined in IETF and 3GPP and targeted to resource constrained platform.

SIP will become important protocol in the future IP mobile phone environment and SIP based applications will be essential enablers. MIDP 2.0 opens up the possibility to use TCP & UDP sockets, but it is important that SIP is used with rigid security model and thus it is important to define the SIP API for Java MIDP in the early phase. It also targets to have one SIP API, so that there will not become several different SIP APIs in the MIDP devices using TCP or UDP. It can also bring the new security requirements that should be fit to the MIDP security model early enough.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

J2ME.

SIP API for J2ME will be based on the Generic Connection Framework defined in the J2ME Connected Limited Device Configuration (CLDC) and will use the existing I/O classes of CLDC.

SIP API for J2ME will be typically used in conjunction with the Mobile Information Device Profile (MIDP), but it can be used with other profiles.

2.3 What need of the Java community will be addressed by the proposed specification?

The proposed API enables terminals supporting MIDP/CLDC to run SIP enabled MIDlets. The expert group will define an actual API as well as possible dependences with other existing APIs (security, networking). SIP API for J2ME will integrate with the CLDC Generic Connection Framework pattern and take into consideration the resource constraints of the platform.

The SIP API for J2ME specification must address the following requirements:

  • allow terminal to handle SIP requests in the delivery of SIP related MIDlets. This requires the ability to respond to requests and initiate new requests.

  • provide session management support, allowing users to deposit and retrieve data from objects which potentially span multiple SIP requests, and calls.

  • provide high level access to SIP objects, such as requests and responses, with the ability to manipulate key headers and field values. Emphasis is on simplicity and minimalism rather than completeness.

  • must hide the complexities of SIP wherever possible; developers should not need to be SIP experts.

  • the core platform security model will be applied with the SIP API.

  • handle all type of SIP applications including for example Instant Messaging, Presence, Chatting and Gaming.

    This list of requirements is not necessarily complete and neither will all items be addressed by the first version . We intend to define the API in a progression of specifications that address the requirements in an incremental fashion.

    2.4 Why isn't this need met by existing specifications?

    The JAIN SIP API (JSR 32) defines a general purpose API that is intended for low-level SIP processing in clients as well as servers. The platform targeted is J2EE/SE and is not adapted to J2ME terminals.

    The JAIN SIP Lite (JSR 125) defines a general purpose API that is intended for simplifying the handling of SIP multimedia dialogs, while SIP API for J2ME is generic. The platform targeted is J2EE/SE and not taking into account J2ME CLDC terminal limitations.

    The JAIN SIMPLE Presence (JSR 164) and JAIN SIMPLE IM (JSR 165) defines an application level API specific to a certain task and IETF standard. It is suppose to be platform agnostic. In opposite the SIP API for J2ME is a generic SIP API that doesn't make any assumptions on the standard and application used. It is dedicated to the J2ME platform in order to satisfy the stringent requirements of small platforms.

    2.5 Please give a short description of the underlying technology or technologies:

    SIP (RFC2543) is a protocol specified by IETF/3GPP and used for example in 3G networks for establishing, managing, and terminating sessions between two or more IP endpoints. It defines a number of network entities, notably user agents (UAs) that are the endpoints that initiate and respond to SIP requests, and proxies that makes routing decisions and forward SIP messages towards their destination UA. One of the main functions of SIP is routing session invitations from UA clients via a path of SIP proxies to UA servers.

    Java MIDP/CLDC platform was designed to support small platform requirements. MIDlets can be downloaded to the platform and use the local services.

    2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

    The API will be under javax.microedition.sip and javax.microedition.io

    2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

    No

    2.8 Are there any security issues that cannot be addressed by the current security model?

    The security model should be the same as in the MIDP.

    2.9 Are there any internationalization or localization issues?

    None

    2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

    No

    2.11 Please describe the anticipated schedule for the development of this specification.

    The target schedule is to get the specification finalized Q2/2003.

    2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.

    The anticipated working model will use:

    A dedicated mailing list.
    Monthly conference calls.
    Face-to-face meetings each quarter.





    Section 3: Contributions

    3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

    M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, RFC 2543 "SIP: Session Initiation Protocol" (RFC number will change March 2002)

    IETF SIMPLE WG, SIP for Instant Messaging and Presence Leveraging Extensions

    IETF SIPPING WG, Session Initiation Protocol InvestiGation, 3GPP requirements on SIP; draft-garcia-sipping-3gpp-reqs-03.txt, March 2002

    3.2 Explanation of how these items might be used as a starting point for the work.

    SIP API for J2ME will be based on the SIP specification in the RFC 2543 and potential extensions required by IETF SIMPLE and SIPPING work. It will also take into account 3GPP requirements.