-- $Id: MAP-SupplementaryServiceOperations.asn 34814 2010-11-08 23:15:16Z etxrab $
-- 3GPP TS 29.002 V9.3.0 (2010-09)  
--17.6.4	Supplementary service operations

MAP-SupplementaryServiceOperations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)
   version12 (12)}

DEFINITIONS

::=

BEGIN

EXPORTS
	registerSS,
	eraseSS,
	activateSS,
	deactivateSS,
	interrogateSS,
	processUnstructuredSS-Request,
	unstructuredSS-Request,
	unstructuredSS-Notify,
	registerPassword,
	getPassword,
	ss-InvocationNotification,
	registerCC-Entry,
	eraseCC-Entry
;

IMPORTS
	OPERATION
FROM Remote-Operations-Information-Objects {
joint-iso-itu-t remote-operations(4)
  informationObjects(5) version1(0)}

	systemFailure,
	dataMissing,
	unexpectedDataValue,
	unknownSubscriber,
	bearerServiceNotProvisioned,
	teleserviceNotProvisioned,
	callBarred,
	illegalSS-Operation,
	ss-ErrorStatus,
	ss-NotAvailable,
	ss-SubscriptionViolation,
	ss-Incompatibility,
	pw-RegistrationFailure,
	negativePW-Check,
	numberOfPW-AttemptsViolation,
	unknownAlphabet,
	ussd-Busy,
	absentSubscriber,
	illegalSubscriber,
	illegalEquipment,
	shortTermDenial,
	longTermDenial,
	facilityNotSupported
FROM MAP-Errors {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-Errors (10) version12 (12)}

	RegisterSS-Arg,
	SS-Info,
	SS-ForBS-Code,
	InterrogateSS-Res,
	USSD-Arg,
	USSD-Res,
	Password,
	GuidanceInfo,
	SS-InvocationNotificationArg,
	SS-InvocationNotificationRes,
	RegisterCC-EntryArg,
	RegisterCC-EntryRes,
	EraseCC-EntryArg,
	EraseCC-EntryRes
FROM MAP-SS-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SS-DataTypes (14) version12 (12)}

	SS-Code
FROM MAP-SS-Code {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SS-Code (15) version12 (12)}
;


-- supplementary service handling operations

registerSS  OPERATION ::= {				--Timer m
	ARGUMENT
		RegisterSS-Arg
	RESULT
		SS-Info
		-- optional
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		bearerServiceNotProvisioned |
		teleserviceNotProvisioned |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus |
		ss-Incompatibility}
	CODE	local:10 }

eraseSS  OPERATION ::= {				--Timer m
	ARGUMENT
		SS-ForBS-Code
	RESULT
		SS-Info
		-- optional
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		bearerServiceNotProvisioned |
		teleserviceNotProvisioned |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus
		}
	CODE	local:11 }

activateSS  OPERATION ::= {				--Timer m
	ARGUMENT
		SS-ForBS-Code
	RESULT
		SS-Info
		-- optional
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		bearerServiceNotProvisioned |
		teleserviceNotProvisioned |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus |
		ss-SubscriptionViolation |
		ss-Incompatibility |
		negativePW-Check |
		numberOfPW-AttemptsViolation}
	CODE	local:12 }

deactivateSS  OPERATION ::= {				--Timer m
	ARGUMENT
		SS-ForBS-Code
	RESULT
		SS-Info
		-- optional
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		bearerServiceNotProvisioned |
		teleserviceNotProvisioned |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus |
		ss-SubscriptionViolation |
		negativePW-Check |
		numberOfPW-AttemptsViolation}
	CODE	local:13 }

interrogateSS  OPERATION ::= {				--Timer m
	ARGUMENT
		SS-ForBS-Code
	RESULT
		InterrogateSS-Res
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		bearerServiceNotProvisioned |
		teleserviceNotProvisioned |
		callBarred |
		illegalSS-Operation |
		ss-NotAvailable}
	CODE	local:14 }

processUnstructuredSS-Request  OPERATION ::= {				--Timer 10 minutes
	ARGUMENT
		USSD-Arg
	RESULT
		USSD-Res
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		unknownAlphabet |
		callBarred}
	CODE	local:59 }

unstructuredSS-Request  OPERATION ::= {				--Timer ml
	ARGUMENT
		USSD-Arg
	RESULT
		USSD-Res
		-- optional
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		absentSubscriber |
		illegalSubscriber |
		illegalEquipment |
		unknownAlphabet |
		ussd-Busy}
	CODE	local:60 }

unstructuredSS-Notify  OPERATION ::= {				--Timer ml
	ARGUMENT
		USSD-Arg
	RETURN RESULT TRUE
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		absentSubscriber |
		illegalSubscriber |
		illegalEquipment |
		unknownAlphabet |
		ussd-Busy}
	CODE	local:61 }

registerPassword  OPERATION ::= {				--Timer ml
	ARGUMENT
		SS-Code
	RESULT
		Password
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		callBarred |
		ss-SubscriptionViolation |
		pw-RegistrationFailure |
		negativePW-Check |
		numberOfPW-AttemptsViolation}
	LINKED {
		getPassword}
	CODE	local:17 }

getPassword  OPERATION ::= {				--Timer m
	ARGUMENT
		GuidanceInfo
	RESULT
		Password
	CODE	local:18 }

ss-InvocationNotification  OPERATION ::= {				--Timer m
	ARGUMENT
		SS-InvocationNotificationArg
	RESULT
		SS-InvocationNotificationRes
		-- optional
	ERRORS {
		dataMissing |
		unexpectedDataValue |
		unknownSubscriber}
	CODE	local:72 }

registerCC-Entry  OPERATION ::= {				--Timer m
	ARGUMENT
		RegisterCC-EntryArg
	RESULT
		RegisterCC-EntryRes
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus |
		ss-Incompatibility |
		shortTermDenial |
		longTermDenial |
		facilityNotSupported}
	CODE	local:76 }

eraseCC-Entry  OPERATION ::= {				--Timer m
	ARGUMENT
		EraseCC-EntryArg
	RESULT
		EraseCC-EntryRes
	ERRORS {
		systemFailure |
		dataMissing |
		unexpectedDataValue |
		callBarred |
		illegalSS-Operation |
		ss-ErrorStatus}
	CODE	local:77 }

END
