-- module(Mvrasn-DataTypes-1).
-- vsn('%CCaseRev: %').
-- date('%CCaseDate: %').
-- author('eedkbu').
-- =============================================================================
-- =============================================================================
--
-- Title : "MAP Data Types".
--
-- ASN.1 module: "MAP-DataTypes".
--
-- =============================================================================
-- =============================================================================
--
-- NOTE:
--
-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
-- to indicate these modules uniquely. To have a same kind of definite naming
-- convention, parts of the these 'Object Identifier' have been included in
-- the file names that store the respective ASN.1 modules.
--
-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
-- version '4' (PHASE 3).
--
-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
-- the names for the ASN.1 files of the ASN.1 modules from
-- this standard version are selected by the author. They are chosen the way
-- that they are indicating the relation to those modules
-- from GSM 09.02 v. 3.11.0.
--
-- =============================================================================
-- ==============================================================
-- #1. REVISION LOG
-- ==============================================================
-- Rev Date Name What
-- .... ....... ....... ........................................
-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 3.11.0.
-- ..............................................................
-- PA2 990114 etord Included Reset operation
-- ..............................................................
Mvrasn-DataTypes-1
DEFINITIONS
::=
BEGIN
IMPORTS
-- imports upper boundaries for data types
maxNumberOfTeleServices,
maxNumberOfBearerServices,
maxNumberOfSupplServices,
maxNumberOfCUG,
maxNumberOfForwardingFeatures,
maxNumberOfCallBarringFeatures,
maxNumberOfHlrId,
maxAddressLength,
maxNumberOfSentParameters
FROM Mvrasn-Constants-1
;
-- =========================================================
--
-- NOTE:
--
-- The data type "SendParameterArg" and "ResetArg" are not given in the
-- original GSM 09.02 v. 3.11.0 standard, but have been
-- introduced here for two reasons:
--
-- 1. In the OPERATION MACRO "SendParameters" is a PARAMETER (=ARGument) and
-- a RESULT defined. The ASN.1 en/decoder is not able to handle
-- the MACRO definition. Therefore, the new data type has been
-- introduced
--
-- 2. To align the documentation of the ASN.1 data types in
-- GSM 09.02 v. 3.11.0 with those of GSM 09.02 v. 6.1.0.
--
-- =========================================================
SendParametersArg ::= SEQUENCE {
subscriberId SubscriberId,
requestParameters RequestParameters
}
ResetArg ::= SEQUENCE {
networkResource NetworkResource,
originatingEntityNumber IsdnAddressString,
hlrId HlrList OPTIONAL
}
-- common data types
SentParameters ::= SEQUENCE
SIZE(1..maxNumberOfSentParameters)
OF SentParameter
TBCD-STRING ::= OCTET STRING
-- digits 0 through 9, two digits per octet,
-- each digit encoded 0000 to 1001,
-- 1111 used as filler when there is an odd number of digit.
AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
-- see internal description in section 6.4.1
IsdnAddressString ::= AddressString (SIZE (1..10))
IMSI ::= TBCD-STRING (SIZE (2..8))
-- MCC, MNC, MSIN concatenated in this order
TMSI ::= OCTET STRING (SIZE (1..4))
SubscriberId ::= CHOICE {
imsi [0] IMPLICIT IMSI,
tmsi [1] IMPLICIT TMSI}
-- data types for numbering and identification
HlrId ::= IMSI
-- leading digits of IMSI
HlrList ::= SEQUENCE
SIZE(1.. maxNumberOfHlrId)
OF HlrId
-- data types for subscriber management
--
Category ::= OCTET STRING (SIZE (1))
-- internal structure defined in CCITT Rec Q.763
BearerServiceCode ::= OCTET STRING (SIZE (1))
-- Internal structure according to table 6.4/1
-- BIT 8 Transparency indicator (if applicable)
-- 0 transparent
-- 1 non transparent
-- BIT 7654 Bearer service group
-- 0001 3.1 kHz ex PLMN
-- 0010 Circuit data asynchronous
-- 0011 Circuit data synchronous
-- 0100 PAD access c.d.a
-- 0101 Packet data synchrounous
-- 0110 Alternate speech/c.d.a
-- 0111 Alternate speech c.d.s
-- 1000 Speech followed by data c.d.a
-- 1001 Speech followed by data c.d.s
-- 1111 12.6 kb/s unrestricted digital
-- BIT 321 Rate (when applicable)
-- 000 Any
-- 001 300-300 b/s
-- 010 1200-1200 b/s
-- 011 1200-75 b/s
-- 100 2400-2400 b/s
-- 101 4800-4800 b/s
-- 110 9600-9600 b/s
-- Bits 321 = 000 can be used to refer to all
-- the bearer services of the corresponding group.
-- Value "00000000" can be used to refer to all the defined
-- bearer services.
-- For the codes referring to a group or all bearer services
-- the Transparency Indicator is not applicable and has to be set to "0"
BearerServiceList ::= SEQUENCE
SIZE(1 .. maxNumberOfBearerServices)
OF BearerServiceCode
TeleserviceCode ::= OCTET STRING (SIZE (1))
-- Internal structure according to table 6.4/2
-- Bit 8-5 encode the teleservice group
-- Bit 4-1 = 0000 can be used to refer to all the
-- teleservices of the corresponding group.
-- Value "00000000" can be used to refer to all the defined
-- teleservices
TeleserviceList ::= SEQUENCE
SIZE(1 .. maxNumberOfTeleServices)
OF TeleserviceCode
BasicServiceCode ::= CHOICE {
bearerService [2] IMPLICIT BearerServiceCode,
teleservice [3] IMPLICIT TeleserviceCode}
--
SubscriberStatus ::= ENUMERATED{
serviceGranted (0),
operatorOGCallBarring (1)}
-- Data types for supplementary services
SS-Code ::= OCTET STRING (SIZE(1))
-- Internal structure according to
-- table 6.4/3
-- Bit 8-5
-- 0001 Number Identification services
-- 0010 Forwarding services
-- 0011 Call offering services
-- 0100 Call completion services
-- 0101 Multi-party services
-- 0110 Community of interest services
-- 0111 Charging services
-- 1000 Additional information transfer services
-- 1001 Call restriction services
-- Bit 4-1 = 0000 can be use to refer to
-- a group of supplementary services
-- eg, "00100000" can be used to refer to all
-- forwarding services
-- "00101000" can be used to refer to all
-- conditional forwarding services
-- "00000000" can be used to refer to all
-- supplementary services
SS-Status ::= OCTET STRING (SIZE (1))
-- Bit 8-4 Unused
-- Bit 3 Provision indicator
-- 0 : Not provisioned
-- 1 : Provisioned
-- Bit 2 Registration indicator (if applicable)
-- 0 : Not Registered
-- 1 : Registered
-- Bit 1 Activation indicator (If applicable)
-- 0 : Not Active
-- 1 : Active
SS-Information ::= CHOICE{
forwardingInfo [0] IMPLICIT ForwardingInfo,
callBarringInfo [1] IMPLICIT CallBarringInfo,
cug-Information [2] IMPLICIT CUG-Information,
ss-Data [3] IMPLICIT SS-Data}
SS-InfoList ::= SEQUENCE
SIZE(1 .. maxNumberOfSupplServices)
OF SS-Information
--
SS-Data ::= SEQUENCE{
ss-Code SS-Code,
ss-Status [4] IMPLICIT SS-Status OPTIONAL,
ss-SubscriptionOption SS-SubscriptionOption OPTIONAL}
SS-SubscriptionOption ::= CHOICE{
perCallBasis [5] IMPLICIT BOOLEAN,
notificationToHeldRetrievedParty [6] IMPLICIT BOOLEAN,
userToUserServiceIndicator [7] IMPLICIT UserToUserServiceIndicator,
maximumConfereesNumber [8] IMPLICIT MaximumConfereesNumber,
huntGroupAccessSelectionOrder [9] IMPLICIT HuntGroupAccessSelectionOrder}
ForwardingOptions ::= OCTET STRING (SIZE(1))
-- Bit 8-7 Notification to forwarding party
-- 00 No notification
-- 01 notification with calling number identity
-- 10 notification without calling number identity
-- Bit 6-5 Notification to calling party
-- 00 No notification
-- 01 Notification with forwarded-to number
-- 10 Notification without forwarded-to number
UserToUserServiceIndicator ::= OCTET STRING (SIZE(1))
-- Bit 8 : service 1
-- Bit 7 : service 2
-- Bit 6 : service 3
-- Bit 5-1 : Reserved
-- Bit 8 to 6 coded "1" if the service
-- is available to the subscriber
MaximumConfereesNumber ::= INTEGER (1..10)
HuntGroupAccessSelectionOrder ::= ENUMERATED{
random (0),
sequential (1)}
NoReplyConditionTime ::= INTEGER (5..30)
CUG-Facilities ::= OCTET STRING (SIZE (1))
-- Bit 8-3 000000 (Unused)
-- Bit 2-1
-- 00 CUG only facilities
-- 01 CUG with outgoing access
-- 10 CUG with incoming access
-- 11 CUG with both outgoing and incoming access
CUG-Interlock ::= OCTET STRING (SIZE (4))
-- Internal structure defined in Rec CCITT Q.763
CUG-Index ::= OCTET STRING (SIZE (1))
-- Internal structure defined in Rec CCITT Q.763
CUG-Options ::= OCTET STRING (SIZE (1))
-- BIT 8-4 00000 (Unused)
-- BIT 3 preferential CUG indicator
-- 0 no preferential
-- 1 preferential CUG
-- BIT 2 barring of incoming calls within the CUG
-- 0 no barring
-- 1 barring
-- BIT 1 barring of outgoing calls within the CUG
-- 0 no barring
-- 1 barring
CUG-Feature ::= SEQUENCE {
cug-interlock CUG-Interlock,
cug-Index CUG-Index,
cug-Options CUG-Options,
ss-Status SS-Status}
CUG-FeatureList ::= SEQUENCE SIZE (
1..maxNumberOfCUG) OF CUG-Feature
-- =========================================================
--
-- EEDKBU:
--
-- The original CUG-Information data type has been:
--
-- ------------------
--
-- CUG-Information ::= SEQUENCE{
-- cug-Facilities CUG-Facilities,
-- CHOICE{
-- cug-Feature [0] IMPLICIT CUG-Feature,
-- cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
-- the first alternative of the choice should be used
-- for the preferred CUG.
--
-- ------------------
--
-- This is incorrect ASN.1 notation! The CHOICE has also to be a named
-- type. Therefore, the definition was changed and can be seen below:
--
-- =========================================================
CUG-Information ::= SEQUENCE{
cug-Facilities CUG-Facilities,
cug-FeatureChoice CHOICE{
cug-Feature [0] IMPLICIT CUG-Feature,
cug-FeatureList [1] IMPLICIT CUG-FeatureList}}
-- the first alternative of the choice should be used
-- for the preferred CUG.
--
ForwardingInfo ::= SEQUENCE{
ss-Code SS-Code OPTIONAL,
forwardingFeatureList ForwardingFeatureList}
ForwardingFeature ::= SEQUENCE {
basicService BasicServiceCode OPTIONAL,
ss-Status [4] IMPLICIT SS-Status,
forwardedToNumber [5] IMPLICIT IsdnAddressString OPTIONAL,
forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL,
noReplyConditionTime [7] IMPLICIT NoReplyConditionTime OPTIONAL}
ForwardingFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfForwardingFeatures)
OF ForwardingFeature
CallBarringInfo ::= SEQUENCE {
ss-Code SS-Code,
callBarringFeatureList CallBarringFeatureList}
CallBarringFeature ::= SEQUENCE{
basicServiceCode BasicServiceCode OPTIONAL,
ss-Status [4] IMPLICIT SS-Status }
CallBarringFeatureList ::= SEQUENCE SIZE (1.. maxNumberOfCallBarringFeatures)
OF CallBarringFeature
SubscriberData ::= SEQUENCE{
msIsdn [1] IMPLICIT IsdnAddressString OPTIONAL,
category [2] IMPLICIT Category OPTIONAL,
subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL,
bearerServiceList [4] IMPLICIT BearerServiceList OPTIONAL,
teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL,
provisonedSupplServices [7] IMPLICIT SS-InfoList OPTIONAL}
-- Data types for security procedures
AuthenticationSet ::= SEQUENCE {
rand Rand,
sres Sres,
kc Kc}
Rand ::= OCTET STRING (SIZE (16))
Sres ::= OCTET STRING (SIZE (4))
Kc ::= OCTET STRING (SIZE (8))
Ki ::= OCTET STRING (SIZE (16))
-- Data types for fault recovery, call tracing
NetworkResource ::= ENUMERATED {
pLMN (0),
hLR (1),
vLR (2),
previous-VLR (3),
controlling-MSC (4),
vMSC (5),
eIR (6),
radioSubSystem (7)}
-- other data types
RequestParameter ::= ENUMERATED{
request-IMSI (0),
request-AuthenticationSet (1),
request-SubscriberData (2),
request-CUG-Information (3),
request-Ki (4)}
RequestParameters ::= SEQUENCE SIZE (1..2) OF RequestParameter
SentParameter ::= CHOICE{
imsi [0] IMPLICIT IMSI,
authenticationSet [1] IMPLICIT AuthenticationSet,
subscriberData [2] IMPLICIT SubscriberData,
cug-information [3] IMPLICIT CUG-Information,
ki [4] IMPLICIT Ki}
END