17.1 General
29.0023GPPMobile Application Part (MAP) specificationRelease 17TS
This clause specifies the Abstract Syntaxes for the Mobile Application Part as well as the associated set of Operations and Errors, using the Abstract Syntax Notation One (ASN.1), defined in ITU-T Recommendations X.680 and X.681 with additions as defined in clause 17.1.4 on Compatibility Considerations and the OPERATION and ERROR external information object classes, defined in ITU-T Recommendation X.880.
The Abstract Syntax is defined for all interfaces specified in clause 4.4 except for the A- and B-interfaces.
The Mobile Application Part protocol is defined by two Abstract Syntaxes:
– one Abstract Syntax which encompass all Operations and Errors identified by the various MAP subsystem numbers.
This Abstract Syntax represents the set of values each of which is a value of the ASN.1 type TCAPMessages. TCMessage as defined in ITU-T Recommendation Q.773 with the component relationconstraint clauses resolved by the operation and error codes included in the ASN.1 modules MAP-*Operations and MAP-Errors. However, only the subset of this abstract syntax which is required by the procedures defined for an entity needs to be supported.
– one Abstract Syntax identified by the OBJECT IDENTIFIER value MAP-DialogueInformation.map-DialogueAS.
This Abstract Syntax represents the set of values each of which is a value of the ASN.1 type MAP-DialogueInformation.MAP-DialoguePDU. Such a value of the ASN.1 single-ASN.1-type element is contained within the user-information element of the TCAPMessages.DialoguePortion ASN.1 type. This Abstract Syntax name is to be used as a direct reference.
17.1.1 Encoding rules
The encoding rules which are applicable to the defined Abstract Syntaxes are the Basic Encoding Rules for Abstract Syntax Notation One, defined in ITU-T Recommendation X.690 with the same exceptions as in ITU-T Recommendation Q.773, clause 4 Message Representation.
When the definite form is used for length encoding, a data value of length less than 128 octets must have the length encoded in the short form.
When the long form is employed to code a length, the minimum number of octets shall be used to code the length field.
OCTET STRING values and BIT STRING values must be encoded in a primitive form.
There is no restriction to the use of empty constructors (e.g. an empty SEQUENCE type). That is, the encoding of the content of any data value shall consist of zero, one or more octets.
17.1.2 Use of TC
The mapping of OPERATION and ERROR to TC components is defined in ETS 300 287 (version 2) which is based on ITU-T Recommendation Q.773.
NOTE 1: The class of an operation is not stated explicitly but is specified as well in the ASN.1 operation definition.
Class 1: RESULT and ERROR appear in ASN.1 operation definition.
Class 2: only ERROR appears in ASN.1 operation definition.
Class 3: only RESULT appears in ASN.1 operation definition.
Class 4: both RESULT and ERROR do not appear in ASN.1 operation definition.
The field "ARGUMENT", "PARAMETER" or "RESULT" (for information objects of class OPERATION and ERROR) is always optional from a syntactic point of view. However, except when specifically mentioned with the ASN.1 comment "– optional" , the "parameter" part of a component has to be considered as mandatory from a semantic point of view.
When an optional element is missing in an invoke component or in an inner data structure while it is required by the context, an error component is returned if specified in the information object associated with the operation ; the associated type of error is "DataMissing". This holds also when the entire parameter of an invoke component is missing while it is required by the context.
NOTE 2: When a mandatory element is missing in the parameter or inner data structure of any component, a reject component is returned (if the dialogue still exists). The problem code to be used is "Mistyped parameter".
The Timer Values used in the operation definitions are indicated as ASN.1 comments. The Timer Value Ranges are:
s = from 3 seconds to 10 seconds;
m = from 15 seconds to 30 seconds;
ml = from 1 minute to 10 minutes;
l = from 28 hours to 38 hours.
17.1.2.1 Use of Global Operation and Error codes defined outside MAP
An entity supporting an application context greater than 2 shall be capable of receiving an operation or error code, within an application context defined in GSM 29.002, encoded as either an Object Identifier (as defined in ITU-T Recommendation X.690 ) or an integer value (as defined in clause 17.5). Related restrictions regarding the use of Object Identifiers are as follows:
– The length of the Object Identifier shall not exceed 16 octets and the number of components of the Object Identifier shall not exceed 16.
– Object Identifiers shall be used only for operations or errors defined outside of GSM 29.002.
– Global error codes may be sent only in response to a global operation. If a standard operation is received then a global error code shall not be sent in response.
Handling of an unknown operation codes by the receiving entity is defined in clause 15.1.1.
17.1.3 Use of information elements defined outside MAP
An information element or a set of information elements (messages) transparently carried in the Mobile Application Part but defined in other recommendations/technical specifications are handled in one of the following ways:
i) The contents of each information element (without the octets encoding the identifier and the length in the recommendation/technical specification where it is defined unless explicitly stated otherwise) is carried as the value of an ASN.1 type derived from the OCTET STRING data type. Additionally, the internal structure may be explained by means of comments. In case of misalignment the referred to recommendation/technical specification takes precedence.
ii) The complete information element (including the octets encoding the identifier and the length in the recommendation/technical specification where it is defined) or set of information elements and the identity of the associated protocol are carried as the value of the ExternalSignalInfo data type defined in the present document. Where more than one information element is carried, the information elements are sent contiguously with no filler octets between them.
17.1.4 Compatibility considerations
The following ASN.1 modules conform to ITU-T Recommendation X.680 and X.681 . An extension marker ("…") is used wherever future protocol extensions are foreseen.
The "…" construct applies only to SEQUENCE and ENUMERATED data types. An entity supporting a version greater than 1 shall not reject an unsupported extension following "…" of that SEQUENCE or ENUMERATED data type. The Encoding Rules from clause 17.1.1 apply to every element of the whole Transfer Syntax especially to the ASN.1 type EXTERNAL.
The extension container "privateExtensionList" is defined in this specification in order to carry extensions which are defined outside this specification. Private extensions can be defined by, for example, network operators, manufacturers, and regional standardisation bodies.
Private extensions shall:
1) if included in operations of an AC of V2, follow the extension marker and be tagged using PRIVATE tags up to and including 29.
NOTE: This type of extension is in most cases used only within a PLMN.
2) if included in operations of an AC of V3 or higher: be included only in the Private Extension Container that is defined in the specification.
NOTE: This type of extension can be used between PLMNs.
Private extensions shall not be included in v2 supplementary service operations.
Private extensions shall not be included within user error for RegisterCCEntry and EraseCCEntry operations.
PCS extensions shall be included in the PCS Extension Container that is defined in this specification.
In order to improve extensibility, a few error parameters have been defined as a CHOICE between the version 2 description and a SEQUENCE including the version 2 description and an extension container. Operations used in a v2-application-context must consider only the first alternative while operations used in a vn-application-context (n>2) must consider only the second alternative.
17.1.5 Structure of the Abstract Syntax of MAP
For each MAP parameter which has to be transferred by a MAP Protocol Data Unit (MAP message), there is a PDU field (an ASN.1 type) which has the same name as the corresponding parameter, except for the differences required by the ASN.1 notation (blanks between words are removed or replaced by hyphen, the first letter of the first word is capital and the first letter of each of the following words ise capitalised, e.g. "no reply condition time" is mapped to "NoReplyConditionTime"). Additionally some words may be abbreviated as follows:
bs basic service
ch call handling
cug closed user group
ho handover
ic incoming call
id identity
info information
mm mobility management
lcs location services
ms mobile service
oc outgoing call
om operation & maintenance
pw Password
sm short message service
ss supplementary service
The MAP protocol is composed of several ASN.1 modules dealing with either operations, errors, data types, and, if applicable, split into those dealing with mobile services, call handling services, supplementary services and short message services. For operations and errors the code values are given as parameters, in order to allow use of the defined information objects also by other protocols (e.g. 3GPP TS 24.080 [38]). The ASN.1 source lines are preceded by line-numbers at the left margin in order to enable the usage of the cross-reference in annex A.
The module containing the definition of the operation packages for MAP is:
1. MAP-OperationPackages.
The module containing the definition of the application contexts for MAP is:
2. MAP-ApplicationContexts.
The module containing the data types for the Abstract Syntax to be used for TCAPMessages.DialoguePortion for MAP is:
3. MAP-DialogueInformation.
The module containing the supported operations is:
4. MAP-Protocol.
The modules containing all operation definitions for MAP are:
5. MAP-MobileServiceOperations;
6. MAP-OperationAndMaintenanceOperations;
7. MAP-CallHandlingOperations;
8. MAP-SupplementaryServiceOperations;
9. MAP-ShortMessageServiceOperations;
10. MAP-Group-Call-Operations;
11. MAP-LocationServiceOperations.
The module containing all error definitions for MAP is:
12. MAP-Errors.
Modules containing all data type definitions for MAP are:
13. MAP-MS-DataTypes;
14. MAP-OM-DataTypes;
15. MAP-CH-DataTypes;
16. MAP-SS-DataTypes;
17. MAP-SS-Code;
18. MAP-SM-DataTypes;
19. MAP-ER-DataTypes;
20. MAP-CommonDataTypes;
21. MAP-TS-Code;
22. MAP-BS-Code;
23. MAP-ExtensionDataTypes;
24. MAP-GR-DataTypes;
25. MAP-LCS-DataTypes.
References are made also to modules defined outside of the present document. They are defined in the technical specification Mobile Services Domain, technical specification Transaction Capability and ITU-T Recommendation X.880 respectively:
MobileDomainDefinitions;
TCAPMessages, DialoguePDUs ;
Remote-Operations-Information-Objects.
17.1.6 Application Contexts
The following informative table lists the latest versions of the Application Contexts used in this specification, with the operations used by them and, where applicable, whether or not the operation description is exactly the same as for previous versions. Information in 17.6 & 17.7 relates only to the ACs in this table.
AC Name |
AC Version |
Operations Used |
Comments |
---|---|---|---|
locationCancellationContext |
v3 |
cancelLocation |
|
equipmentMngtContext |
V3 |
checkIMEI |
|
imsiRetrievalContext |
v2 |
sendIMSI |
|
infoRetrievalContext |
v3 |
sendAuthenticationInfo |
|
interVlrInfoRetrievalContext |
v3 |
sendIdentification |
|
handoverControlContext |
v3 |
prepareHandover forwardAccessSignalling sendEndSignal processAccessSignalling prepareSubsequentHandover |
the syntax of this operation has been extended in comparison with release 98 version |
mwdMngtContext |
v3 |
readyForSM |
|
msPurgingContext |
v3 |
purgeMS |
|
shortMsgAlertContext |
v2 |
alertServiceCentre |
|
resetContext |
v3 |
reset |
|
networkUnstructuredSsContext |
v2 |
processUnstructuredSS-Request unstructuredSS-Request unstructuredSS-Notify |
|
tracingContext |
v3 |
activateTraceMode deactivateTraceMode |
|
networkFunctionalSsContext |
v2 |
registerSS eraseSS activateSS deactivateSS registerPassword interrogateSS getPassword |
|
shortMsgMO-RelayContext |
v3 |
mo-forwardSM |
|
shortMsgMT-RelayContext |
v3 |
mt-forwardSM |
|
shortMsgMT-VGCS-RelayContext |
v3 |
mt-forwardSM-VGCS |
|
shortMsgGatewayContext |
v3 |
sendRoutingInfoForSM reportSM-DeliveryStatus InformServiceCentre |
the syntax of this operation has been extended in comparison with release 96 version |
networkLocUpContext |
v3 |
updateLocation forwardCheckSs-Indication restoreData insertSubscriberData activateTraceMode |
the syntax is the same in v1 & v2 |
gprsLocationUpdateContext |
v3 |
updateGprsLocation insertSubscriberData activateTraceMode |
|
subscriberDataMngtContext |
v3 |
insertSubscriberData deleteSubscriberData |
|
roamingNumberEnquiryContext |
v3 |
provideRoamingNumber |
|
locationInfoRetrievalContext |
v3 |
sendRoutingInfo |
|
gprsNotifyContext |
v3 |
noteMsPresentForGprs |
|
gprsLocationInfoRetrievalContext |
v4 |
sendRoutingInfoForGprs |
|
failureReportContext |
v3 |
failureReport |
|
callControlTransferContext |
v4 |
resumeCallHandling |
|
subscriberInfoEnquiryContext |
v3 |
provideSubscriberInfo |
|
anyTimeEnquiryContext |
v3 |
anyTimeInterrogation |
|
anyTimeInfoHandlingContext |
v3 |
anyTimeSubscriptionInterrogation anyTimeModification |
|
ss-InvocationNotificationContext |
v3 |
ss-InvocationNotification |
|
groupCallControlContext |
v3 |
prepareGroupCall processGroupCallSignalling forwardGroupCallSignalling sendGroupCallEndSignal |
|
reportingContext |
v3 |
setReportingState statusReport remoteUserFree |
|
callCompletionContext |
v3 |
registerCC-Entry eraseCC-Entry |
|
istAlertingContext |
v3 |
istAlert |
|
ServiceTerminationContext |
v3 |
istCommand |
|
locationSvcEnquiryContext |
v3 |
provideSubscriberLocation subscriberLocationReport |
|
locationSvcGatewayContext |
v3 |
sendRoutingInfoForLCS |
|
mm-EventReportingContext |
v3 |
noteMM-Event |
|
subscriberDataModificationNotificationContext |
v3 |
noteSubscriberDataModified |
|
authenticationFailureReportContext |
v3 |
authenticationFailureReport |
|
resourceManagementContext |
v3 |
releaseResources |
|
groupCallInfoRetievalContext |
v3 |
sendGroupCallInfo |
|
vcsgLocationUpdateContext |
v3 |
updateVcsgLocation insertSubscriberData |
|
vcsgLocationCancelContext |
v3 |
cancelVcsgLocation |
NOTE (*): The syntax of the operations is not the same as in previous versions unless explicitly stated
In the word-text of ASN.1 Modules hidden text is used for marking the begin (.$modulename), interrupt (.#), continuation (.$) and end (.#END) of ASN.1 Source. This allows to automatically extract the ASN.1 Sources. These markers should not be deleted! In addition, hidden text is also used to overcome some compiler restrictions
In addition no line break should occur when printing a paragraph in ASN.1 source, otherwise the line-numbering of word is inconsistent with the line-numbering in Annex A.
For Completeness the module MAP-Frame is included as hidden text.
.$MAP-Frame
DEFINITIONS ::=
BEGIN
IMPORTS
Component,
TCMessage
FROM TCAPMessages
dialogue-as-id,
DialoguePDU
FROM DialoguePDUs
updateLocation
FROM MAP-Protocol
map-DialogueAS,
MAP-DialoguePDU
FROM MAP-DialogueInformation
map-ac
FROM MAP-ApplicationContexts
;
ZZZZ-Dummy ::= NULL
.#END