-- $Id: MAP-Protocol.asn 34814 2010-11-08 23:15:16Z etxrab $
-- 3GPP TS 29.002 V9.3.0 (2010-09)
--17.5	MAP operation and error codes
MAP-Protocol {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-Protocol (4) version12 (12)}

DEFINITIONS

::=

BEGIN

IMPORTS
OPERATION
FROM Remote-Operations-Information-Objects {
joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}

	updateLocation,
	cancelLocation,
	purgeMS,
	sendIdentification,
	updateGprsLocation,
	prepareHandover,
	sendEndSignal,
	processAccessSignalling,
	forwardAccessSignalling,
	prepareSubsequentHandover,
	sendAuthenticationInfo,
	authenticationFailureReport,
	checkIMEI,
	insertSubscriberData,
	deleteSubscriberData,
	reset,
	forwardCheckSS-Indication,
	restoreData,
	provideSubscriberInfo,
	anyTimeInterrogation,
	anyTimeSubscriptionInterrogation,
	anyTimeModification,
	sendRoutingInfoForGprs,
	failureReport,
	noteMsPresentForGprs,
	noteMM-Event,
	noteSubscriberDataModified


FROM MAP-MobileServiceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-MobileServiceOperations (5)
   version12 (12)}

	activateTraceMode,
	deactivateTraceMode,
	sendIMSI
FROM MAP-OperationAndMaintenanceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)
   version12 (12)}

	sendRoutingInfo,
	provideRoamingNumber,
	resumeCallHandling,
	setReportingState,
	statusReport,
	remoteUserFree,
	ist-Alert,
	ist-Command,
	releaseResources
FROM MAP-CallHandlingOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CallHandlingOperations (7)
   version12 (12)}

	registerSS,
	eraseSS,
	activateSS,
	deactivateSS,
	interrogateSS,
	processUnstructuredSS-Request,
	unstructuredSS-Request,
	unstructuredSS-Notify,
	registerPassword,
	getPassword,
	ss-InvocationNotification,
	registerCC-Entry,
	eraseCC-Entry
FROM MAP-SupplementaryServiceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
   version12 (12)}

	sendRoutingInfoForSM,
	mo-ForwardSM,
	mt-ForwardSM,
	reportSM-DeliveryStatus,
	alertServiceCentre,
	-- Add Older version [HW]
	alertServiceCentreWithoutResult,
	noteSubscriberPresent,
	-- End [HW]
	informServiceCentre,
	readyForSM,
	mt-ForwardSM-VGCS
FROM MAP-ShortMessageServiceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
   version12 (12)}

	prepareGroupCall,
	processGroupCallSignalling,
	forwardGroupCallSignalling,
	sendGroupCallEndSignal,
	sendGroupCallInfo
FROM MAP-Group-Call-Operations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-Group-Call-Operations (22)
   version12 (12)}

	provideSubscriberLocation,
	sendRoutingInfoForLCS,
	subscriberLocationReport
FROM MAP-LocationServiceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-LocationServiceOperations (24)
   version12 (12)}


;
Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | purgeMS | 
sendIdentification | updateGprsLocation | prepareHandover | sendEndSignal | 
processAccessSignalling | forwardAccessSignalling | prepareSubsequentHandover | 
sendAuthenticationInfo | authenticationFailureReport | checkIMEI | insertSubscriberData | 
deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | provideSubscriberInfo | 
anyTimeInterrogation | anyTimeSubscriptionInterrogation | anyTimeModification | 
sendRoutingInfoForGprs | failureReport |noteMsPresentForGprs | noteMM-Event | 
noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | sendIMSI | 
sendRoutingInfo | provideRoamingNumber | resumeCallHandling | setReportingState | statusReport | remoteUserFree | ist-Alert | 
ist-Command | registerSS | eraseSS | activateSS | deactivateSS | interrogateSS | 
processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify | 
registerPassword | getPassword | ss-InvocationNotification | registerCC-Entry | eraseCC-Entry | 
sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus | 
alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall | 
processGroupCallSignalling | forwardGroupCallSignalling | sendGroupCallEndSignal |
provideSubscriberLocation | sendRoutingInfoForLCS | subscriberLocationReport | 
releaseResources | mt-ForwardSM-VGCS | sendGroupCallInfo
-- Add SS-Operations [HW]
| processUnstructuredSS-Data | notifySS | forwardChargeAdvice | forwardCUG-Info
| buildMPTY | holdMPTY | retrieveMPTY | splitMPTY | explicitCT
| accessRegisterCCEntry | callDeflection | userUserService

| lcs-LocationNotification | lcs-MOLR | lcs-AreaEventRequest | lcs-AreaEventReport
| lcs-AreaEventCancellation | lcs-PeriodicLocationRequest | lcs-LocationUpdate
| lcs-PeriodicLocationCancellation

| noteSubscriberPresent | alertServiceCentreWithoutResult
-- End [HW]
}



-- The following operation codes are reserved for operations
-- existing in previous versions of the protocol

-- Operation Name	AC used	Oper. Code
-- 
-- sendParameters	map-ac infoRetrieval (14) version1 (1)	local:9
-- processUnstructuredSS-Data	map-ac networkFunctionalSs (18) version1 (1)	local:19
-- performHandover	map-ac handoverControl (11) version1 (1)	local:28
-- performSubsequentHandover	map-ac handoverControl (11) version1 (1)	local:30
-- provideSIWFSNumber	map-ac sIWFSAllocation (12) version3 (3)	local:31
-- siwfs-SignallingModify	map-ac sIWFSAllocation (12) version3 (3)	local:32
-- noteInternalHandover	map-ac handoverControl (11) version1 (1)	local:35
-- noteSubscriberPresent	map-ac mwdMngt (24) version1 (1)	local:48
-- alertServiceCentreWithoutResult	map-ac shortMsgAlert (23) version1 (1)	local:49
-- traceSubscriberActivity	map-ac handoverControl (11) version1 (1)	local:52
-- beginSubscriberActivity	map-ac networkFunctionalSs (18) version1 (1)	local:54

-- The following error codes are reserved for errors
-- existing in previous versions of the protocol

-- Error Name	AC used	Error Code
-- 
-- unknownBaseStation	map-ac handoverControl (11) version1 (1)	local:2
-- invalidTargetBaseStation	map-ac handoverControl (11) version1 (1)	local:23
-- noRadioResourceAvailable	map-ac handoverControl (11) version1 (1)	local:24


END
