Mobile Application Part Interface (MAPI)

Mobile Application Part Interface

Preface

Security Warning

Permission to use, copy and distribute this documentation without modification, for any purpose and without fee or royalty is hereby granted, provided that both the above copyright notice and this permission notice appears in all copies and that the name of OpenSS7 Corporation not be used in advertising or publicity pertaining to distribution of this documentation or its contents without specific, written prior permission. OpenSS7 Corporation makes no representation about the suitability of this documentation for any purpose. It is provided “as is” without express or implied warranty.

OpenSS7 Corporation disclaims all warranties with regard to this documentation including all implied warranties of merchantability, fitness for a particular purpose, non-infringement, or title; that the contents of the document are suitable for any purpose, or that the implementation of such contents will not infringe on any third party patents, copyrights, trademarks or other rights. In no event shall OpenSS7 Corporation be liable for any direct, indirect, special or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with any use of this document or the performance or implementation of the contents thereof.

OpenSS7 Corporation is making this documentation available as a reference point for the industry. While OpenSS7 Corporation believes that these interfaces are well defined in this release of the document, minor changes may be made prior to products conforming to the interfaces being made available.

Abstract

This document is a Application Programming Interface containing technical details concerning the implementation of the Mobile Application Part Interface (MAPI) for OpenSS7. It contains recommendations on software architecture as well as platform and system applicability of the Mobile Application Part Interface (MAPI).

Purpose

The purpose of this document is to provide technical documentation of the Mobile Application Part Interface (MAPI). This document is intended to be included with the OpenSS7 STREAMS software package released by OpenSS7 Corporation. It is intended to assist software developers, maintainers and users of the Mobile Application Part Interface (MAPI) with understanding the software architecture and technical interfaces that are made available in the software package.

Intent

It is the intent of this document that it act as the primary source of information concerning the Mobile Application Part Interface (MAPI).

Audience

The audience for this document is software developers, maintainers and users and integrators of the Mobile Application Part Interface (MAPI).

Disclaimer

Although the author has attempted to ensure that the information in this document is complete and correct, neither the Author nor OpenSS7 Corporation will take any responsibility in it.

Revision History

Take care that you are working with a current version of this documentation: you will not be notified of updates. To ensure that you are working with a current version, check the OpenSS7 Project website for a current version.

A printed (or postscript) version of this document is an UNCONTROLLED version.

     
     mapi.texi,v
     Revision 0.9.2.5  2006/01/04 08:04:14  brian
     - corrected documentation
     
     

1 Introduction

This document specifies a STREAMS-based kernel-level instantiation of the 3GPP GSM/UMTS TS.29002 Mobile Application Part (MAP) service definition. The Mobile Application Part Interface (MAPI) enables the user of a mobile application service to access and use a wide variety of conforming mobile application service providers without specific knowledge of the provider's protocol. The service interface is designed to support any operation class of transaction protocol. This interface only specifies access to mobile application layer service providers, and does not address issues concerning mobile application layer management, protocol performance, and performance analysis tools.

This specification assumes that the reader is familiar with the 3GPP GSM/UTMS reference points and protocol stacks, Mobile Application Part services, and STREAMS.

1.1 Related Documentation

1.1.1 Role

This document specifies an interface that support the service provided by the Mobile Applications Part (MAP) specification for 3GPP GSM/UMTS as described in 3GPP TS 29.002. These specifications are targeted for use by developers and testers of protocol modules that require Mobile Applications Part services.

1.2 Definitions, Acronyms, Abbreviations

Application Context

Object Identifier

Calling Party
The Calling Party.

Called Party
The Called Party.

Operations Class
One of 5 ISO/OSI Transport Protocol Classes.

MAP
Mobile Applications Part

TCAP
Transaction Capabilities Application Part

SCCP
Service Connection Control Part

MTP
Message Transfer Part

TR
Transaction Sub-Layer

TC
Component Sub-Layer

IMSI
International Mobile Station Identifier

MSISDN
Mobile Station ISDN Directory Number (E.164)

ITU
International Telecommunications Union

ITU-T
International Telecommunications Union – Telecom Sector

OSI
Open Systems Interconnect

ISO
International Organization for Standardization

MAP User
A user of the Mobile Application Part (MAP) Interface.

MAP Provider
A provider of the Mobile Application Part (MAP) Interface.

MAPI
The Mobile Application Part (MAP) Interface.

MS
Mobile Station.

Components
Transaction components as defined in ITU-T Recommendation Q.771.

QoS
Quality of Service

STREAMS
A communication services development facility first available with UNIX System V Release 3.

2 The Mobile Application Layer

The Mobile Application Layer provides the means to manage the operation of a mobile network. It is responsible for the routing and management of data exchange between the MAP-User entities.

2.1 Model of the MAPI

The MAPI defines the services provided by the MAP layer to the MAP-User at the boundary between the MAP layer and the MAP layer user entity. The interface consists of a set of primitives defined as STREAMS messages that provide access to the MAP layer services, and are transferred between the MAP user entity and the MAP provider. These primitives are of two types: ones that originate from the MAP user, and others that originate from the MAP provider. The primitives that originate from the MAP user make requests to the MAP provider, or respond to an event of the MAP provider. The primitives that originate from the MAP provider are either confirmation of a request or are indications to the MAP user that the event has occurred. Figure 1 shows the model of the MAPI. (See Modelling Principles.)

Figure 1 – Module of the MAP Interface
mapi_fig.png

The MAPI allows the MAP provider to be configured with any MAP user (such as an HLR, MSC or SGSN application) that also conforms to the MAPI. A MAP user can also be a user program that conforms to the MAPI and accesses the MAP provider using `putmsg()' and `getmsg()' system calls. 1

2.2 MAP Services

The features of the MAP are defined in terms of the services provided by the MAP provider, and the individual primitives that may flow between the MAP users and the MAP provider.

The services provided by the MAP are based on a number of application contexts corresponding to the 3GPP TS 29.002 Mobile Application Part application contexts. In addition, the MAP supports services for local management.

2.2.1 Local Management

The MAP specifications also define a set of local management functions that apply to all application contexts. These services have local significance only.

Tables 1 and 2 summarizes the MAPI service primitives by their state and service.

2.2.2 Common Services



Table X. Common Services

Service Invoker Performer
MAP_OPEN
MAP_DELIM
MAP_CLOSE
MAP_UABORT User User
MAP_PABORT Provider User
MAP_NOTICE
MAP_STC1
MAP_STC2
MAP_STC3
MAP_STC4

2.2.3 Specific Services



Table 3. Specific Services

Service Invoker Performer
MAP_ACTSS MSC VLR
VLR HLR
MAP_ACTTM HLR VLR or SGSN
MAP_ALERTSC HLR SMS-IWMSC
MAP_ANYMOD SCF HLR
PNA VLR or SGSN
MAP_ANYSUB SCF HLR
MAP_AUTH VLR MSC
MAP_AUTHFAIL VLR or SGSN HLR
MAP_CANCLOC HLR VLR or SGSN
MAP_CKIEMI VLR MSC
MSC or SGSN EIR
MAP_DEACTSS MSC VLR
VLR HLR
MAP_DEACTTM HLR VLR or SGSN
MAP_DELSUBD HLR VLR or SGSN
MAP_ERASECC MSC VLR
VLR HLR
MAP_ERASESS MSC VLR
VLR HLR
MAP_FAILURE GGSN HLR
MAP_FAS MSC-A MSC-B
MAP_FCKSSIND HLR VLR
MAP_FGRCSIG Anchor MSC Relay MSC
MAP_MTFSMS SMS-GMSC MSC or SGSN
MAP_MOFSMS MSC SMS-IWMSC
MAP_GETPASS HLR VLR
VLR MSC
MAP_INFORMSC HLR SMS-GMSC
MAP_INSSUBSD HLR VLR or SGSN
MAP_INTERGSS MSC VLR
VLR HLR
MAP_ISTALERT VMSC or GMSC HLR
MAP_ISTCMD HLR VMSC or GMSC
MAP_MMEVENT VLR or SGSN SCF
MAP_MSGPRSPRES HLR GGSN
MAP_SUBSDATAMOD HLR SCF
MAP_PREPGC Anchor MSC Relay MSC
MAP_PREPHO MSC-A MSC-B
MAP_PREPSH MSC-B MSC-A
MAP_PROCAS MSC VLR
MAP_PROCGC Relay MSC Anchor MSC
MAP_PROCUSS MSC VLR
VLR HLR
MAP_PROVRN HLR VLR
MAP_PROVSLOC GMLC VMSC or SGSN
MAP_PROVSUBI VLR SGSN
MAP_PURGEMS VLR or SGSN HLR
MAP_RDYSM MSC VLR
VLR or SGSN HLR
MAP_REGCC MSC VLR
VLR HLR
MAP_REGPW MSC VLR
VLR HLR
MAP_REGSS MSC VLR
MAP_REMUSRFREE HLR VLR
MAP_SMDELIVSTAT SMS-GMSC HLR
MAP_RESET HLR VLR or SGSN
MAP_RESTORE VLR HLR
MAP_SENDGCEND Relay MSC Anchor MSC
MAP_SENDEND MSC-B MSC-A
MAP_SENDAUTHI VLR or SGSN HLR
MAP_SENDIMSI VLR MSC
MAP_SENDID VLR old VLR
MAP_SENDSMSRI SMS-GMSC HLR
MAP_SENDGPRSRI GGSN HLR
MAP_SENDLCSRI GMLC HLR
MAP_SENDRI GMSC or SCF HLR or NPLR
MAP_SETREP HLR VLR
MAP_STATUS VLR HLR
MAP_SUBLOCREP VMSC or SGSN GMLC
MAP_USSDNTFY SCF HLR
HLR VLR
VLR MSC
MAP_USSDREQ SCF HLR
HLR VLR
VLR MSC
MAP_UDGPRSLOC SGSN HLR
MAP_UDLOC VLR HLR

2.3 Service Categories

2.3.1 Mobility Management

2.3.1.1 Location Management Services

Service Invoker Performer
MAP_UDLOC VLR HLR
MAP_CANCLOC HLR VLR or SGSN
MAP_SENDID VLR old VLR
MAP_PURGEMS VLR or SGSN HLR
MAP_UDGPRSLOC SGSN HLR
MAP_MMEVENT VLR or SGSN SCF

2.3.1.2 Paging and Search

Service Invoker Performer
MAP_PAGE VLR MSC
MAP_SEARCH VLR MSC

2.3.1.3 Access Management Services

Service Invoker Performer
MAP_PROCAS MSC VLR

2.3.1.4 Handover Services

Service Invoker Performer
MAP_PREPHO MSC-A MSC-B
MAP_SENDEND MSC-B MSC-A
MAP_PROCAS MSC-B MSC-A
MAP_FAS MSC-A MSC-B
MAP_PREPSH MSC-B MSC-A
MAP_ALLOCHN MSC VLR
MAP_SENDHOREP VLR MSC-B

2.3.1.5 Authentication Management Services

Service Invoker Performer
MAP_AUTH VLR MSC
MAP_SENDAUTHI VLR or SGSN HLR
MAP_AUTHFAIL VLR or SGSN HLR

2.3.1.6 Security Management Services

Service Invoker Performer
MAP_SETCM VLR MSC

2.3.1.7 IEMI Managment Services

Service Invoker Performer
MAP_CKIEMI VLR MSC
MSC or SGSN EIR
MAP_GETIEMI VLR MSC

2.3.1.8 Subscriber Management Services

Service Invoker Performer
MAP_INSSUBSD HLR VLR or SGSN
MAP_DELSUBD HLR VLR or SGSN

2.3.1.9 Identity Management Services

Service Invoker Performer
MAP_PROVIMSI VLR MSC
MAP_FNEWIMSI VLR MSC

2.3.1.10 Fault Recovery Services

Service Invoker Performer
MAP_RESET HLR VLR or SGSN
MAP_FCKSSIND HLR VLR
MAP_RESTORE VLR HLR

2.3.1.11 Subscriber Information Services

Service Invoker Performer
MAP_ANYQRY SCF HLR or GMLC or NPLR
MAP_PROVSUBI VLR SGSN
MAP_ANYSUB SCF HLR
MAP_ANYMOD SCF HLR
PNA VLR or SGSN
MAP_SUBSDATAMOD HLR SCF

2.3.2 Operation and Maintenance

2.3.2.1 Subscriber Tracing Services

Service Invoker Performer
MAP_ACTTM HLR VLR or SGSN
MAP_DEACTTM HLR VLR or SGSN
MAP_TRACESA VLR MSC

2.3.2.2 Miscellaneous Operation and Maintenance Services

Service Invoker Performer
MAP_SENDIMSI VLR MSC

2.3.3 Call Handling

2.3.3.1 Call Handling Services

Service Invoker Performer
MAP_SENDRI GMSC or SCF HLR or NPLR
MAP_PROVRN HLR VLR
MAP_RESUME VMSC GMSC
MAP_PREPGC Anchor MSC Relay MSC
MAP_PROCGC Relay MSC Anchor MSC
MAP_FGRCSIG Anchor MSC Relay MSC
MAP_SENDGCEND Relay MSC Anchor MSC
MAP_SETREP HLR VLR
MAP_STATUS VLR HLR
MAP_REMUSRFREE HLR VLR
MAP_ISTALERT VMSC or GMSC HLR
MAP-ISTCMD HLR VMSC or GMSC

2.3.4 Supplementary Service

2.3.4.1 Supplementary Service Services

Service Invoker Performer
MAP_REGSS MSC VLR
MAP_ERASESS MSC VLR
VLR HLR
MAP_ACTSS MSC VLR
VLR HLR
MAP_DEACTSS MSC VLR
VLR HLR
MAP_INTERGSS MSC VLR
VLR HLR
MAP_REGPW MSC VLR
VLR HLR
MAP_GETPASS HLR VLR
VLR MSC
MAP_PROCUSS MSC VLR
VLR HLR
MAP_USSDREQ SCF HLR
HLR VLR
VLR MSC
MAP_USSDNTFY SCF HLR
HLR VLR
VLR MSC
MAP_SSINV MSC or HLR SCF
MAP_REGCC MSC VLR
VLR HLR
MAP_ERASECC MSC VLR
VLR HLR

2.3.5 SMS Management Services

2.3.5.1 Short Message Service Management Services

Service Invoker Performer
MAP_SENDSMSRI SMS-GMSC HLR
MAP_MOFSMS MSC SMS-IWMSC
MAP_SMDELIVSTAT SMS-GMSC HLR
MAP_RDYSM MSC VLR
MAP_RDYSM VLR or SGSN HLR
MAP_ALERTSC HLR SMS-IWMSC
MAP_INFORMSC HLR SMS-GMSC
MAP_SENDMTSMSI MSC VLR
MAP_SENDMOSMSI MSC VLR
MAP_MTFSMS SMS-GMSC MSC or SGSN

2.3.6 Network-Requested PDP Context Activation

2.3.6.1 Network-Requested PDP Context Activation Services

Service Invoker Performer
MAP_SENDGPRSRI GGSN HLR
MAP_FAILURE GGSN HLR
MAP_MSGPRSPRES HLR GGSN

2.3.7 Location Service Management

2.3.7.1 Location Service Management Services

Service Invoker Performer
MAP_SENDLCSRI GMLC HLR
MAP_PROVSLOC GMLC VMSC or SGSN
MAP_SUBLOCREP VMSC or SGSN GMLC

2.4 MAP User Entities

2.4.1 Mobile Switching Centre (MSC) Service Sets



Table X. MSC performed services.

Service Invoker Performer
MAP_PAGE VLR MSC
MAP_SEARCH VLR MSC
MAP_SENDHOREP VLR MSC
MAP_AUTH VLR MSC
MAP_SETCM VLR MSC
MAP_CKIEMI VLR MSC
MAP_GETIEMI VLR MSC
MAP_PROVIMSI VLR MSC
MAP_FNEWIMSI VLR MSC
MAP_TRACESA VLR MSC
MAP_SENDIMSI VLR MSC
MAP_ISTCMD HLR MSC
MAP_GETPASS VLR MSC
MAP_USSDREQ VLR MSC
MAP_USSDNTFY VLR MSC
MAP_MTFSMS SMS-GMSC MSC
MAP_PROVSLOC GMLC MSC



Table X. MSC invoked services.

Service Invoker Performer
MAP_PROCAS MSC VLR
MAP_CKIEMI MSC EIR
MAP_ALLOCHN MSC VLR
MAP_RESUME MSC GMSC
MAP_ISTALERT MSC HLR
MAP_REGSS MSC VLR
MAP_ERASESS MSC VLR
MAP_ACTSS MSC VLR
MAP_DEACTSS MSC VLR
MAP_INTERGSS MSC VLR
MAP_REGPW MSC VLR
MAP_PROCUSS MSC VLR
MAP_SSINV MSC SCF
MAP_REGCC MSC VLR
MAP_ERASECC MSC VLR
MAP_MOFSMS MSC SMS-IWMSC
MAP_RDYSM MSC VLR
MAP_SENDMTSMSI MSC VLR
MAP_SENDMOSMSI MSC VLR
MAP_SUBLOCREP MSC GMLC



Table X. MSC peer services.

Service Invoker Performer
MAP_PREPHO MSC-A MSC-B
MAP_SENDEND MSC-B MSC-A
MAP_PROCAS MSC-B MSC-A
MAP_FAS MSC-A MSC-B
MAP_PREPSH MSC-B MSC-A
MAP_PREPGC Anchor MSC Relay MSC
MAP_PROCGC Relay MSC Anchor MSC
MAP_FGRCSIG Anchor MSC Relay MSC
MAP_SENDGCEND Relay MSC Anchor MSC

2.4.2 Home Location Register (HLR) Service Sets



Table 1. HLR performed services.

Service Invoker Performer
MAP_UDLOC VLR HLR
MAP_PURGEMS VLR or SGSN HLR
MAP_UDGPRSLOC SGSN HLR
MAP_SENDAUTHI VLR or SGSN HLR
MAP_AUTHFAIL VLR or SGSN HLR
MAP_RESTORE VLR HLR
MAP_ANYQRY SCF HLR
MAP_ANYSUB SCF HLR
MAP_ANYMOD SCF HLR
MAP_SENDRI GMSC or SCF HLR
MAP_STATUS VLR HLR
MAP_ISTALERT VMSC or GMSC HLR
MAP_ERASESS VLR HLR
MAP_ACTSS VLR HLR
MAP_DEACTSS VLR HLR
MAP_INTERGSS VLR HLR
MAP_REGPW VLR HLR
MAP_PROCUSS VLR HLR
MAP_REGCC VLR HLR
MAP_ERASECC VLR HLR
MAP_SENDSMSRI SMS-GMSC HLR
MAP_SMDELIVSTAT SMS-GMSC HLR
MAP_RDYSM VLR or SGSN HLR
MAP_SENDGPRSRI GGSN HLR
MAP_FAILURE GGSN HLR
MAP_USSDREQ SCF HLR
MAP_SENDLCSRI GMLC HLR
MAP_USSDNTFY SCF HLR



Table 2. HLR invoked services.

Service Invoker Performer
MAP_CANCLOC HLR VLR or SGSN
MAP_INSSUBSD HLR VLR or SGSN
MAP_DELSUBD HLR VLR or SGSN
MAP_RESET HLR VLR or SGSN
MAP_FCKSSIND HLR VLR
MAP_SUBSDATAMOD HLR SCF
MAP_ACTTM HLR VLR or SGSN
MAP_DEACTTM HLR VLR or SGSN
MAP_PROVRN HLR VLR
MAP_SETREP HLR VLR
MAP_REMUSRFREE HLR VLR
MAP_ISTCMD HLR VMSC or GMSC
MAP_GETPASS HLR VLR
MAP_USSDREQ HLR VLR
MAP_USSDNTFY HLR VLR
MAP_SSINV HLR SCF
MAP_ALERTSC HLR SMS-IWMSC
MAP_INFORMSC HLR SMS-GMSC
MAP_MSGPRSPRES HLR GGSN

2.4.3 Visitor Location Register (VLR) Service Sets



Table 3. VLR performed services.

Service Invoker Performer
MAP_CANCLOC HLR VLR
MAP_PROCAS MSC VLR
MAP_ALLOCHN MSC VLR
MAP_INSSUBSD HLR VLR
MAP_DELSUBD HLR VLR
MAP_SENDID VLR old VLR
MAP_RESET HLR VLR
MAP_FCKSSIND HLR VLR
MAP_ANYMOD PNA VLR
MAP_ACTTM HLR VLR
MAP_DEACTTM HLR VLR
MAP_PROVRN HLR VLR
MAP_SETREP HLR VLR
MAP_REMUSRFREE HLR VLR
MAP_REGSS MSC VLR
MAP_ERASESS MSC VLR
MAP_ACTSS MSC VLR
MAP_DEACTSS MSC VLR
MAP_INTERGSS MSC VLR
MAP_REGPW MSC VLR
MAP_GETPASS HLR VLR
MAP_PROCUSS MSC VLR
MAP_USSDREQ HLR VLR
MAP_USSDNTFY HLR VLR
MAP_REGCC MSC VLR
MAP_ERASECC MSC VLR
MAP_RDYSM MSC VLR
MAP_SENDMTSMSI MSC VLR
MAP_SENDMOSMSI MSC VLR



Table 4. VLR invoked services.

Service Invoker Performer
MAP_UDLOC VLR HLR
MAP_SENDID VLR old VLR
MAP_PURGEMS VLR HLR
MAP_MMEVENT VLR SCF
MAP_PAGE VLR MSC
MAP_SEARCH VLR MSC
MAP_SENDHOREP VLR MSC-B
MAP_AUTH VLR MSC
MAP_SENDAUTHI VLR HLR
MAP_AUTHFAIL VLR HLR
MAP_SETCM VLR MSC
MAP_CKIEMI VLR MSC
MAP_GETIEMI VLR MSC
MAP_PROVIMSI VLR MSC
MAP_FNEWIMSI VLR MSC
MAP_RESTORE VLR HLR
MAP_PROVSUBI VLR SGSN
MAP_TRACESA VLR MSC
MAP_SENDIMSI VLR MSC
MAP_STATUS VLR HLR
MAP_ERASESS VLR HLR
MAP_ACTSS VLR HLR
MAP_DEACTSS VLR HLR
MAP_INTERGSS VLR HLR
MAP_REGPW VLR HLR
MAP_GETPASS VLR MSC
MAP_PROCUSS VLR HLR
MAP_USSDREQ VLR MSC
MAP_USSDNTFY VLR MSC
MAP_REGCC VLR HLR
MAP_ERASECC VLR HLR
MAP_RDYSM VLR HLR

2.4.4 Equipment Identity Register (EIR) Service Sets



Table X. EIR performed services.

Service Invoker Performer
MAP_CKIEMI MSC or SGSN EIR

2.4.5 Serving GPRS Support Node (SGSN) Service Sets



Table X. SGSN performed services.

Service Invoker Performer
MAP_CANCLOC HLR SGSN
MAP_INSSUBSD HLR SGSN
MAP_DELSUBD HLR SGSN
MAP_RESET HLR SGSN
MAP_PROVSUBI VLR SGSN
MAP_ANYMOD PNA SGSN
MAP_ACTTM HLR SGSN
MAP_DEACTTM HLR SGSN
MAP_MTFSMS SMS-GMSC SGSN
MAP_PROVSLOC GMLC SGSN



Table X. SGSN invoked services.

Service Invoker Performer
MAP_PURGEMS SGSN HLR
MAP_UDGPRSLOC SGSN HLR
MAP_MMEVENT SGSN SCF
MAP_SENDAUTHI SGSN HLR
MAP_AUTHFAIL SGSN HLR
MAP_CKIEMI SGSN EIR
MAP_RDYSM SGSN HLR
MAP_SUBLOCREP SGSN GMLC

2.4.6 Gateway GPRS Support Node (GGSN) Service Sets



Table X. GGSN performed services.

Service Invoker Performer
MAP_MSGPRSPRES HLR GGSN



Table X. GGSN invoked services.

Service Invoker Performer
MAP_SENDGPRSRI GGSN HLR
MAP_FAILURE GGSN HLR

2.4.7 Interworking MSC (IWMSC) for Short Message Service Service Sets



Table X. SMS-IWMSC performed services.

Service Invoker Performer
MAP_MOFSMS MSC SMS-IWMSC
MAP_ALERTSC HLR SMS-IWMSC

2.4.8 Gateway MSC (GMSC) for Short Message Service Service Sets



Table X. SMS-GMSC performed services.

Service Invoker Performer
MAP_INFORMSC HLR SMS-GMSC



Table X. SMS-GMSC invoked services.

Service Invoker Performer
MAP_SENDSMSRI SMS-GMSC HLR
MAP_SMDELIVSTAT SMS-GMSC HLR
MAP_MTFSMS SMS-GMSC MSC or SGSN

2.4.9 Gateway Mobile Location Center (GMLC) Service Sets



Table X. GMLC performed services.

Service Invoker Performer
MAP_ANYQRY SCF GMLC
MAP_SUBLOCREP VMSC or SGSN GMLC



Table X. GMLC invoked services.

Service Invoker Performer
MAP_SENDLCSRI GMLC HLR
MAP_PROVSLOC GMLC VMSC or SGSN

3 MAPI Services Definition

This chapter describes the services of the MAP primitives. Time-sequence diagrams that illustrate the sequence of primitives is included. (Conventions for the time-sequence diagrams are defined in ITU-T X.210). The format of the primitives will be defined later in the document.

3.1 Local Management Services Definition

The services defined in this section are outside the scope of the international standards. These services apply to all applications contexts and specific service primitives. They are invoked for the initialization or de-initialization of a stream connected to the MAP provider. They are also used to manage options supported by the MAP provider and to report information on the supported parameter values.

3.1.1 MAP Information Reporting Service

This service provides information on the options supported by the MAP provider.

The sequence of primitives for mobile application part information management is shown in Figure 2.

Figure 2. Sequence of Primitives;
MAP Information Reporting Serivce

3.1.2 MAP User Bind Service

The service allows a network address and application contexts to be associated with a stream. It allows the MAP user to negotiate the number of dialogues that can remain outstanding for that MAP user (a dialogue is considered unacknowledged while it is awaiting a corresponding response or abort from the MAP user). This service also defines a mechanism that allows a stream (bound to a network address of the MAP user) to be reserved to handle remote initiated dialogues only. This stream is referred to as the listener stream.

The sequence of primitives for the MAP user bind service is shown in Figure 3.

Figure 2. Sequence of Primitives;
MAP User Bind Service

3.1.3 MAP User Unbind Service

This service allows the MAP user to be unbound from a network address and application context.

The sequence of primitives for MAP user unbind service is shown in Figure 4.

Figure 4. Sequence of Primitives;
MAP User Unbind & Receipt Acknowledgement Services

3.1.4 Receipt Acknowledgement Service

An example showing the sequence of primitives for successful receipt acknowledgement is depicted in Figure 4.

3.1.5 Options Management Service

This service allows the MAP user to manage the QOS parameter values and other options associated with the MAP provider.

Figure 5 shows the sequence of primitives for MAP options management service.

Figure 5. Sequence of Primitives;
Options Management Service.

3.1.6 Error Acknowledgement Service

Figure 6 shows the sequence of primitives for the error acknowledgement service.

Figure 6. Sequence of Primitives;
Error Acknowledgement Service.

3.2 Dialogue Handling Definition

This section describes the required MAP service primitives that define the Dialogue Handling interface.

The queue model for Dialogue Handling is discussed in more detail in CCITT X.219.

The queue module represents the operation of a MAP dialogue in the abstract by a pair of queues linking the two MAP user entities. There is one queue for each direction of information flow. Each queue represents a flow control function in one direction of transfer. The ability of a user to add objects to a queue will be determined by the behaviour of the user removing objects from that queue, and the state of the queue. The pair of queues is considered to be available for each potential MAP dialogue. Objects that are entered or removed from the queue are either as a result of interactions at the two MAP users, or as a result of MAP provider initiatives.

Table Y shows the ordering relationships among the queue model objects.


Table Y. Ordering Relationship Between Queue Model Objects.

Object X
Object Y Open Components Delimiter Close Abort
Open N/A DES
Components N/A DES
Deilmiter N/A DES
Close N/A DES
Abort N/A N/A N/A

AA
Indicates that Object X is defined to be able to advance ahead of preceding Object Y.

DES
Indicates that Object X is defined to be destructive with respect to the preceding Object Y.

Indicates that Object X is neither destructive with respect to Object Y, nor able to advance ahead of Object Y.

N/A
Indicates that Object X will not occur in a position succeeding Object Y in a valid state of a queue.

3.2.1 Dialogue Establishment Phase

A pair of queues is associated with a MAP dialogue between two MAP user entities when the MAP provider receives a MAP_OPEN_REQ primitive at one of the MAP user interfaces resulting in the “begin” object being entered into the queue. The queues will remain associated with the MAP dialogue until a MAP_CLOSE_REQ or indication primitive (resulting in an “end” object) is either entered or removed from a queue. Similarly, in the queue from the called MAP user, objects can be entered into the queue only after the “continue” object associated with the MAP_OPEN_RES primitive has been entered into the queue. Alternatively, the called MAP user can enter a an “end” or “abort” object into the queue instead of the “continue” object to terminate the dialogue.

The MAP dialogue establishment procedure will fail if the MAP provider is unable to establish a TCAP dialogue, or if the destination MAP user is unable to accept the MAP_OPEN_IND.

3.2.1.1 User Primitives for Successful MAP Dialogue Establishment
3.2.1.2 Provider Primitives for Successful MAP Dialogue Establishment

The sequence of primitives for a successful MAP dialogue establishment is defined by the time sequence diagram as shown in Figure 7. The sequence of primitives for the MAP dialogue response token value determination is shown in Figure 8 (procedures for MAP response token value determination are discussed later).

Figure 7. Sequence of Primitives;
Successful MAP Dialogue Establishment

Figure 8. Sequence of Primitives;
MAP Dialogue Response Token Value Determination

3.2.2 Dialogue Component Transfer Phase

Flow control within the MAP dialogue is performed by management of the queue capacity, and by allowing objects of certain types to be inserted to the queues as shown in Table 4.

Table 4. Flow Control Relationship Between Queued Model Objects

Object X
Object Y Class 1 Class 2 Class 3 Class 4
Class 1 Yes Yes Yes Yes
Class 2 Yes Yes Yes Yes
Class 3 Yes Yes Yes Yes
Class 4 Yes Yes Yes Yes

Yes
The addition of Object X may prevent further addition of Object Y.

No
The addition of Object X may not prevent the addition of Object Y.
3.2.2.1 User Primitives for Component Transfer
3.2.2.2 Provider Primitives for Component Transfer

Figure 9 shows the sequence of primitives for successful component transfer. The sequence of primitives may remain incomplete if a MAP_ABORT or MAP_CLOSE primitive occurs.

Figure 9. Sequence of Primitives;
Component Transfer.

The sequence of primitives in a successful Class 1 operation is defined in the time sequence diagram as shown in Figure 10.

Figure 10. Sequence of Primitives;
Successful Confirmation of Receipt.

The sequence of primitives as shown above may remain incomplete if a MAP_UABORT, MAP_PABORT or MAP_CLOSE primitive occurs (see Table 3). A MAP user must not issue a Service Specific Response primitive if no Service Specific Indication primitive for a confirmed service has been received, or if all such Service Specific Indication primitives have been previously confirmed. Following a MAP_UABORT or MAP_PABORT, a MAP user may not issue a Service Specific Response to confirm outstanding Service Specific Indication primitives received before the abort procedure was signalled.

Note — The witholding of confirmation of a service by a MAP user can have an effect on the attainable throughput.

The sequence of primitives for component transfer is shown in the time sequence diagram in Figure 11. This sequence of primitives may remain incomplete if a MAP_ABORT or MAP_CLOSE primitive is issued.

Figure 11. Sequence of Primitives;
Expedited Data Transfer.

3.2.3 Dialogue Termination Phase

The MAP dialogue release procedure is initialized by the insertion of an “abort” or “end” object into the queue. As shown in Table 3, the “abort” is destructive with respect to other objects in the queue, and eventually results in the emptying of queues and termination of the MAP dialogue.

The sequence of primitivies depends on the origin of the release action. The sequence of primitives may be:

  1. invoked by one MAP user, with a request from that MAP user leading to an indication to the other;
  2. invoked by both MAP users, with a request from each of the MAP users;
  3. invoked by the MAP provider, with an indication to each of the MAP users;
  4. invoked independently by one MAP user and the MAP provider, with a request from the originating MAP user and an indication to the other.
3.2.3.1 User Primitives for Dialogue Abort
3.2.3.2 Provider Primitives for Dialogue Abort

The sequence of primitives are shown in the time sequence diagrams in n Figures 16, 17, 18 and 19.

Figure 16. Sequence of Primitives;
MAP User Invoked Abort.

Figure 17. Sequence of Primitives;
Simultaneous MAP User Invoked Abort.

Figure 18. Sequence of Primitives;
MAP Provider Invoked Abort.

Figure 19. Sequence of Primitives;
Simultaneous MAP User and MAP Provider Invoked Abort.

A MAP user may reject a MAP association establishment by issuing a MAP_ABORT_REQ. The originator parameter in the MAP_UABORT_IND primitive will indicate MAP user invoked release. The sequence of events is shown in Figure 20.

Figure 20. Sequence of Primitives;
MAP User Rejection of a MAP Association Establishment Attempt.

If the MAP provider is unable to establish a MAP association, it indicates this to the requester by a MAP_PABORT_IND. The originator in this primitive indicates a MAP provider invoked release. This is shown in Figure 21.

Figure 21. Sequence of Primitives;
MAP Provider Rejection of a MAP Association Establishement Attempt.

4 MAPI Primitives

This section describes the format and parameters of the MAPI primitives (Appendix A shows the mapping of the MAPI primitives to the primitives defined in 3GPP TS 29.002 and ANSI41-D). Also, it discusses the states in which the primitive is valid, the resulting state and the acknowledgement that the primitive expects. (The state/event tables for these primitives are shown in Appendix B. The precedence tables for the MAPI primitives are shown in Appendix C.) Rules for 3GPP and ANSI conformance are described in Addendum to this document.


Tabel 4. Local Management Service Primitives.

SERVICE PRIMITIVE PARAMETERS
Information MAP_INFO_REQ
Reporting MAP_INFO_ACK
Bind MAP_BIND_REQ
MAP_BIND_ACK
Unbind MAP_UNBIND_REQ
Error MAP_ERROR_ACK
Success MAP_OK_ACK

Tables 5, 6 and 7 provide a summary of the MAP primitives and their parameters.


Table 5. Association Establishment MAP Service Primitives.

SERVICE PRIMITIVE PARAMETERS
Association MAP_OPEN_REQ (Application context name, Destination address, Destination reference, Originating address, Originating reference, Specific information)
Establishment MAP_OPEN_IND (Application context name, Destination address, Destination reference, Originating address, Originating reference, Specific information)
MAP_OPEN_RES (Application context name, Responding address, Result, Refuse-reason, Specific information)
MAP_OPEN_CON (Application context name, Responding address, Result, Refuse-reason, Specific information, Provider-error)


Table 6. Component Transfer Service Primitives.

SERVICE PRIMITIVE PARAMETERS
Service MAP_XXX_REQ (Specific information)
Specific MAP_XXX_IND (Specific information)
Primitives MAP_XXX_RES (Specific information)
MAP_XXX_CON (Specific information)
Delimitation MAP_DELIM_REQ (none)
MAP_DELIM_IND (none)


Table 7. Association Termination MAP Service Primitives.

SERVICE PRIMITIVE PARAMETERS
Association MAP_CLOSE_REQ (Release method, Specific information)
Termination MAP_CLOSE_IND (Specific information)
Assocation MAP_ABORT_REQ (User reason, Diagnostic information, Specific information)
Abort MAP_UABORT_IND (User reason, Diagnostic information, Specific information)
Abort MAP_PABORT_IND (Provider reason, Source)
Notice MAP_NOTICE_IND ()


Table 8. Secure Transport Primitives.

SERVICE PRIMITIVE PARAMETERS
Class 1 MAP_STC1_REQ
MAP_STC1_IND
Class 2 MAP_STC2_REQ
MAP_STC2_IND
Class 3 MAP_STC3_REQ
MAP_STC3_IND
Class 4 MAP_STC4_REQ
MAP_STC4_IND

4.1 Management Primitives

These primitives appy to all protocol classes.

4.1.1 Information Request

MAP_INFO_REQ

This primitive requests the MAP provider to return the values of all supported protocol parameters (see MAP_INFO_ACK), and also the current state of the MAP provider. 2

Format

The format of the message is one `M_PROTO' message block and its structure is as follows:

     typedef struct {
             ulong PRIM_type;    /* always MAP_INFO_REQ */
     } MAP_info_req_t;
     
Parameters
PRIM_type:
Indicates the primitive type.
Valid States

This primitive is valid in any state where a local acknowledgement is not pending.

New State

The new state remains unchanged from the old state.

Acknowledgements

This primitive requires the MAP provider to generate one of the following acknowledgements upon receipt of the pirmitive:

4.1.2 Information Acknowledgement

MAP_INFO_ACK

This primitive indicates to the MAP users any relevant protocol-dependent parameters. 3 It should be initiated in response to the MAP_INFO_REQ primitive described above in MAP_INFO_REQ.

Format

The format of the message is one `M_PCPROTO' message block. The format of the `M_PCPROTO' message block is as follows:

     typedef struct {
         ulong PRIM_type;        /* always MAP_INFO_ACK */
         ulong TSDU_size;        /* maximum TSDU size */
         ulong ETSDU_size;       /* maximum ETSDU size */
         ulong CDATA_size;       /* connect data size  */
         ulong DDATA_size;       /* disconnect data size */
         ulong ADDR_size;        /* address size */
         ulong ADDR_length;      /* address length */
         ulong ADDR_offset;      /* address offset */
         ulong QOS_length;       /* default QOS values length */
         ulong QOS_offset;       /* default QOS values offset */
         ulong QOS_range_length; /* QOS range length */
         ulong QOS_range_offset; /* QOS range offset */
         ulong OPTIONS_flags;    /* bit masking for options */
         ulong TIDU_size;        /* transaction interface data size */
         long  SERV_type;        /* service type */
         ulong CURRENT_state;    /* current state */
         ulong PROVIDER_type;    /* type of provider */
         ulong NODU_size;        /* optimal TSDU size */
         ulong PROTOID_length;   /* length of bound protocol ids */
         ulong PROTOID_offset;   /* offset of bound protocol ids */
         ulong MAPI_version;     /* supported MAPI version number */
     } MAP_info_ack_t;
     
Parameters
PRIM_type
Indicates the primitive type.

TSDU_size
Specifies the maximum size (in octets) of Transaction Service User Data supported by the MAP provider.

ETSDU_size
Specifies the maximum size (in octets) of Expedited Transaction Service User Data supported by the MAP provider.

CDATA_size
Specifies the maximum number of octets of data that may be associated with a transaction initiation primitive for operations class 1, 2 and 3 operation.

DDATA_size
Specifies the maximum number of octets of data that may be associated with a transaction termination primitive for operations class 1, 2 and 3 operation.

ADDR_size
Specifies the maximum size (in decimal digits) of a network address.

ADDR_length, ADDR_offset
Specifies the length in bytes and offset from the beginning of the M_PCPROTO message block of the network address bound on the stream on which the MAP_INFO_REQ was issued (a network address is bound to a stream via a MAP_BIND_REQ).

QOS_length, QOS_offset

QOS_range_length, QOS_range_offset

OPTIONS_flags

TIDU_size4
This is the size of the MAP protocol interface data unit, and should not exceed the tunable system limit, if non-zero, for the size of a STREAMS message.

SERV_type
This field specified the service type supported by the MAP provider, and is one of the following:

CURRENT_state
THis is the current state of the MAP provider.

PROVIDER_type
This field specifies additional properties specific to the MAP provider and may alter the way the MAP user communicates. MAP providers supporting the features of XTI in XPG4 and beyond must send up a version number as specified below. The following flags may be set by the provider:
SENDZERO
This flag indicates that the MAP provider support the sending of zero-length (component-less) TSDUs.

XPG4_1
This indicates that the MAP provider conforms to XTI in XPG4 and supports primitives MAP_ADDR_REQ and MAP_ADDR_ACK.

TODU_size

PROTOID_length, PROTOID_offset

MAPI_version
Flags
Valid States
New State
Rules

The following rules apply when the type of service is operations class 4:

4.1.3 Bind Application Context Request

MAP_BIND_REQ

This primitive requests that the MAP provider bind a protocol address to the stream, negotiate the number of dialogue open indications allowed to be outstanding by the MAP provider for the specified protocol address, and activate 5 the stream associated with the protocol address.

Format

The format of the message is one `M_PROTO' message block. The format of the `M_PROTO' message block is as follows:

     typedef struct {
         ulong PRIM_type;                /* always MAP_BIND_REQ */
         ulong ADDR_length;              /* length of protocol address */
         ulong ADDR_offset;              /* offset of protocol address */
         unsigned long DIAIND_number;    /* requested number of dialogue indications to be queued */
     } MAP_bind_req_t;
     
Parameters
PRIM_type
Indicates the primitive type.

ADDR_length
The length 6 of the protocol address to be bound to the stream.

ADDR_offset
The offset from the beiginning of the `M_PROTO' block where the protocol address begins. The address in the `M_PROTO' message block is however, aligned the same as it was received from the MAP user.

DIAIND_number
7 The requested number of connection indications 8 allowed to be outstanding by the MAP provider for the specified protocol address.
Flags
Valid States
New State
Acknowledgements

This primitive requires the MAP provider to geenrate one of the following acknowledgements upon receipt of the primitive, and the MAP user must wait for the acknowledgement before issuing any other primitive:

4.1.4 Bind Application Context Acknowledgement

MAP_BIND_ACK

This primitive indicates to the MAP user that the specified protoocl address has been bound to the stream, that the specified number of dialogue open indications are allowed to be queued by the MAP provider for th specified protocol address, and that the stream associated with the specified protocol address has ben activated.

Format

The format of the message is one `M_PCPROTO' message block. The format of the `M_PCPROTO' message block is as follows:

     typedef struct {
         long PRIM_type;         /* always MAP_BIND_ACK */
         long ADDR_length;       /* length of address -- see note in sec. 1.4 */
         long ADDR_offset;       /* offset of address */
         ulong DIAIND_number;    /* dialogue open indications to be queued */
     } MAP_bind_ack_t;
     
Parameters
PRIM_type

ADDR_length

ADDR_offset

DIAIND_number
Flags
Valid States
New State
Rules

The following rules apply to the binding of the specified protocol address to the stream:

4.1.5 Unbind Application Context Request

MAP_UNBIND_REQ

This primitive requests that the MAP provider unbind the protocol address associated with the stream and deactivate the stream.

Format

The format of the message is one `M_PROTO' message block. The format of the `M_PROTO' mesage block is as follows:

     typedef struct {
         long PRIM_type;         /* always MAP_UNBIND_REQ */
     } MAP_unbind_req_t;
     
Parameters
PRIM_type:
Indicates primitive type.
Valid States
New State
Acknowledgements

This primitive requires the MAP provider to generate the following acknowledgements upon receipt of the primitive and that the MAP user must wait for the acknowledgement before issuing any other primitives:

4.1.6 Options Management Request

MAP_OPTMGMT_REQ

This primitive allows the MAP user to manage the options associated with the stream.

Format

The format of the message is one `M_PROTO' message block. The format of the `M_PROTO' message block is as follows:

     typedef struct {
         long PRIM_type;         /* always MAP_OPTMGMT_REQ */
         long OPT_length;        /* options length */
         long OPT_offset;        /* options offset */
         long MGMT_flags;        /* flags */
     } MAP_optmgmt_req_t;
     
Parameters
PRIM_type
Indicates the primitive type.

OPT_length
The length of the protocol options associated with the primitive.

OPT_offset
The offset from the beginning of the `M_PROTO' message block where the options begin. The proper alignment of options is not guaranteed. The options are, however, aligned the same as they were received from the MAP user.

MGMT_flags
The flags which define the request made by the MAP user.
Flags
T_NEGOTIATE
Negotiate and set the options with the MAP provider.

T_CHECK
Check the validity of the specified options.

T_CURRENT
Return the options currently in effect.

T_DEFAULT
Return the default options.
Rules

For the rules governing the requests made by this primitive, see the MAP_OPTMGMT_ACK primitive described in MAP_OPTMGMT_ACK.

Valid States
New State
Acknowledgements

This primitive requires the MAP provider to generate one of the following acknowledgements upon receipt of the primitive and that the MAP user await the acknowledgement before issuing any othe primitives: