-- $Id: MAP-DialogueInformation.asn 34814 2010-11-08 23:15:16Z etxrab $
-- 3GPP TS 29.002 V9.3.0 (2010-09) 
-- 17.4	MAP Dialogue Information
MAP-DialogueInformation {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-DialogueInformation (3) version12 (12)}

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN

EXPORTS
	map-DialogueAS,
	MAP-DialoguePDU

;

IMPORTS
	gsm-NetworkId,
	as-Id
FROM MobileDomainDefinitions {
   itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
   mobileDomainDefinitions (0) version1 (1)}

	AddressString
FROM MAP-CommonDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network(1) modules (3) map-CommonDataTypes (18) version12 (12)}

	ExtensionContainer
FROM MAP-ExtensionDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version12 (12)}


;


-- abstract syntax name for MAP-DialoguePDU

map-DialogueAS  OBJECT IDENTIFIER ::=
	{gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}

MAP-DialoguePDU ::= CHOICE {
	map-open		[0] MAP-OpenInfo,
	map-accept	[1] MAP-AcceptInfo,
	map-close		[2] MAP-CloseInfo,
	map-refuse	[3] MAP-RefuseInfo,
	map-userAbort	[4] MAP-UserAbortInfo,
	map-providerAbort	[5] MAP-ProviderAbortInfo}

MAP-OpenInfo ::= SEQUENCE {
	destinationReference	[0] AddressString	OPTIONAL,
	originationReference	[1] AddressString	OPTIONAL,
	...,
	extensionContainer	ExtensionContainer	OPTIONAL
	-- extensionContainer must not be used in version 2
	}

MAP-AcceptInfo ::= SEQUENCE {
	...,
	extensionContainer	ExtensionContainer	OPTIONAL
	-- extensionContainer must not be used in version 2
	}

MAP-CloseInfo ::= SEQUENCE {
	...,
	extensionContainer	ExtensionContainer	OPTIONAL
	-- extensionContainer must not be used in version 2
	}

MAP-RefuseInfo ::= SEQUENCE {
	reason	Reason,
	...,
	extensionContainer	ExtensionContainer	OPTIONAL,
	-- extensionContainer must not be used in version 2
	alternativeApplicationContext	OBJECT IDENTIFIER	OPTIONAL
	-- alternativeApplicationContext must not be used in version 2
	}

Reason ::= ENUMERATED {
	noReasonGiven	(0),
	invalidDestinationReference	(1),
	invalidOriginatingReference	(2)}

MAP-UserAbortInfo ::= SEQUENCE {
	map-UserAbortChoice	MAP-UserAbortChoice,
	...,
	extensionContainer	ExtensionContainer	OPTIONAL
	-- extensionContainer must not be used in version 2
	}

MAP-UserAbortChoice ::= CHOICE {
	userSpecificReason	[0] NULL,
	userResourceLimitation	[1] NULL,
	resourceUnavailable	[2] ResourceUnavailableReason,
	applicationProcedureCancellation	[3] ProcedureCancellationReason}

ResourceUnavailableReason ::= ENUMERATED {
	shortTermResourceLimitation  (0),
	longTermResourceLimitation  (1)}

ProcedureCancellationReason ::= ENUMERATED {
	handoverCancellation  (0),
	radioChannelRelease  (1),
	networkPathRelease  (2),
	callRelease  (3),
	associatedProcedureFailure  (4),
	tandemDialogueRelease  (5),
	remoteOperationsFailure  (6)}

MAP-ProviderAbortInfo ::= SEQUENCE {
	map-ProviderAbortReason	MAP-ProviderAbortReason,
	...,
	extensionContainer	ExtensionContainer	OPTIONAL
	-- extensionContainer must not be used in version 2
	}

MAP-ProviderAbortReason ::= ENUMERATED {
	abnormalDialogue  (0),
	invalidPDU  (1)}

END
