--/////////////////////////////////////////////////////////////////////////////
--
-- Copyright (c) 2000-2023 Ericsson Telecom AB
--
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v2.0
-- which accompanies this distribution, and is available at
-- https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
--/////////////////////////////////////////////////////////////////////////////
--
--  File:               SS_Operations.asn
--  Rev:                R2A
--  Prodnr:             CNL 113 832
--  Contact:            http://ttcn.ericsson.se
--  Reference:          3GPP TS 24.080 v13.0.0

SS-Operations {
   itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
   ss-Operations (0) version12 (12)}

DEFINITIONS ::=

BEGIN

EXPORTS

-- exports operations

-- operations defined in this specification
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;

IMPORTS

OPERATION FROM
Remote-Operations-Information-Objects {
	joint-iso-itu-t remote-operations(4)
  informationObjects(5) version1(0)}

-- The MAP operations:
-- registerSS, eraseSS, activateSS, deactivateSS, interrogateSS, registerPassword,
-- getPassword, processUnstructuredSS-Request, unstructuredSS-Request, unstructuredSS-Notify
-- forwardCheckSS-Indication
-- are imported from MAP-Operations in SS-Protocol module.

-- imports SS-data types
NotifySS-Arg,
ForwardChargeAdviceArg,
ForwardCUG-InfoArg,
SS-UserData,
AccessRegisterCCEntryArg,
CallDeflectionArg,
UserUserServiceArg,
LocationNotificationArg,
LocationNotificationRes,
LCS-MOLRArg,
LCS-MOLRRes,
LCS-AreaEventRequestArg,
LCS-AreaEventReportArg,
LCS-AreaEventCancellationArg,
LCS-PeriodicLocationRequestArg,
LCS-PeriodicLocationRequestRes,
LCS-LocationUpdateArg,
LCS-LocationUpdateRes,
LCS-PeriodicLocationCancellationArg


FROM SS-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
   ss-DataTypes (2) version12 (12)}

-- imports MAP-SS-data types 
RegisterCC-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)}

-- imports MAP-errors
illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, ss-SubscriptionViolation,
ss-Incompatibility, systemFailure, facilityNotSupported, callBarred, unexpectedDataValue, shortTermDenial, longTermDenial, dataMissing, forwardingViolation, forwardingFailed, positionMethodFailure
FROM MAP-Errors {
   itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
   map-Errors (10) version12 (12)}

-- imports SS-Errors
resourcesNotAvailable, maxNumberOfMPTY-ParticipantsExceeded, deflectionToServedSubscriber, invalidDeflectedToNumber, specialServiceCode, rejectedByUser, rejectedByNetwork
FROM SS-Errors {
   itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3)
   ss-Errors (1) version12 (12)}
;

-- operations definition

processUnstructuredSS-Data	OPERATION ::= { -- Timer T(PUSSD)= 15s to 30s 
	ARGUMENT	SS-UserData
	RESULT		SS-UserData
				-- optional
	ERRORS		{
				systemFailure |
				unexpectedDataValue}
	CODE		local:19 }

notifySS 	OPERATION ::= {
	ARGUMENT	NotifySS-Arg
	CODE		local:16 }

forwardChargeAdvice 	OPERATION ::= { -- Timer T(AoC)= 1s to 40s
	ARGUMENT	ForwardChargeAdviceArg
	RETURN RESULT TRUE
	CODE		local:125 }

forwardCUG-Info 	OPERATION ::= {
	ARGUMENT	ForwardCUG-InfoArg
	CODE		local:120 }

buildMPTY 	OPERATION ::= { -- Timer T(BuildMPTY)= 5s to 30s
	RETURN RESULT TRUE
	ERRORS	{
			illegalSS-Operation |
			ss-ErrorStatus |
			ss-NotAvailable |
			ss-Incompatibility |
			systemFailure |
			resourcesNotAvailable |
			maxNumberOfMPTY-ParticipantsExceeded}
	CODE	local:124 }

holdMPTY 	OPERATION ::= { -- Timer T(HoldMPTY)= 5s to 30s
	RETURN RESULT TRUE
	ERRORS	{
			illegalSS-Operation |
			ss-ErrorStatus |
			ss-Incompatibility |
			facilityNotSupported |
			systemFailure}
	CODE	local:123 }

retrieveMPTY 	OPERATION ::= { -- Timer T(RetrieveMPTY)= 5s to 30s
	RETURN RESULT TRUE
	ERRORS	{
			illegalSS-Operation |
			ss-ErrorStatus |
			ss-Incompatibility |
			facilityNotSupported |
			systemFailure}
	CODE	local:122 }

splitMPTY 	OPERATION ::= { -- Timer T(SplitMPTY)= 5s to 30s
	RETURN RESULT TRUE
	ERRORS	{
			illegalSS-Operation |
			ss-ErrorStatus |
			ss-Incompatibility |
			facilityNotSupported |
			systemFailure}
	CODE	local:121 }

explicitCT 	OPERATION ::= { -- Timer T(ECT)= 5s to 15s
	RETURN RESULT TRUE
	ERRORS	{
			illegalSS-Operation |
			ss-ErrorStatus |
			ss-NotAvailable |
			ss-Incompatibility |
			facilityNotSupported |
			systemFailure |
			resourcesNotAvailable |
			callBarred}
	CODE	local:126 }

accessRegisterCCEntry 	 OPERATION ::= { -- Timer T(AccRegCCEntry)= 30s
	ARGUMENT	AccessRegisterCCEntryArg
	RESULT		RegisterCC-EntryRes
	ERRORS		{
				systemFailure |
				dataMissing |
				unexpectedDataValue |
				callBarred |
				illegalSS-Operation |
				ss-ErrorStatus |
				ss-Incompatibility |
				shortTermDenial |
				longTermDenial |
				facilityNotSupported}
	CODE		local:119 }

-- the timer value is defined by T308, see also in TS 24.008 for definition of timer T308

callDeflection 	OPERATION ::= { -- Timer T(CD)= 30s
	ARGUMENT	CallDeflectionArg
	RETURN RESULT TRUE
	ERRORS		{
				illegalSS-Operation |
				ss-ErrorStatus |
				ss-NotAvailable |
				ss-Incompatibility |
				facilityNotSupported |
				systemFailure |
				resourcesNotAvailable |
				forwardingViolation |
				callBarred |
				deflectionToServedSubscriber |
				invalidDeflectedToNumber |
				specialServiceCode |
				forwardingFailed}
	CODE		local:117 }

-- the timer value is defined by T305, see also in TS 24.008 for definition of timer T305
-- extensionContainer shall not be used with this operation

userUserService 	OPERATION ::= { -- Timer T(UUS3)= 10s
	ARGUMENT	UserUserServiceArg
	RETURN RESULT TRUE
	ERRORS		{
				illegalSS-Operation |
				ss-ErrorStatus |
				ss-NotAvailable |
				ss-Incompatibility |
				facilityNotSupported |
				systemFailure |
				resourcesNotAvailable |
				rejectedByNetwork |
				rejectedByUser}
	CODE		local:118 }

-- The timer value for UUS3 is 10s; it is applicable only if UUS3 is activated by FACILITY
-- message. If UUS service (UUS1, UUS2 or UUS3) is activated by SETUP message, no timers are
-- needed. In those cases Return Result or Return Error must be received within certain call
-- control messages, see 3GPP TS 24.087.
-- extensionContainer shall not be used with this operation.


lcs-LocationNotification	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s 
	ARGUMENT	LocationNotificationArg
	RESULT		LocationNotificationRes
	ERRORS		{
				systemFailure |
				unexpectedDataValue}
	CODE		local:116 }


lcs-MOLR	OPERATION ::= { -- Timer T(LCSL)= 10s to 300s
	ARGUMENT	LCS-MOLRArg
	RESULT		LCS-MOLRRes
	ERRORS		{
				systemFailure |
				unexpectedDataValue |
				dataMissing |
				facilityNotSupported |
				ss-SubscriptionViolation |
				positionMethodFailure}
	CODE		local:115 }


lcs-AreaEventRequest	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
	ARGUMENT	LCS-AreaEventRequestArg
	RETURN RESULT TRUE
	ERRORS		{
				systemFailure |
				facilityNotSupported |
				unexpectedDataValue}
	CODE		local:114 }


lcs-AreaEventReport	OPERATION ::= { -- Timer T(LCSL)= 10s to 300s
	ARGUMENT	LCS-AreaEventReportArg
	RETURN RESULT TRUE
	ERRORS		{
				systemFailure |
				unexpectedDataValue |
				facilityNotSupported}
	CODE		local:113 }


lcs-AreaEventCancellation	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s
	ARGUMENT	LCS-AreaEventCancellationArg
	RETURN RESULT TRUE
	ERRORS		{
				systemFailure |
				facilityNotSupported |
				unexpectedDataValue}
	CODE		local:112 }

lcs-PeriodicLocationRequest	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s 
	ARGUMENT	LCS-PeriodicLocationRequestArg
	RESULT		LCS-PeriodicLocationRequestRes
	ERRORS		{
				systemFailure |
				facilityNotSupported |
				unexpectedDataValue |
				dataMissing }
	CODE		local: 111 }

lcs-LocationUpdate	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s 
	ARGUMENT	LCS-LocationUpdateArg
	RESULT		LCS-LocationUpdateRes
	ERRORS		{
				systemFailure |
				unexpectedDataValue}
	CODE		local: 110 }

lcs-PeriodicLocationCancellation	OPERATION ::= { -- Timer T(LCSN)= 10s to 20s 
	ARGUMENT	LCS-PeriodicLocationCancellationArg
	RETURN RESULT TRUE
	ERRORS		{
				systemFailure |
				unexpectedDataValue}
	CODE		local: 109 }



END
