ARIB STD-T63-31.221 V1.0.0. Contact Manager Application Programming Interface; Contact Manager API for Java Card (Release 8)



Similar documents
ARIB STD-T V Contact Manager Application Programming Interface (API); Contact Manager API for Java Card (Release 10)

ETSI TS V9.0.0 ( ) Technical Specification

ARIB STD-T V Source code for 3GP file format (Release 7)

ETSI TS V7.1.0 ( ) Technical Specification

ARIB TR-T V7.0.0

3GPP TS V8.0.0 ( )

ARIB STD-T V Codec for Enhanced Voice Services (EVS); Voice Activity Detection (VAD) (Release 12)

3GPP TS V8.1.0 ( )

3GPP TS V6.1.0 ( )

ARIB STD-T V G Security; Fraud Information Gathering System (FIGS); Service description - Stage 1 (Release 4)

TS-3GA (Rel7)v7.0.0 Telecommunication management; File Transfer (FT) Integration Reference Point (IRP): Requirements

3GPP TS V9.4.0 ( )

Technical Specifications (GPGPU)

JP-3GA (R99) MSP

Presentation of Technical Specification to TSG SA

TS-3GA (Rel6)v6.0.0 Call Forwarding (CF) supplementary services - Stage 1

3GPP TS V9.0.0 ( )

3GPP TS V8.1.0 ( )

ETSI TS V7.0.0 ( ) Technical Specification

3GPP TS V7.0.0 ( )

ARIB STD-T V Wide area network synchronisation standard

3GPP TS V5.0.0 ( )

3GPP TS V8.0.0 ( )

3GPP TR V8.0.0 ( )

ETSI TS V (2016

3GPP TS V4.0.1 ( )

ETSI TS V ( ) Technical Specification

ETSI TS V8.2.0 ( ) Technical Specification

ETSI TS V3.0.0 ( )

ETSI TS V8.0.1 ( ) Technical Specification

3GPP TS V8.0.0 ( )

3GPP TS V6.3.0 ( )

Universal Mobile Telecommunications System (UMTS); Service aspects; Virtual Home Environment (VHE) (UMTS version 3.0.0)

ETSI TS V8.4.0 ( )

3GPP TR V3.1.0 ( )

ETSI TS V7.1.1 ( )

3GPP TS V8.2.0 ( )

3GPP TS V ( )

ETSI TS V6.8.0 ( ) Technical Specification

ETSI TS V9.0.0 ( ) Technical Specification

ARIB TR-T V G Security; Generic Authentication Architecture (GAA); System Description (Release 7)

ETSI TS V5.0.0 ( )

3GPP TS V8.1.0 ( )

Technical Specification LTE; Evolved Universal Terrestrial Radio Access (E-UTRA); Layer 2 - Measurements (3GPP TS version 11.1.

EUROPEAN pr ETS TELECOMMUNICATION January 1997 STANDARD

GSM GSM TECHNICAL November 1996 SPECIFICATION Version 5.0.0

ETSI SR V1.1.2 ( )

How To Understand Gsm (Gsm) And Gsm.Org (Gms)

GSM GSM TECHNICAL July 1996 SPECIFICATION Version 5.0.1

ETSI TR V6.1.0 ( )

GSM GSM TECHNICAL July 1996 SPECIFICATION Version 5.0.0

GSM GSM TECHNICAL November 1996 SPECIFICATION Version 5.0.0

ETSI TS V6.1.0 ( )

TECHNICAL REPORT End to End Network Architectures (E2NA); Location of Transcoders for voice and video communications

Digital Telephone Network - A Practical Definition

ETSI TS V1.1.2 ( ) Technical Specification

ETSI TR V3.1.1 ( ) Technical Report

EUROPEAN ETS TELECOMMUNICATION March 1992 STANDARD

ETSI TS V2.0.0 ( ) Technical Specification

ETSI TR V1.2.1 ( ) Technical Report

EUROPEAN ETS TELECOMMUNICATION October 1992 STANDARD

ETSI TS V9.2.0 ( ) Technical Specification. Smart Cards; Remote APDU structure for UICC based applications (Release 9)

ETSI TR V1.1.2 ( )

EUROPEAN ETS TELECOMMUNICATION October 1992 STANDARD

EN V1.2.4 ( )

TECHNICAL REPORT onem2m; Application Developer Guide (onem2m TR-0025 version Release 1)

3GPP TS V ( )

ETSI TS V ( )

ETSI TR V8.0.0 ( )

Quality of Service and Network Performance (UMTS version 3.1.0)

ETSI GS NFV 003 V1.1.1 ( )

ETSI ETR 221 TECHNICAL November 1995 REPORT

DraftETSI EN V1.1.1 ( )

3GPP TR V7.2.0 ( )

ETSI TR V1.2.1 ( )

ETSI TR V3.1.0 ( )

ETSI TS V1.1.1 ( ) Technical Specification

3GPP TS V8.4.0 ( )

EUROPEAN ETS TELECOMMUNICATION December 1994 STANDARD

3GPP TS V ( )

This amendment A1 modifies the European Telecommunication Standard ETS (1993)

Conferencing Using the IP Multimedia (IM) Core Network (CN) Subsystem

ETSI TS V3.1.1 ( ) Technical Specification

TSGR3#4(99)465. TSG-RAN Working Group 3 meeting #4 Warwick, UK, 1 st 4 th June Agenda Item: 21

EUROPEAN ETS TELECOMMUNICATION October 1991 STANDARD

ETSI TS V6.5.0 ( )

GSM GSM TECHNICAL November 1996 SPECIFICATION Version 5.0.0

ETSI TS V8.9.0 ( )

Presentation of Technical Specification to TSG SA

3GPP TS V9.4.0 ( )

Universal Mobile Telecommunications System (UMTS); Service aspects; Advanced Addressing (UMTS version 3.0.0)

3GPP TS v9.0.0 ( )

3G TS V1.0.0 ( )

Draft EN V1.1.1 ( )

ETSI TS V1.1.1 ( )

ETSI EN V1.3.1 ( )

EUROPEAN ETS TELECOMMUNICATION January 1992 STANDARD

This amendment A1, modifies the European Telecommunication Standard ETS (1990)

3GPP TS V ( )

ARIB STD-T V G Security; Network Domain Security; IP network layer security (Release 6)

Transcription:

ARIB STD-T63-31.221 V1.0.0 Contact Manager Application Programming Interface; Contact Manager API for Java Card (Release 8) Refer to Industrial Property Rights (IPR) in the preface of ARIB STD-T63 for Related Industrial Property Rights. Refer to Notice in the preface of ARIB STD-T63 for Copyrights.

TS 31.221 V1.0.0 (2008-05) Technical Specification 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Contact Manager Application Programming Interface; Contact Manager API for Java Card (Release 8) The present document has been developed within the 3 rd Generation Partnership Project ( TM ) and may be further elaborated for the purposes of. The present document has not been subject to any approval process by the Organizational Partners and shall not be implemented. This Specification is provided for future development work within only. The Organizational Partners accept no liability for any use of this Specification. Specifications and reports for implementation of the TM system should be obtained via the Organizational Partners' Publications Offices.

2 TS 31.221 V1.0.0 (2008-05) Keywords UMTS, smart card, Contact Manager, Java TM API Postal address support office address 650 Route des Lucioles - Sophia Antipolis Valbonne - FRANCE Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Internet http://www.3gpp.org Copyright Notification No part may be reproduced except as authorized by written permission. The copyright and the foregoing restriction extend to reproduction in all media. 2008, Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). All rights reserved.

3 TS 31.221 V1.0.0 (2008-05) Contents Foreword...4 1 Scope...5 2 References...5 3 Definitions, symbols and abbreviations...6 3.1 Definitions... 6 3.2 Symbols... 6 3.3 Abbreviations... 6 4 Contact Manager Internal Interface characteristics...7 4.1 Reference model... 7 4.2 Events registration and deregistration... 8 4.2.1 Overview... 8 4.2.2 Definition of Events... 8 4.3 Services Invocation... 8 4.3.1 General... 8 4.3.2 Services Invocation API description... 9 Annex A (normative): Java TM Card Contact Manager API...11 Annex B (normative): Java TM Card Contact Manager API identifiers...12 Annex C (normative): Java TM Card Contact Manager API package version management...13 Annex D (informative): Example of Java TM Card Contact Manager API use...14 D.1 Application installation...14 D.2 Contact management...15 D.3 Field Management...16 D.4 Group management...17 Annex E (informative): Change history...19

4 TS 31.221 V1.0.0 (2008-05) Foreword This Technical Specification has been produced by the 3 rd Generation Partnership Project (). The contents of the present document are subject to continuing work within the TSG and may change following formal TSG approval. Should the TSG modify the contents of the present document, it will be re-released by the TSG with an identifying change of release date and an increase in version number as follows: Version x.y.z where: x the first digit: 1 presented to TSG for information; 2 presented to TSG for approval; 3 or greater indicates TSG approved document under change control. y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates, etc. z the third digit is incremented when editorial only changes have been incorporated in the document.

5 TS 31.221 V1.0.0 (2008-05) 1 Scope The present document defines the internal interface characteristics of the Contact Manager for UICC applications [2]. The internal interface between the Contact Manager Server application on the UICC and the Contact Manager Client application on the UICC enables Java Card platform based applets, defined in [3], [4] and [5], to invoke and register to the Contact Manager Server services. In particular, the Contact Manager Java Card based API provides methods to: - Read/Update/Create/Delete contact(s) in the Contact Manager Server; - Manage group of contacts in the Contact Manager Server; - Search for a contact in the Contact Manager Server storage; - manage the contacts structure; - Register/Un-register the application to pre-defined events (e.g. application to be notified when contacts are modified in the Contact Manager Server). This API allows to develop an application running together with a Contact Manager [2]. 2 References The following documents contain provisions which, through reference in this text, constitute provisions of the present document. References are either specific (identified by date of publication, edition number, version number, etc.) or non-specific. For a specific reference, subsequent revisions do not apply. For a non-specific reference, the latest version applies. In the case of a reference to a document (including a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same Release as the present document. [1] TR 21.905: "Vocabulary for Specifications". [2] TS 31.220: "Characteristics of the Contact Manager for UICC applications". [3] Sun Microsystems Java Card Specification: "Java Card 2.2.2 Application Programming Interface", http://java.sun.com/products/javacard [4] Sun Microsystems Java Card Specification: "Java Card 2.2.2 Runtime Environment (JCRE) Specification", http://java.sun.com/products/javacard [5] Sun Microsystems Java Card Specification: "Java Card 2.2.2 Virtual Machine Specification", http://java.sun.com/products/javacard [6] TS 31.130: "(U)SIM API for Java Card".

6 TS 31.221 V1.0.0 (2008-05) 3 Definitions, symbols and abbreviations 3.1 Definitions For the purposes of the present document, the terms and definitions given in TR 21.905 [1] and TS 31.130 [6] apply. A term defined in TS 31.130 [6] takes precedence over the definition of the same term, if any, in TR 21.905 [1]. 3.2 Symbols For the purposes of the present document, the following symbols apply: Concatenation 3.3 Abbreviations For the purposes of the present document, the abbreviations given in TR 21.905 [1] and the following apply. An abbreviation defined in the present document takes precedence over the definition of the same abbreviation, if any, in TR 21.905 [1]. API Application Programming Interface

7 TS 31.221 V1.0.0 (2008-05) 4 Contact Manager Internal Interface characteristics 4.1 Reference model The present section describes an API and a Contact Manager Runtime Environment that enables Java Card platform based applets, defined in [3], [4] and [5], to invoke and register to the Contact Manager Server services (e.g. retrieve/modify contact information). The Contact Manager Runtime Environment API is further described in annex A. The internal interface is accessible through Java Card shareable interface mechanism. This shareable interface provides method for the services described in sections 4.2 and 4.3. SCWS 102 221 based Applications (e.g. SIM Applet or USIM Applet) ADF File System Server Other Applications not based on 102 221 Toolkit Applet (e.g. Toolkit service, Remote Management Applications, Browser Applications) Contact Manager Server Java Card TM Packages uicc.access package uicc.toolkit package uicc.system package uicc.scws package uicc.contactmanager package Java Card TM Runtime Environment CAT Runtime Environment SCWS Runtime Environment Contact Manager Runtime Environment Items that are defined in this specification Figure 1: Internal interface reference model Contact Manager Runtime Environment: An Extensions to the Java Card platform described in [3][4][5] and the (U)SAT Runtime Environment described in TS 31.130 [6] to facilitate the communications between Applets and the Contact Manager Server. Applet: these derive from javacard.framework.applet and provide the entry points: process, select, deselect, install as defined in the "Java Card 2.2.2 Runtime Environment Specification" [5]. Event Listener List of the Contact Manager: this is handling all the registration information of the event listener of the Contact Manager Server services. It is provided as a JCRE entry point object defined in [5]. The registry is part of the Contact Manager Runtime Environment. Contact Manager API: consists of the package uicc.cm, provides the methods to register and unregister, to the Contact Manager events. It also provides methods to access the Contact Manager server data. This API is an extension to the "(U)SAT API" defined in TS 31 130 [6].

8 TS 31.221 V1.0.0 (2008-05) 4.2 Events registration and deregistration 4.2.1 Overview Registration and Deregistration to the Contact Manager Server is done through the register and unregister methods of the Contact Manager Runtime Environment interface. The events registration API is described in annex A. To be notified, the client shall implement a ContactEventListener interface and register to the appropriate events. Then the Contact Manager Server will call the following methods when the corresponding event occurs: - ContactEventListener.contactModified (int event, int contactidentifier) of all registered client each time a contact is modified. - ContactEventListener.groupModified (int event, int groupidentifier, int contactidentifier) of all registered client each time a group is modified. - ContactEventListener.fieldDescriptorModified (int event, int fielddescriptoridentifier) of all registered client each time a field descriptor is modified. 4.2.2 Definition of Events The following events can trigger an Applet: Table 1: Contact Manager events list Event Name Reserved short value EVENT_CONTACT_ADDED 1 EVENT_CONTACT_MODIFIED 2 EVENT_CONTACT_REMOVED 3 EVENT_FIELD_DESCRIPTOR_ADDED 9 EVENT_FIELD_DESCRIPTOR_MODIFIED 10 EVENT_FIELD_DESCRIPTOR_REMOVED 11 EVENT_GROUP_ADDED 4 EVENT_GROUP_CONTACT_ADDED 7 EVENT_GROUP_CONTACT_REMOVED 8 EVENT_GROUP_REMOVED 6 4.3 Services Invocation 4.3.1 General The Contact Manager Server shall first be configured with the contacts structure. The contacts structure describes the fields that may be available in a contact. A contact field is described by: - its type (e.g. Name, phone number, postal address,..) and - its attributes (e.g. voice phone number). Some fields such as a name or a postal address may be composed of several sub-fields. The Contact Manager internal interface provides services to access and manage contacts, groups of contacts, list of contacts, list of groups, and contacts structure. Each contact, field descriptor and group is identified by a unique identifier. The following figure depicts an example of a Contact Manager Server data store.

9 TS 31.221 V1.0.0 (2008-05) Groups Group Work Contacts Contact 1 Joe Field Name: Joe Field Tel: 061155 Field Email: Joe@go.com Group Family Contact 2 Steve FieldsDescriptors List: Contact structure FieldDescriptor Name Contact 3 Steve FieldDescriptor Cellular Phone FieldDescriptor 1 st Email Figure 2: Example of a Contact Manager Server data store 4.3.2 Services Invocation API description The invocation of the Contact Manager Server services is done through methods corresponding to the Contact Manager Server Runtime Environment interface. The Services Invocation API is made up of several classes, which are described hereafter. - The ContactManager class is the main factory that provides: - methods to get an instance of the UICC Contact Manager, an instance of the Contacts List, an instance of the Groups list and an instance of the Fields Descriptors list. An application needs to create an instance of each different list to access it at runtime. - The FieldsDescriptorsList class provides: - an enumeration scheme to list the fields that may be present in a contact (i.e. the contact structure); - methods to create, delete a field descriptor. - The FieldDescriptor class provides: - methods to set and retrieve a field type and attribute; - methods to set and retrieve a field label; - methods to set and retrieve a field maximum size. Note: The FieldsDescriptorsList class and the FieldDescriptor class may be used at application installation in order to define the contacts structure. - The ContactsList class provides: - methods to create and delete a contact; - an enumeration scheme to retrieve the list of contacts; - an enumeration scheme with filtering criteria to find and retrieve contacts matching the filtering criteria. - The Contact class provides:

10 TS 31.221 V1.0.0 (2008-05) - an enumeration scheme to retrieve the fields of a contact; - an enumeration scheme with filtering criteria to find and retrieve contact fields matching the filtering criteria. - The Field class provides: - methods to retrieve and update an unformatted or formatted field value (binary, or Phone number, or name or Address). - The Group class extends the ContactsList class. In addition to the ContactsList methods, the Groups class provides: - methods to retrieve and set a group name. - The GroupsList class provides: - methods to create and delete a group; - an enumeration scheme to retrieve the list of groups; - an enumeration scheme with filtering criteria to find and retrieve groups matching the filtering criteria.

11 TS 31.221 V1.0.0 (2008-05) Annex A (normative): Java TM Card Contact Manager API The attached files "31221_Annex_A_Java.zip", and "31xyz_Annex_A_HTML.zip" contains source files and html documentation for the Java Card Contact Manager API.

12 TS 31.221 V1.0.0 (2008-05) Annex B (normative): Java TM Card Contact Manager API identifiers The attached file "31221_Annex_B_Export_files.zip" contains the export files for the uicc.contactmanager.* package.

13 TS 31.221 V1.0.0 (2008-05) Annex C (normative): Java TM Card Contact Manager API package version management The following table describes the relationship between each TS 31.221 specification version and its packages AID and Major, Minor versions defined in the export files. Table 1 TS 31.221 uicc. contactmanager package AID Major, Minor TBC 1.0 The package AID coding is defined in ETSI TS 101 220 [1]. The Contact Manager API packages' AID are not modified by changes to Major or Minor Version. The Major Version shall be incremented if a change to the specification introduces byte code incompatibility with the previous version. The Minor Version shall be incremented if a change to the specification does not introduce byte code incompatibility with the previous version.

14 TS 31.221 V1.0.0 (2008-05) Annex D (informative): Example of Java TM Card Contact Manager API use D.1 Application installation //During application installation, the application creates and stores all necessary objects to use during application runtime. //create an instance of the Contact Manager: ContactManager contactmanager = ContactManager.getContactManager(); //create an instance of the Contacts list: contactslist = contactmanager.getcontactslist(); //create an instance of the Fields Descriptors list: fieldsdescriptorslist = contactmanager.getfieldsdescriptorslist(); //create an instance of the Groups List: groupslist = contactmanager.getgroupslists(); //create a contact object for contacts enumeration: contact = ContactsList.getContactInstance(); //create a field object for fields enumeration: field = Contact.getFieldInstance(); //create group object for objects enumeration: group = GroupsList.getGroupInstance(); //create field descriptor object for fields descriptors enumeration: fielddescriptor = FieldsDescriptorsList.getFieldDescriptorInstance() ; /************************************* * Application could also define if needed a contact structure by creating a basic field description *************************************/

15 TS 31.221 V1.0.0 (2008-05) //create name field: fielddescriptor.settype(field.type_name) ; fielddescriptor.setattributes(field.attr_any) ; fielddescriptor.setlabel(...); name = fieldsdescriptorslist.addfielddescriptor(fielddescriptor) ; //create home phone number field: fielddescriptor.settype(field.type_tel); fielddescriptor.setattributes(field.attr_home); fielddescriptor.setlabel(...); tel1 = fieldsdescriptorslist.addfielddescriptor(fielddescriptor); //create cell and work phone number field: fielddescriptor.settype(field.type_tel) ; fielddescriptor.setattributes(field.attr_work Field.ATTR_CELL) ; fielddescriptor.setlabel(...); tel2 = fieldsdescriptorslist.addfielddescriptor(fielddescriptor) ; //create email field: fielddescriptor.settype(field.type_email); fielddescriptor.setattributes(field.attr_any); fielddescriptor.setlabel(...); email = fieldsdescriptorslist.addfielddescriptor(fielddescriptor); D.2 Contact management //The ContactsList class allows the management of all phonebook contacts: //List all contact: contactslist.startenumeration(); while(contactslist.hasmorecontact()) { contactslist.nextcontact(contact) ;... } //Find a contact with specific value. Find a contact with phone number end bye "0603"

16 TS 31.221 V1.0.0 (2008-05) byte pattern[] = {'*','0','6','0','3'} ; contactslist.startenumeration(); contactslist.nextcontact(contact, Field.TYPE_TEL, Field.ATTR_ANY, pattern, (short)0, (shrot)pattern.length) ; //Create a Contact contactslist.addcontact(contact) ; int contactid = contact.getcontactidentifier(); //Delete a contact contactslist.removecontact(contactid); D.3 Field Management // The Contact object provides access to contact fields. //Read fields of a contact byte buffer[] = new byte[60]; contact.startenumeration() ; while(contact.hasmorefield()) { contact.nextfield(field) ; switch(field.gettype()) { case Field.TYPE_TEL: field.readphonenumber(buffer, (short)0, (short)buffer.length) break; case Field.TYPE_NAME: // get family name field.readformattedname(field.name_family,buffer, (short)0, (short)buffer.length) ; break; default: field.readbinary(buffer, (short)0, (short)buffer.length); }

17 TS 31.221 V1.0.0 (2008-05) } //Update a field //Update email of the contact contact.getfield(field, email) ; //or contact.startenumeration() ; contact.nextfield(field, Field.TYPE_EMAIL, Field.ATTR_ANY, null, (short)0, (short)0) ; // then update byte newmail[] = {'j','o','e','@','g','o','.','c','o','m'}; field.updatebinary(newmail, (short)0, (short)newmail.length) ; D.4 Group management //Create a group byte group1[]={'g','r','o','u','p','1'} ; // set group name group.setgroupname(group1, (short)0, (short)group1.length) ; // add new group int groupid = groupslist.addgroup(group) ; //Delete a group groupslist.removegroup(groupid) ; //Add a contact to the group group.addcontact(contact) ; // remove contact from a group group.removecontact(contact.getcontactidentifier()) ; //Enumerate all group groupslist.startenumeration() ; while(groupslist.hasmoregroup())

18 TS 31.221 V1.0.0 (2008-05) { groupslist.nextgroup(group) ;... } //Enumerate all group of a contact groupslist.startenumeration() ; while(groupslist.hasmoregroup()) { groupslist.nextgroup(group,contact.getcontactidentifier()) ;... }

19 TS 31.221 V1.0.0 (2008-05) Annex E (informative): Change history Change history Date TSG # TSG Doc. CR Rev Subject/Comment Old New Version 0.1.0 submitted to CT6#47 0.0.0 0.1.0 6-05- 2008 C6-080121