Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

Related

Package

Manual

Status

FAQ

Library

SDLI Tech Spec

SDTI Tech Spec

SLI Tech Spec

MTPI Tech Spec

TRI Tech Spec

TCI Tech Spec

ISUPI Tech Spec

BICCI Tech Spec

MAPI Tech Spec

CDI Tech Spec

DLPI Tech Spec

NPI Tech Spec

TPI Tech Spec

WAN Tech Spec

LLI Tech Spec

NLI Tech Spec

CHI Tech Spec

MXI Tech Spec

MGI Tech Spec

XCC Tech Spec

XGCP Tech Spec

XMAP Tech Spec

Resources

Packages

Sys Req

Repositories

Download

Mailing Lists

Browse Source

CVS Archive

Bug Reports

Library

Hardware

Vendor Links

Home

Overview

Status

Documentation

Resources

About

News

MAPI Technical Specification

Description: OpenSS7 Resources Library.

A PDF version of this document is available here.

Mobile Application Part Interface (MAPI)

Mobile Application Part Interface (MAPI) Specification

About This Manual

This is Edition 7.20141001, last updated 2014-10-25, of The Mobile Application Part Interface (MAPI) Specification, for Version 1.1 release 7.20141001 of the OpenSS7 package.


Preface

Notice

Software in this document and related software is released under the AGPL (see GNU Affero General Public License). Please note, however, that there are different licensing terms for some of the manual package and some of the documentation. Consult permission notices contained in the documentation of those components for more information.

This document is released under the FDL (see GNU Free Documentation License) with no invariant sections, no front-cover texts and no back-cover texts.

Abstract

This document is a Specification 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).

This document specifies a Mobile Application Part Interface (MAPI) Specification in support of the OpenSS7 Mobile Application Part (MAP) protocol stacks. It provides abstraction of the Mobile Application Part interface to these components as well as providing a basis for Mobile Application Part control for other Mobile Application Part protocols.

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). This document is intended to provide information for writers of OpenSS7 Mobile Application Part Interface (MAPI) applications as well as writers of OpenSS7 Mobile Application Part Interface (MAPI) Users.

Audience

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

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 current version of this specification is normally distributed with the OpenSS7 package, openss7-1.1.7.20141001.1

Version Control

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. 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. OpenSS7 Corporation reserves the right to revise this software and documentation for any reason, including but not limited to, conformity with standards promulgated by various agencies, utilization of advances in the state of the technical arts, or the reflection of changes in the design of any techniques, or procedures embodied, described, or referred to herein. OpenSS7 Corporation is under no obligation to provide any feature listed herein.

$Log: mapi.texi,v $
Revision 1.1.2.2  2011-02-07 02:21:40  brian
- updated manuals

Revision 1.1.2.1  2009-06-21 10:53:58  brian
- added files to new distro

ISO 9000 Compliance

Only the TeX, texinfo, or roff source for this maual is controlled. An opaque (printed, postscript or portable document format) version of this manual is a UNCONTROLLED VERSION.

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation including all implied warranties of merchantability, fitness for a particular purpose, non-infrincement, or title; that the contents of the manual 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 or contract, negligence or other tortious action, arising out of or in connection with any use of this documentation or the performance or implementation of the contents thereof.

U.S. Government Restricted Rights

If you are licensing this Software on behalf of the U.S. Government ("Government"), the following provisions apply to you. If the Software is supplied by the Department of Defense ("DoD"), it is classified as "Commercial Computer Software" under paragraph 252.227-7014 of the DoD Supplement to the Federal Aquisition Regulations ("DFARS") (or any successor regulations) and the Government is acquiring only the license rights granded herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency of the Government other than DoD, it is classified as "Restricted Computer Software" and the Government’s rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplerment to the FAR (or any successor regulations).

Acknowledgements

The OpenSS7 Project was funded in part by:

Thanks to the subscribers to and sponsors of The OpenSS7 Project. Without their support, open software like this would not be possible.

As with most open source projects, this project would not have been possible without the valiant efforts and productive software of the Free Software Foundation, the Linux Kernel Community, and the open source software movement at large.


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

  • 3GPP TS 29.002 Mobile Application Part (MAP)
  • 3GPP TS 29.202
  • 1993 ITU-T Q.771 Recommendation
  • System V Interface Definition, Issue 2 – Volume 3
  • CCITT Recommendation X.200
  • CCITT Recommendation X.201
  • — System V Interface Definition, Issue 2 - Volume 3

1.1.1 Role

This document specifies an interface that supports 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 in 3GPP TS 29.002 V6.6.0.)

Figure 1 – Module of the MAP Interface
mapi_fig

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. 2

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.

  • Local Management
  • Common Services
  • Mobility Services

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
ServiceInvokerPerformer
MAP_OPEN
MAP_DELIM
MAP_CLOSE
MAP_UABORTUserUser
MAP_PABORTProviderUser
MAP_NOTICE
MAP_STC1
MAP_STC2
MAP_STC3
MAP_STC4

2.2.3 Specific Services



Table 3. Specific Services
ServiceInvokerPerformer
MAP_ACTSSMSCVLR
VLRHLR
MAP_ACTTMHLRVLR or SGSN
MAP_ALERTSCHLRSMS-IWMSC
MAP_ANYMODSCFHLR
PNAVLR or SGSN
MAP_ANYSUBSCFHLR
MAP_AUTHVLRMSC
MAP_AUTHFAILVLR or SGSNHLR
MAP_CANCLOCHLRVLR or SGSN
MAP_CKIEMIVLRMSC
MSC or SGSNEIR
MAP_DEACTSSMSCVLR
VLRHLR
MAP_DEACTTMHLRVLR or SGSN
MAP_DELSUBDHLRVLR or SGSN
MAP_ERASECCMSCVLR
VLRHLR
MAP_ERASESSMSCVLR
VLRHLR
MAP_FAILUREGGSNHLR
MAP_FASMSC-AMSC-B
MAP_FCKSSINDHLRVLR
MAP_FGRCSIGAnchor MSCRelay MSC
MAP_MTFSMSSMS-GMSCMSC or SGSN
MAP_MOFSMSMSCSMS-IWMSC
MAP_GETPASSHLRVLR
VLRMSC
MAP_INFORMSCHLRSMS-GMSC
MAP_INSSUBSDHLRVLR or SGSN
MAP_INTERGSSMSCVLR
VLRHLR
MAP_ISTALERTVMSC or GMSCHLR
MAP_ISTCMDHLRVMSC or GMSC
MAP_MMEVENTVLR or SGSNSCF
MAP_MSGPRSPRESHLRGGSN
MAP_SUBSDATAMODHLRSCF
MAP_PREPGCAnchor MSCRelay MSC
MAP_PREPHOMSC-AMSC-B
MAP_PREPSHMSC-BMSC-A
MAP_PROCASMSCVLR
MAP_PROCGCRelay MSCAnchor MSC
MAP_PROCUSSMSCVLR
VLRHLR
MAP_PROVRNHLRVLR
MAP_PROVSLOCGMLCVMSC or SGSN
MAP_PROVSUBIVLRSGSN
MAP_PURGEMSVLR or SGSNHLR
MAP_RDYSMMSCVLR
VLR or SGSNHLR
MAP_REGCCMSCVLR
VLRHLR
MAP_REGPWMSCVLR
VLRHLR
MAP_REGSSMSCVLR
MAP_REMUSRFREEHLRVLR
MAP_SMDELIVSTATSMS-GMSCHLR
MAP_RESETHLRVLR or SGSN
MAP_RESTOREVLRHLR
MAP_SENDGCENDRelay MSCAnchor MSC
MAP_SENDENDMSC-BMSC-A
MAP_SENDAUTHIVLR or SGSNHLR
MAP_SENDIMSIVLRMSC
MAP_SENDIDVLRold VLR
MAP_SENDSMSRISMS-GMSCHLR
MAP_SENDGPRSRIGGSNHLR
MAP_SENDLCSRIGMLCHLR
MAP_SENDRIGMSC or SCFHLR or NPLR
MAP_SETREPHLRVLR
MAP_STATUSVLRHLR
MAP_SUBLOCREPVMSC or SGSNGMLC
MAP_USSDNTFYSCFHLR
HLRVLR
VLRMSC
MAP_USSDREQSCFHLR
HLRVLR
VLRMSC
MAP_UDGPRSLOCSGSNHLR
MAP_UDLOCVLRHLR

2.3 Service Categories

2.3.1 Mobility Management

2.3.1.1 Location Management Services

ServiceInvokerPerformer
MAP_UDLOCVLRHLR
MAP_CANCLOCHLRVLR or SGSN
MAP_SENDIDVLRold VLR
MAP_PURGEMSVLR or SGSNHLR
MAP_UDGPRSLOCSGSNHLR
MAP_MMEVENTVLR or SGSNSCF

2.3.1.2 Paging and Search

ServiceInvokerPerformer
MAP_PAGEVLRMSC
MAP_SEARCHVLRMSC

2.3.1.3 Access Management Services

ServiceInvokerPerformer
MAP_PROCASMSCVLR

2.3.1.4 Handover Services

ServiceInvokerPerformer
MAP_PREPHOMSC-AMSC-B
MAP_SENDENDMSC-BMSC-A
MAP_PROCASMSC-BMSC-A
MAP_FASMSC-AMSC-B
MAP_PREPSHMSC-BMSC-A
MAP_ALLOCHNMSCVLR
MAP_SENDHOREPVLRMSC-B

2.3.1.5 Authentication Management Services

ServiceInvokerPerformer
MAP_AUTHVLRMSC
MAP_SENDAUTHIVLR or SGSNHLR
MAP_AUTHFAILVLR or SGSNHLR

2.3.1.6 Security Management Services

ServiceInvokerPerformer
MAP_SETCMVLRMSC

2.3.1.7 IEMI Managment Services

ServiceInvokerPerformer
MAP_CKIEMIVLRMSC
MSC or SGSNEIR
MAP_GETIEMIVLRMSC

2.3.1.8 Subscriber Management Services

ServiceInvokerPerformer
MAP_INSSUBSDHLRVLR or SGSN
MAP_DELSUBDHLRVLR or SGSN

2.3.1.9 Identity Management Services

ServiceInvokerPerformer
MAP_PROVIMSIVLRMSC
MAP_FNEWIMSIVLRMSC

2.3.1.10 Fault Recovery Services

ServiceInvokerPerformer
MAP_RESETHLRVLR or SGSN
MAP_FCKSSINDHLRVLR
MAP_RESTOREVLRHLR

2.3.1.11 Subscriber Information Services

ServiceInvokerPerformer
MAP_ANYQRYSCFHLR or GMLC or NPLR
MAP_PROVSUBIVLRSGSN
MAP_ANYSUBSCFHLR
MAP_ANYMODSCFHLR
PNAVLR or SGSN
MAP_SUBSDATAMODHLRSCF

2.3.2 Operation and Maintenance

2.3.2.1 Subscriber Tracing Services

ServiceInvokerPerformer
MAP_ACTTMHLRVLR or SGSN
MAP_DEACTTMHLRVLR or SGSN
MAP_TRACESAVLRMSC

2.3.2.2 Miscellaneous Operation and Maintenance Services

ServiceInvokerPerformer
MAP_SENDIMSIVLRMSC

2.3.3 Call Handling

2.3.3.1 Call Handling Services

ServiceInvokerPerformer
MAP_SENDRIGMSC or SCFHLR or NPLR
MAP_PROVRNHLRVLR
MAP_RESUMEVMSCGMSC
MAP_PREPGCAnchor MSCRelay MSC
MAP_PROCGCRelay MSCAnchor MSC
MAP_FGRCSIGAnchor MSCRelay MSC
MAP_SENDGCENDRelay MSCAnchor MSC
MAP_SETREPHLRVLR
MAP_STATUSVLRHLR
MAP_REMUSRFREEHLRVLR
MAP_ISTALERTVMSC or GMSCHLR
MAP-ISTCMDHLRVMSC or GMSC

2.3.4 Supplementary Service

2.3.4.1 Supplementary Service Services

ServiceInvokerPerformer
MAP_REGSSMSCVLR
MAP_ERASESSMSCVLR
VLRHLR
MAP_ACTSSMSCVLR
VLRHLR
MAP_DEACTSSMSCVLR
VLRHLR
MAP_INTERGSSMSCVLR
VLRHLR
MAP_REGPWMSCVLR
VLRHLR
MAP_GETPASSHLRVLR
VLRMSC
MAP_PROCUSSMSCVLR
VLRHLR
MAP_USSDREQSCFHLR
HLRVLR
VLRMSC
MAP_USSDNTFYSCFHLR
HLRVLR
VLRMSC
MAP_SSINVMSC or HLRSCF
MAP_REGCCMSCVLR
VLRHLR
MAP_ERASECCMSCVLR
VLRHLR

2.3.5 SMS Management Services

2.3.5.1 Short Message Service Management Services

ServiceInvokerPerformer
MAP_SENDSMSRISMS-GMSCHLR
MAP_MOFSMSMSCSMS-IWMSC
MAP_SMDELIVSTATSMS-GMSCHLR
MAP_RDYSMMSCVLR
MAP_RDYSMVLR or SGSNHLR
MAP_ALERTSCHLRSMS-IWMSC
MAP_INFORMSCHLRSMS-GMSC
MAP_SENDMTSMSIMSCVLR
MAP_SENDMOSMSIMSCVLR
MAP_MTFSMSSMS-GMSCMSC or SGSN

2.3.6 Network-Requested PDP Context Activation

2.3.6.1 Network-Requested PDP Context Activation Services

ServiceInvokerPerformer
MAP_SENDGPRSRIGGSNHLR
MAP_FAILUREGGSNHLR
MAP_MSGPRSPRESHLRGGSN

2.3.7 Location Service Management

2.3.7.1 Location Service Management Services

ServiceInvokerPerformer
MAP_SENDLCSRIGMLCHLR
MAP_PROVSLOCGMLCVMSC or SGSN
MAP_SUBLOCREPVMSC or SGSNGMLC

2.4 MAP User Entities

2.4.1 Mobile Switching Centre (MSC) Service Sets



Table X. MSC performed services.
ServiceInvokerPerformer
MAP_PAGEVLRMSC
MAP_SEARCHVLRMSC
MAP_SENDHOREPVLRMSC
MAP_AUTHVLRMSC
MAP_SETCMVLRMSC
MAP_CKIEMIVLRMSC
MAP_GETIEMIVLRMSC
MAP_PROVIMSIVLRMSC
MAP_FNEWIMSIVLRMSC
MAP_TRACESAVLRMSC
MAP_SENDIMSIVLRMSC
MAP_ISTCMDHLRMSC
MAP_GETPASSVLRMSC
MAP_USSDREQVLRMSC
MAP_USSDNTFYVLRMSC
MAP_MTFSMSSMS-GMSCMSC
MAP_PROVSLOCGMLCMSC


Table X. MSC invoked services.
ServiceInvokerPerformer
MAP_PROCASMSCVLR
MAP_CKIEMIMSCEIR
MAP_ALLOCHNMSCVLR
MAP_RESUMEMSCGMSC
MAP_ISTALERTMSCHLR
MAP_REGSSMSCVLR
MAP_ERASESSMSCVLR
MAP_ACTSSMSCVLR
MAP_DEACTSSMSCVLR
MAP_INTERGSSMSCVLR
MAP_REGPWMSCVLR
MAP_PROCUSSMSCVLR
MAP_SSINVMSCSCF
MAP_REGCCMSCVLR
MAP_ERASECCMSCVLR
MAP_MOFSMSMSCSMS-IWMSC
MAP_RDYSMMSCVLR
MAP_SENDMTSMSIMSCVLR
MAP_SENDMOSMSIMSCVLR
MAP_SUBLOCREPMSCGMLC


Table X. MSC peer services.
ServiceInvokerPerformer
MAP_PREPHOMSC-AMSC-B
MAP_SENDENDMSC-BMSC-A
MAP_PROCASMSC-BMSC-A
MAP_FASMSC-AMSC-B
MAP_PREPSHMSC-BMSC-A
MAP_PREPGCAnchor MSCRelay MSC
MAP_PROCGCRelay MSCAnchor MSC
MAP_FGRCSIGAnchor MSCRelay MSC
MAP_SENDGCENDRelay MSCAnchor MSC

2.4.2 Home Location Register (HLR) Service Sets



Table 1. HLR performed services.
ServiceInvokerPerformer
MAP_UDLOCVLRHLR
MAP_PURGEMSVLR or SGSNHLR
MAP_UDGPRSLOCSGSNHLR
MAP_SENDAUTHIVLR or SGSNHLR
MAP_AUTHFAILVLR or SGSNHLR
MAP_RESTOREVLRHLR
MAP_ANYQRYSCFHLR
MAP_ANYSUBSCFHLR
MAP_ANYMODSCFHLR
MAP_SENDRIGMSC or SCFHLR
MAP_STATUSVLRHLR
MAP_ISTALERTVMSC or GMSCHLR
MAP_ERASESSVLRHLR
MAP_ACTSSVLRHLR
MAP_DEACTSSVLRHLR
MAP_INTERGSSVLRHLR
MAP_REGPWVLRHLR
MAP_PROCUSSVLRHLR
MAP_REGCCVLRHLR
MAP_ERASECCVLRHLR
MAP_SENDSMSRISMS-GMSCHLR
MAP_SMDELIVSTATSMS-GMSCHLR
MAP_RDYSMVLR or SGSNHLR
MAP_SENDGPRSRIGGSNHLR
MAP_FAILUREGGSNHLR
MAP_USSDREQSCFHLR
MAP_SENDLCSRIGMLCHLR
MAP_USSDNTFYSCFHLR


Table 2. HLR invoked services.
ServiceInvokerPerformer
MAP_CANCLOCHLRVLR or SGSN
MAP_INSSUBSDHLRVLR or SGSN
MAP_DELSUBDHLRVLR or SGSN
MAP_RESETHLRVLR or SGSN
MAP_FCKSSINDHLRVLR
MAP_SUBSDATAMODHLRSCF
MAP_ACTTMHLRVLR or SGSN
MAP_DEACTTMHLRVLR or SGSN
MAP_PROVRNHLRVLR
MAP_SETREPHLRVLR
MAP_REMUSRFREEHLRVLR
MAP_ISTCMDHLRVMSC or GMSC
MAP_GETPASSHLRVLR
MAP_USSDREQHLRVLR
MAP_USSDNTFYHLRVLR
MAP_SSINVHLRSCF
MAP_ALERTSCHLRSMS-IWMSC
MAP_INFORMSCHLRSMS-GMSC
MAP_MSGPRSPRESHLRGGSN

2.4.3 Visitor Location Register (VLR) Service Sets



Table 3. VLR performed services.
ServiceInvokerPerformer
MAP_CANCLOCHLRVLR
MAP_PROCASMSCVLR
MAP_ALLOCHNMSCVLR
MAP_INSSUBSDHLRVLR
MAP_DELSUBDHLRVLR
MAP_SENDIDVLRold VLR
MAP_RESETHLRVLR
MAP_FCKSSINDHLRVLR
MAP_ANYMODPNAVLR
MAP_ACTTMHLRVLR
MAP_DEACTTMHLRVLR
MAP_PROVRNHLRVLR
MAP_SETREPHLRVLR
MAP_REMUSRFREEHLRVLR
MAP_REGSSMSCVLR
MAP_ERASESSMSCVLR
MAP_ACTSSMSCVLR
MAP_DEACTSSMSCVLR
MAP_INTERGSSMSCVLR
MAP_REGPWMSCVLR
MAP_GETPASSHLRVLR
MAP_PROCUSSMSCVLR
MAP_USSDREQHLRVLR
MAP_USSDNTFYHLRVLR
MAP_REGCCMSCVLR
MAP_ERASECCMSCVLR
MAP_RDYSMMSCVLR
MAP_SENDMTSMSIMSCVLR
MAP_SENDMOSMSIMSCVLR


Table 4. VLR invoked services.
ServiceInvokerPerformer
MAP_UDLOCVLRHLR
MAP_SENDIDVLRold VLR
MAP_PURGEMSVLRHLR
MAP_MMEVENTVLRSCF
MAP_PAGEVLRMSC
MAP_SEARCHVLRMSC
MAP_SENDHOREPVLRMSC-B
MAP_AUTHVLRMSC
MAP_SENDAUTHIVLRHLR
MAP_AUTHFAILVLRHLR
MAP_SETCMVLRMSC
MAP_CKIEMIVLRMSC
MAP_GETIEMIVLRMSC
MAP_PROVIMSIVLRMSC
MAP_FNEWIMSIVLRMSC
MAP_RESTOREVLRHLR
MAP_PROVSUBIVLRSGSN
MAP_TRACESAVLRMSC
MAP_SENDIMSIVLRMSC
MAP_STATUSVLRHLR
MAP_ERASESSVLRHLR
MAP_ACTSSVLRHLR
MAP_DEACTSSVLRHLR
MAP_INTERGSSVLRHLR
MAP_REGPWVLRHLR
MAP_GETPASSVLRMSC
MAP_PROCUSSVLRHLR
MAP_USSDREQVLRMSC
MAP_USSDNTFYVLRMSC
MAP_REGCCVLRHLR
MAP_ERASECCVLRHLR
MAP_RDYSMVLRHLR

2.4.4 Equipment Identity Register (EIR) Service Sets



Table X. EIR performed services.
ServiceInvokerPerformer
MAP_CKIEMIMSC or SGSNEIR

2.4.5 Serving GPRS Support Node (SGSN) Service Sets



Table X. SGSN performed services.
ServiceInvokerPerformer
MAP_CANCLOCHLRSGSN
MAP_INSSUBSDHLRSGSN
MAP_DELSUBDHLRSGSN
MAP_RESETHLRSGSN
MAP_PROVSUBIVLRSGSN
MAP_ANYMODPNASGSN
MAP_ACTTMHLRSGSN
MAP_DEACTTMHLRSGSN
MAP_MTFSMSSMS-GMSCSGSN
MAP_PROVSLOCGMLCSGSN


Table X. SGSN invoked services.
ServiceInvokerPerformer
MAP_PURGEMSSGSNHLR
MAP_UDGPRSLOCSGSNHLR
MAP_MMEVENTSGSNSCF
MAP_SENDAUTHISGSNHLR
MAP_AUTHFAILSGSNHLR
MAP_CKIEMISGSNEIR
MAP_RDYSMSGSNHLR
MAP_SUBLOCREPSGSNGMLC

2.4.6 Gateway GPRS Support Node (GGSN) Service Sets



Table X. GGSN performed services.
ServiceInvokerPerformer
MAP_MSGPRSPRESHLRGGSN


Table X. GGSN invoked services.
ServiceInvokerPerformer
MAP_SENDGPRSRIGGSNHLR
MAP_FAILUREGGSNHLR

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



Table X. SMS-IWMSC performed services.
ServiceInvokerPerformer
MAP_MOFSMSMSCSMS-IWMSC
MAP_ALERTSCHLRSMS-IWMSC

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



Table X. SMS-GMSC performed services.
ServiceInvokerPerformer
MAP_INFORMSCHLRSMS-GMSC


Table X. SMS-GMSC invoked services.
ServiceInvokerPerformer
MAP_SENDSMSRISMS-GMSCHLR
MAP_SMDELIVSTATSMS-GMSCHLR
MAP_MTFSMSSMS-GMSCMSC or SGSN

2.4.9 Gateway Mobile Location Center (GMLC) Service Sets



Table X. GMLC performed services.
ServiceInvokerPerformer
MAP_ANYQRYSCFGMLC
MAP_SUBLOCREPVMSC or SGSNGMLC


Table X. GMLC invoked services.
ServiceInvokerPerformer
MAP_SENDLCSRIGMLCHLR
MAP_PROVSLOCGMLCVMSC 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.

  • MAP_INFO_REQ: This primitive requests that the MAP provider return the values of all the supported protocol parameters. This request may be invoked during any phase.
  • MAP_INFO_ACK: This primitive is in response to the MAP_INFO_REQ primitive and returns the values of the supported protocol parameters to the MAP user.

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.

  • MAP_BIND_REQ: This primitive requests that the MAP user be bound to a particular network address and application context, and negotiate the number of allowable outstanding open indications for that address.
  • MAP_BIND_ACK: This primitive is in response to the MAP_BIND_REQ primitive and indicates to the user that the specified MAP user has been bound to a network address and application context.

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.

  • MAP_UNBIND_REQ: This primitive requests that the MAP user be unbound from the network address and application context(s) to which it was previously bound.

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

  • MAP_OK_ACK: This primitive indicates to the MAP user that the previous MAP user originated primitive was received successfully by the MAP provider.

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.

  • MAP_OPTMGMT_REQ: This primitive allows the MAP user to select default values for QoS parameters within the range supported by the MAP provider, and to indicate the default selection of additional options supported by 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

  • MAP_ERROR_ACK: This primitive indicates to the MAP user that a non-fatal error has occurred in the last MAP user originated request or response primitive (listed in Figure 6), on the stream.

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.

  • A queue is empty until a dialogue object has been entered and can be returned to this state, with loss of its contents, by the MAP provider.
  • Objects can be entered into a queue as a result of the actions of the source MAP user, subject to control by the MAP provider.
  • Objects may also be entered into a queue by the MAP provider.
  • Objects are removed from the queue under the control of the MAP user in n the same order as they were entered except:
    • — if the object is of a type defined to be able to advance ahead of the preceding object (however, no object is defined to be able to advance ahead of another object of the same type), or
    • — if the following object is defined to be destructive with respect to the preceding object on the queue. If necessary, the last object on the queue will be deleted to allow a destructive object to be entered – the will therefore always be added to the queue. For example, “abort” objects are defined to be destructive with respect to all other objects.

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


Table Y. Ordering Relationship Between Queue Model Objects.
Object X
Object YOpenComponentsDelimiterCloseAbort
OpenN/ADES
ComponentsN/ADES
DeilmiterN/ADES
CloseN/ADES
AbortN/AN/AN/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

  • MAP_OPEN_REQ: This primitive requests that the MAP provider establish a dialogue to the specified destination under an application context.
  • MAP_OPEN_RES: This primitives requests that the MAP provider accept a previous dialogue indication.

3.2.1.2 Provider Primitives for Successful MAP Dialogue Establishment

  • MAP_OPEN_IND: This primitive indicates to the MAP user that a dialogue request has been made within an application context by a user at the specified source address.
  • MAP_OPEN_CON: This primitive indicates to the MAP user that a dialogue request has been confirmed on the specified responding address.

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 YClass 1Class 2Class 3Class 4
Class 1YesYesYesYes
Class 2YesYesYesYes
Class 3YesYesYesYes
Class 4YesYesYesYes
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

  • Service Specific Requests: These primitives request that the MAP provider invoke a service and transfer the specified (and any subsequent) components.
  • Service Specific Responses: These primitives request that the MAP provider return result for a service invocation and transfer the specified (and any subsequent) components.
  • MAP_DELIM_IND: This primitive requests that the MAP provider deliver any accumulated components from previous service specific request or response primitives.

3.2.2.2 Provider Primitives for Component Transfer

  • Service Specific Indications: These primitives indicate to the MAP user an invocation and the indicated (and any subsequent) components.
  • Service Specific Confirmations: These primitives indicate to the MAP user a return result and the indicated (and any subsequent) components.
  • MAP_DELIM_IND: This primitive indicates that the MAP provider has delivered any accumulated components belonging to the previous service specific indication or confirmation primitive.

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

  • MAP_ABORT_REQ: This primitive requests that the MAP provider deny an outstanding request for an association (MAP_OPEN_IND) or abort an existing association.

3.2.3.2 Provider Primitives for Dialogue Abort

  • MAP_UABORT_IND: This primitive indicates to the MAP user that either a request for association has been denied or an existing association has been terminated.
  • MAP_PABORT_IND: This primitive indicates to the MAP user that either a request for association has been denied or an existing association has been terminated.

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.
SERVICEPRIMITIVEPARAMETERS
InformationMAP_INFO_REQ
ReportingMAP_INFO_ACK
BindMAP_BIND_REQ
MAP_BIND_ACK
UnbindMAP_UNBIND_REQ
ErrorMAP_ERROR_ACK
SuccessMAP_OK_ACK

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


Table 5. Association Establishment MAP Service Primitives.
SERVICEPRIMITIVEPARAMETERS
AssociationMAP_OPEN_REQ(Application context name, Destination address, Destination reference, Originating address, Originating reference, Specific information)
EstablishmentMAP_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.
SERVICEPRIMITIVEPARAMETERS
ServiceMAP_XXX_REQ(Specific information)
SpecificMAP_XXX_IND(Specific information)
PrimitivesMAP_XXX_RES(Specific information)
MAP_XXX_CON(Specific information)
DelimitationMAP_DELIM_REQ(none)
MAP_DELIM_IND(none)

Table 7. Association Termination MAP Service Primitives.
SERVICEPRIMITIVEPARAMETERS
AssociationMAP_CLOSE_REQ(Release method, Specific information)
TerminationMAP_CLOSE_IND(Specific information)
AssocationMAP_ABORT_REQ(User reason, Diagnostic information, Specific information)
AbortMAP_UABORT_IND(User reason, Diagnostic information, Specific information)
AbortMAP_PABORT_IND(Provider reason, Source)
NoticeMAP_NOTICE_IND()

Table 8. Secure Transport Primitives.
SERVICEPRIMITIVEPARAMETERS
Class 1MAP_STC1_REQ
MAP_STC1_IND
Class 2MAP_STC2_REQ
MAP_STC2_IND
Class 3MAP_STC3_REQ
MAP_STC3_IND
Class 4MAP_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. 3

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:

  • Successful: Acknowledgement of the primitive with the MAP_INFO_ACK primitive described in MAP_INFO_ACK.
  • Non-fatal Errors: There are no errors associated with the issuance of this primitive.

4.1.2 Information Acknowledgement

MAP_INFO_ACK

This primitive indicates to the MAP users any relevant protocol-dependent parameters. 4 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_size5

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:

  • — The ETSDU_size, CDATA_size and DDATA_size fields should be ‘-2’.
  • — The TSDU_size should be equal to the TIDU_size.

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 6 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 7 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

8 The requested number of connection indications 9 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:

  • Successful: Correct acknowledgement of the primitive is indicated with the MAP_BIND_ACK primitive described in MAP_BIND_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TBADADDR

    This indicates that the protocol address was in an incorrect format or the address contained illegal information. It is not indended to indicate protocol errors.

    TNOADDR

    This indicates that the MAP provider could not allocate an address.

    TACCES

    This indicates that the user did not have proper permissions for the use of the requested address.

    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.

    TADDRBUSY

    This indicated that the requested address is already in use.


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:

  • — If the ADDR_length

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:

  • Successful: Correct acknowledgement of the primitive is indicated with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occurred and the UNIX system error is indicated in the primitive.


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:

  • Successful: Acknowledgement of the primitive with the MAP_OPTMGMT_ACK primitive described in MAP_OPTMGMT_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TACCES

    This indicates that the user did not have proper permissions for the use of the requested options.

    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TBADOPT

    This indicates that the options as specified were in an incorrect format, or they contained illegal information.

    TBADFLAG

    This indicates that the flags as specified were incorrect or illegal.

    TSYSERR

    A system error has occured and the UNIX system error is indicated in the primitive.

    TNOTSUPPORT

    This MAP provider does not support the requested flag (T_CHECK or T_CURRENT).


4.1.7 Get Protocol Address Request

MAP_ADDR_REQ

This primitive requests that the MAP provider return the local protocol address that is bound to the stream and the address of the remote MAP entity if a dialogue has been established.

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_ADDR_REQ */
} MAP_addr_req_t;

Parameters

PRIM_type

Indicates the primitive type.

Valid States

New State

Acknowledgements

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

  • Successful: Correct acknowledgement of the primitive is indicated with the MAP_ADDR_ACK primitive described in MAP_ADDR_ACK.
  • Non-fatal errors: There are no errors associated with the issuance of this primitive.

4.1.8 Get Protocol Address Acknowledgement

MAP_ADDR_ACK

Format

Parameters

Flags

Valid States

New State


4.1.9 Options Management Acknowledgement

MAP_OPTMGMT_ACK

Format

Parameters

Flags

Valid States

New State


4.1.10 Error Acknowledgement

MAP_ERROR_ACK

Format

Parameters

Valid Error Codes

Valid States

New State


4.1.11 Successful Receipt Acknowledgement

MAP_OK_ACK

Format

Parameters

Valid States

New State


4.2 Association Establishment Phase


4.2.1 Association Establishment Request

MAP_OPEN_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Successful Association Establishment:
  • Unsuccessful Association Establishment:
  • Non-fatal errors:

4.2.2 Association Establishment Indication

MAP_OPEN_IND

Format

Parameters

Flags

Valid States

New State


4.2.3 Association Establishment Response

MAP_OPEN_RES

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.2.4 Association Establishment Confirmation

MAP_OPEN_CON

Format

Parameters

Flags

Valid States

New State


4.3 Component Transfer Phase


4.3.1 Component Delimitation Request

MAP_DELIM_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.3.2 Component Delimitation Indication

MAP_DELIM_IND

Format

Parameters

Flags

Valid States

New State


4.4 Association Termination Phase


4.4.1 Association Release Request

MAP_CLOSE_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.4.2 Association Release Indication

MAP_CLOSE_IND

Format

Parameters

Flags

Valid States

New State


4.4.3 Association Abort Request

MAP_ABORT_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.4.4 Association User Abort Indication

MAP_UABORT_IND

Format

Parameters

Flags

Valid States

New State


4.4.5 Association Provider Abort Indication

MAP_PABORT_IND

Format

Parameters

Flags

Valid States

New State


4.4.6 Association Notice Indication

MAP_NOTICE_IND

Format

Parameters

Flags

Valid States

New State


4.5 Secure Transport Primitives


4.5.1 Secure Transport Class 1 Request

MAP_STC1_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.5.2 Secure Transport Class 1 Indication

MAP_STC1_IND

Format

Parameters

Flags

Valid States

New State


4.5.3 Secure Transport Class 2 Request

MAP_STC2_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.5.4 Secure Transport Class 2 Indication

MAP_STC2_IND

Format

Parameters

Flags

Valid States

New State


4.5.5 Secure Transport Class 3 Request

MAP_STC3_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.5.6 Secure Transport Class 3 Indication

MAP_STC3_IND

Format

Parameters

Flags

Valid States

New State


4.5.7 Secure Transport Class 4 Request

MAP_STC4_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive described in MAP_ERROR_ACK. The allowable errors are as follows:
    TOUTSTATE

    The primitive would place the MAP interface out of state.

    TSYSERR

    A system error has occured and the UNIX System error in indicated in the primitive.


4.5.8 Secure Transport Class 4 Indication

MAP_STC4_IND

Format

Parameters

Flags

Valid States

New State


4.6 Service Specific Primitives


4.6.1 Activate Supplementary Service Request

MAP_ACTSS_REQ

Format

Parameters

Flags

Valid States

New State

Acknowledgements

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

  • Success: Acknowledgement of the primitive with the MAP_OK_ACK primitive described in MAP_OK_ACK.
  • Non-fatal errors: These errors will be indicated with the MAP_ERROR_ACK primitive des