-- Nokia proprietary extensions -- $Id$ -- NokiaMAP-Extensions DEFINITIONS IMPLICIT TAGS ::= BEGIN IMPORTS Category, ODB-Data, CUG-Interlock FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-MS-DataTypes (11) version13 (13)} ISDN-AddressString, AddressString, TBCD-STRING, SignalInfo, BasicServiceCode, IMSI, IMEI, SubscriberIdentity, CellGlobalIdOrServiceAreaIdFixedLength, LAIFixedLength, Ext-SS-Status FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)} PrivateExtension, ExtensionContainer FROM MAP-ExtensionDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version13 (13)} TraceReference, TraceType FROM MAP-OM-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-OM-DataTypes (12) version13 (13)} SS-Code FROM MAP-SS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-SS-Code (15) version10 (10)} SS-Status, USSD-DataCodingScheme, USSD-String, CCBS-Feature -- USSD-DataCodingScheme, USSD-String were introduced because of CNAP. FROM MAP-SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-SS-DataTypes (14) version10 (10)} ; ExtensionSet MAP-EXTENSION ::= { { &ExtensionType; IsdArgExt, &extensionId; {0 34 0} } | { &ExtensionType; DsdArgExt, &extensionId; {0 34 1} } | { &ExtensionType; UlResExt, &extensionId; {0 34 2} } | { &ExtensionType; SS-DataExtension, &extensionId; {0 34 4} } | { &ExtensionType; SriExtension, &extensionId; {0 34 5} } | { &ExtensionType; ExtraSignalInfo, &extensionId; {0 34 6} } | { &ExtensionType; SriResExtension, &extensionId; {0 34 7} } | { &ExtensionType; CanLocArgExt, &extensionId; {0 34 10} } | { &ExtensionType; ATMargExt, &extensionId; {0 34 11} } | { &ExtensionType; DTMargExt, &extensionId; {0 34 12} } | { &ExtensionType; NumberPorted, &extensionId; {0 34 13} } | { &ExtensionType; HO-Ext, &extensionId; {0 34 15} } | { &ExtensionType; ATMresExt, &extensionId; {0 34 16} } | { &ExtensionType; AbsentSubscriberExt, &extensionId; {0 34 17} } | { &ExtensionType; SriForSMArgExt, &extensionId; {0 34 18} } | { &ExtensionType; ReportSMDelStatArgExt, &extensionId; {0 34 19} } | { &ExtensionType; UdlArgExt, &extensionId; {0 34 20} } | { &ExtensionType; RoamNotAllowedExt, &extensionId; {0 34 21} } | { &ExtensionType; MO-ForwardSM-ArgExt, &extensionId; {0 34 22} } | { &ExtensionType; ErrOlcmInfoTableExt, &extensionId; {0 34 23} } | { &ExtensionType; RoutingCategoryExt, &extensionId; {0 34 25} } | { &ExtensionType; AnyTimeModArgExt, &extensionId; {0 34 26} } | { &ExtensionType; ExtensionType, &extensionId; {1 2 826 0 1249 58 1 0} } | { &ExtensionType; AccessTypeExt, &extensionId; {1 3 12 2 1107 3 66 1 1} } | { &ExtensionType; AccessSubscriptionListExt, &extensionId; {1 3 12 2 1107 3 66 1 3} } | { &ExtensionType; AllowedServiceData, &extensionId; {1 3 12 2 1107 3 66 1 6} }, ...} -- ExtensionSet is the set of all defined private extensions -- Unsupported private extensions shall be discarded if received. RoutingCategory ::= OCTET STRING (SIZE (1)) -- value 0 means that RoutingCategory is released maxNumOfActiveSS INTEGER ::= 30 ActiveSS-List ::= OCTET STRING (SIZE (1..maxNumOfActiveSS)) ExtRoutingCategory ::= INTEGER (0..2147483647) IsdArgExt ::= [PRIVATE 0] SEQUENCE { alsLineIndicator [0] NULL OPTIONAL, routingCategory [1] RoutingCategory OPTIONAL, serviceList [2] MAPserviceList OPTIONAL, serv-info-list [3] ServiceListWithInfo OPTIONAL, extRoutingCategory [5] ExtRoutingCategory OPTIONAL, ownMSISDN [6] ISDN-AddressString OPTIONAL, ...} -- Note : additional routing category is removed from VLR by -- sending ISD with add-RC value zero (0). DsdArgExt ::= [PRIVATE 0] SEQUENCE { alsLineIndicator [0] NULL OPTIONAL, serviceList [1] MAPserviceList OPTIONAL, ...} UlResExt ::= [PRIVATE 0] SEQUENCE { mwd-Set [0] NULL OPTIONAL, ...} EmoInCategoryKey ::= TBCD-STRING (SIZE (1..3)) SS-DataEmoInExt ::= [PRIVATE 1] SEQUENCE { emoInCategoryKey [PRIVATE 2] EmoInCategoryKey OPTIONAL, ...} InTriggerKey ::= INTEGER (1..65535) PnpIndex ::= OCTET STRING (SIZE (3)) -- digits 0 through 9, two digits per octet, -- each digit encoded 0000 to 0001, -- 5 digits, 1111 used as filler for last digit. CallRedirectionIndex ::= INTEGER (0..255) ChargingArea ::= INTEGER (1..9999) maxNumOfCA INTEGER ::= 3 ChargingAreaList ::= SEQUENCE SIZE (1..maxNumOfCA) OF ChargingArea RegionalChargingData ::= SEQUENCE { chargingAreaList [0] ChargingAreaList OPTIONAL, ...} SS-DataExtension ::= [PRIVATE 0] SEQUENCE { inTriggerKey [0] InTriggerKey OPTIONAL, pnpIndex [1] PnpIndex OPTIONAL, callRedirectionIndex [2] CallRedirectionIndex OPTIONAL, regionalChargingData [3] RegionalChargingData OPTIONAL, ...} SriExtension ::= [PRIVATE 0] SEQUENCE { callForwardingOverride [0] NULL OPTIONAL, in-Capability [1] NULL OPTIONAL, callingCategory [2] CallingCategory OPTIONAL, internalServiceIndicator [3] InternalServiceIndicator OPTIONAL, srbtSupportIndicator [4] NULL OPTIONAL, gmscSupportIndicator [5] NULL OPTIONAL, ...} CallingCategory ::= OCTET STRING (SIZE (1)) -- 'E9'hex used in SRI-arg -- 'E8'hex used in SRI-res InternalServiceIndicator ::= OCTET STRING (SIZE (1)) -- bits 8765: 0000 (unused) -- bit 4: intelligent alerting -- bit 3: parallel alerting -- bit 2: member interrogation -- bit 1: sequential alerting -- 1 set -- 0 not set ExtraProtocolId ::= INTEGER { q763 (1)} (1..20) ExtraSignalInfo ::= [PRIVATE 1] SEQUENCE { protocolId ExtraProtocolId, signalInfo SignalInfo } CUG-CallInfo ::= OCTET STRING (SIZE (1..4)) -- xxxx xx00 - not used -- xxxx xx01 - CUG call -- xxxx xx10 - non CUG call -- xxxx xx11 - maybe a CUG call Nokia-CUG-Data ::= SEQUENCE { cug-Interlock [0] CUG-Interlock OPTIONAL, cug-OutgoingAccess [1] BOOLEAN OPTIONAL, cug-CallInfo [2] CUG-CallInfo OPTIONAL, ...} -- cug-OutgoingAccess must be BOOLEAN (not NULL), because -- it must be possible to transfer cug-CallInfo without -- the other parameters SriResExtension ::= [PRIVATE 0] SEQUENCE { inTriggerKey [0] InTriggerKey OPTIONAL, vlrNumber [1] ISDN-AddressString OPTIONAL, activeSs [2] ActiveSS-List OPTIONAL, traceReference [3] TraceReference OPTIONAL, traceType [4] TraceType OPTIONAL, omc-Id [5] AddressString OPTIONAL, hotBilling [6] BOOLEAN OPTIONAL, cfoIsDone [7] BOOLEAN OPTIONAL, cfInCug [8] BOOLEAN OPTIONAL, basicService [9] BasicServiceCode OPTIONAL, category [10] Category OPTIONAL, routingCategory [11] RoutingCategory OPTIONAL, pnpIndex [12] PnpIndex OPTIONAL, nokia-CUG [13] Nokia-CUG-Data OPTIONAL, noBarrings [14] NULL OPTIONAL, odb-Data [15] ODB-Data OPTIONAL, fraudData [16] FraudData OPTIONAL, extRoutingCategory [17] ExtRoutingCategory OPTIONAL, leaId [18] LeaId OPTIONAL, olcmInfoTable [19] OlcmInfoTable OPTIONAL, callingCategory [20] CallingCategory OPTIONAL, commonMSISDN [21] ISDN-AddressString OPTIONAL, rgData [22] RgData OPTIONAL, olcmTraceReference [23] OlcmTraceReference OPTIONAL, ...} RgData ::= SEQUENCE { noAnswerTimer [0] NoAnswerTimer OPTIONAL, memberList [1] MemberList OPTIONAL, alertingMethod [2] AlertingMethod OPTIONAL, userType [3] UserType OPTIONAL, divertedToNbr [4] ISDN-AddressString OPTIONAL, memberOfSuppression [5] NULL OPTIONAL, ringbacktone [6] NULL OPTIONAL, ...} NoAnswerTimer ::= OCTET STRING (SIZE (1)) MemberList ::= SEQUENCE SIZE (1..5) OF ISDN-AddressString AlertingMethod ::= OCTET STRING (SIZE (1)) -- '00' = sequential -- '01' = parallel -- '02' = sequential / parallel -- '03' = intelligent UserType ::= OCTET STRING (SIZE (1)) -- '00' = single -- '01' = multiple MAPserviceCode ::= OCTET STRING (SIZE (1)) picLock MAPserviceCode ::= '00000001'B prefCarrierId MAPserviceCode ::= '00000010'B mKey MAPserviceCode ::= '00000011'B smsKey MAPserviceCode ::= '00000100'B fraud-Data MAPserviceCode ::= '00000101'B cell-update MAPserviceCode ::= '00000110'B maxnumOfMAPservices INTEGER ::= 256 MAPserviceList ::= OCTET STRING (SIZE (0..maxnumOfMAPservices)) CarrierIdCode ::= OCTET STRING (SIZE (3)) -- the internal structure is defined in T1.113 PrefCarrierIdList ::= SEQUENCE { prefCarrierIdCode1 [0] CarrierIdCode, ...} ANSIIsdArgExt ::= [PRIVATE 30] SEQUENCE { prefCarrierIdList [0] PrefCarrierIdList OPTIONAL, ...} ANSISriResExt ::= [PRIVATE 30] SEQUENCE { prefCarrierIdList [0] PrefCarrierIdList OPTIONAL, ...} CanLocArgExt ::= [PRIVATE 0] SEQUENCE { termination [0] OCTET STRING (SIZE (1)) OPTIONAL, ...} ATMargExt ::= [PRIVATE 0] SEQUENCE { traceReference [0] TraceReference OPTIONAL, traceType [1] TraceType OPTIONAL, leaId [2] LeaId OPTIONAL, olcmInfoTable [3] OlcmInfoTable OPTIONAL, olcmTraceReference [4] OlcmTraceReference OPTIONAL, ... } LeaId ::= INTEGER (0..65535) OlcmInfoTable ::= SEQUENCE SIZE (1..maxNumOfLEAs) OF OlcmInfo maxNumOfLEAs INTEGER ::= 7 OlcmInfo ::= SEQUENCE { traceReference [0] TraceReference, traceType [1] TraceType, leaId [2] LeaId OPTIONAL, olcmTraceReference [3] OlcmTraceReference OPTIONAL, ... } OlcmTraceReference ::= OCTET STRING (SIZE (1..4)) ATMresExt ::= [PRIVATE 0] SEQUENCE { olcmActive [0] NULL OPTIONAL, ... } DTMargExt ::= [PRIVATE 0] SEQUENCE { traceType [0] TraceType OPTIONAL, leaId [1] LeaId OPTIONAL, olcmTraceReference [2] OlcmTraceReference OPTIONAL, ... } VersionInfo ::= OCTET STRING (SIZE (1)) -- 0000 0001 : version 1 maxNumOfServicesWithInfo INTEGER ::= 20 FraudInfo ::= SEQUENCE { moc [0] FraudData OPTIONAL, cf [1] FraudData OPTIONAL, ct [2] FraudData OPTIONAL, ...} FraudData ::= SEQUENCE { time [0] TimeLimit OPTIONAL, timeAction [1] ActionType OPTIONAL, maxCount [2] FraudMaxCount OPTIONAL, maxCountAction [3] ActionType OPTIONAL, ...} TimeLimit ::= INTEGER (0..64800) ActionType ::= OCTET STRING (SIZE (1..10)) -- only 1st octet is used to transfer action type in M10 -- other octets are reserved for future use FraudMaxCount ::= INTEGER (0..255) ServiceWithInfo ::= SEQUENCE { serviceCode [0] MAPserviceCode OPTIONAL, versionInfo [1] VersionInfo DEFAULT '1'B, in-key INKey OPTIONAL, fraudInfo FraudInfo OPTIONAL, ...} ServiceListWithInfo ::= SEQUENCE SIZE (1..maxNumOfServicesWithInfo) OF ServiceWithInfo INKey ::= CHOICE { mobile-IN-key [2] MKey, sms-IN-key [3] SMSKey } MmTdpName ::= OCTET STRING (SIZE (1..8)) -- bits 876543: 000000 (unused) -- -- bit 2: Intra-VLR-Locup-DP -- 1 DP is set -- 0 DP is not set -- -- bit 1: Inter-VLR-Locup-DP -- 1 DP is set -- 0 DP is not set ServiceKey ::= INTEGER (0..2147483647) -- 4 bytes MKeyVer ::= OCTET STRING (SIZE (1)) -- 0000 0001 : version 1 LocupType ::= OCTET STRING (SIZE (1..8)) -- bits 87654: 00000 (unused) -- -- bit 3: Normal-Locup -- 1 LocupType is set (default) -- 0 LocupType is not set -- -- bit 2: Periodic-Locup -- 1 LocupType is set -- 0 LocupType is not set (default) -- -- bit 1: IMSI-attach-Locup -- 1 LocupType is set -- 0 LocupType is not set (default) MKey::= SEQUENCE{ mKeyVer [0] MKeyVer DEFAULT '1'B, mmScfAddress [1] ISDN-AddressString OPTIONAL, mmTdpName [2] MmTdpName OPTIONAL, serviceKey [3] ServiceKey OPTIONAL, locupType [4] LocupType OPTIONAL, ...} -- if mKeyVer parameter is missing, it is interpreted as -- "version 1". -- mmScfAddress, mmTtdpId and serviceKey parameters must be -- present on version 1. -- -- Feature 742 : “IN Mobility Management” SmsTdpName ::= OCTET STRING (SIZE (1..8)) -- bits 87654: 00000 (unused) -- -- bit 3: SR-SMS-DP -- 1 DP is set -- 0 DP is not set -- -- bit 2: MO-SMS-DP -- 1 DP is set -- 0 DP is not set -- -- bit 1: MT-SMS-DP -- 1 DP is set -- 0 DP is not set SMSKey ::= SEQUENCE{ mmSCPAddress [0] ISDN-AddressString OPTIONAL, smsTdpName [1] SmsTdpName OPTIONAL, serviceKey [2] ServiceKey OPTIONAL, mmsFlag [3] NULL OPTIONAL, ...} NumberPorted ::= [PRIVATE 20] ENUMERATED { notPorted (0), ported (1), ...} USSD-Extension ::= [PRIVATE 10] SEQUENCE { routingCategory [0] RoutingCategory OPTIONAL, cellId [1] CellGlobalIdOrServiceAreaIdFixedLength OPTIONAL, sai-Present [2] NULL OPTIONAL, ...} HO-Ext ::= [PRIVATE 0] SEQUENCE { map-Opt [0] MapOptFields OPTIONAL, codec-List [1] CodecListExt OPTIONAL, selected-Codec [2] SelectedCodec OPTIONAL, uma-access [3] NULL OPTIONAL, uma-ip-address [4] OCTET STRING (SIZE (5..17)) OPTIONAL, uma-ip-port-nb [5] IPPortNb OPTIONAL, ... } MapOptFields ::= OCTET STRING (SIZE (1)) -- bits 87: 00 (unused) -- bit 6: codec -- 1 set -- 0 not set -- bit 5: tfo_set -- 1 set -- 0 not set -- bit 4: tfo_not_set -- 1 set -- 0 not set -- bit 3: emerg -- 1 set -- 0 not set -- bit 2: usim -- 1 set -- 0 not set -- bit 1: sim -- 1 set -- 0 not set CodecListExt ::= SEQUENCE (SIZE(0..maxNumOfCodec)) OF CodecExt maxNumOfCodec INTEGER ::= 8 CodecExt ::= OCTET STRING (SIZE(1)) SelectedCodec ::= SEQUENCE { codec [0] CodecExt, modes [1] Modes, ...} Modes ::= OCTET STRING (SIZE(9)) IPPortNb ::= INTEGER (0..65535) AbsentSubscriberExt ::= [PRIVATE 0] SEQUENCE { olcmInfoTable [0] OlcmInfoTable OPTIONAL, imsi [1] IMSI OPTIONAL, ...} ErrOlcmInfoTableExt ::= [PRIVATE 0] SEQUENCE { olcmInfoTable [0] OlcmInfoTable OPTIONAL, imsi [1] IMSI OPTIONAL, ...} RoutingCategoryExt ::= [PRIVATE 0] SEQUENCE { routingCategory [0] RoutingCategory OPTIONAL, extRoutingCategory [1] ExtRoutingCategory OPTIONAL, ... } ExtensionType ::= CHOICE { isdArgType [1] IsdArgType, isdResType [2] IsdResType, dsdArgType [3] DsdArgType, sriArgType [4] SriArgType, sriResType [5] SriResType, prnArgType [6] PrnArgType, ulArgType [7] UlArgType } IsdArgType ::= SEQUENCE (SIZE(1..50)) OF IsdArgData IsdArgData ::= SEQUENCE { privateFeatureCode [1] PrivateFeatureCode OPTIONAL, privateFeatureData PrivateFeatureData OPTIONAL, ...} PrivateFeatureCode ::= OCTET STRING (SIZE (1)) PrivateFeatureData ::= CHOICE { oickInfo [7] OickInfo, subscriptionTypeInfo [3] SubscriptionTypeInfo } OickInfo ::= SEQUENCE { ss-Status Ext-SS-Status, inCategoryKey INCategoryKey } INCategoryKey ::= TBCD-STRING (SIZE(1..3)) SubscriptionTypeInfo ::= SEQUENCE { subscriptionType SubscriptionType } SubscriptionType ::= OCTET STRING (SIZE(1)) IsdResType ::= SEQUENCE (SIZE(1..50)) OF IsdResData IsdResData ::= SEQUENCE { supportedPrivateFeature [1] PrivateFeatureCode OPTIONAL, ... } DsdArgType ::= SEQUENCE (SIZE (1..50)) OF DsdArgData DsdArgData ::= SEQUENCE { privateFeatureWithdraw PrivateFeatureCode } SriArgType ::= SEQUENCE (SIZE(1..50)) OF SriArgData SriArgData ::= SEQUENCE { privateFeatureCode [1] PrivateFeatureCode OPTIONAL, extraNetworkInfo [2] ExtraSignalInfo OPTIONAL, ... } SriResType ::= SEQUENCE (SIZE(1..50)) OF SriResData SriResData ::= SEQUENCE { privateFeatureCode [1] PrivateFeatureCode OPTIONAL, inCategoryKey [2] INCategoryKey OPTIONAL, subscriptionType [5] SubscriptionType OPTIONAL, ... } PrnArgType ::= SEQUENCE (SIZE(1..50)) OF PrnArgData PrnArgData ::= SEQUENCE { privateFeatureCode [1] PrivateFeatureCode OPTIONAL, ..., extraNetworkInfo [2] ExtraSignalInfo OPTIONAL } UlArgType ::= SEQUENCE (SIZE(1..50)) OF UlArgData UlArgData ::= SEQUENCE { privateFeatureCode [1] PrivateFeatureCode OPTIONAL, privateFeatureUlArgData PrivateFeatureUlArgData OPTIONAL, ... } PrivateFeatureUlArgData ::= CHOICE { adc [3] IMEI } SriForSMArgExt ::= [PRIVATE 0] SEQUENCE { cfuSMSCounter [0] CfuSMSCounter OPTIONAL, cfusmcfo [2] NULL OPTIONAL, memberInterrogate [3] NULL OPTIONAL, ... } ReportSMDelStatArgExt ::= [PRIVATE 0] SEQUENCE { cfuSMSCounter [0] CfuSMSCounter OPTIONAL, cfusmcfo [2] NULL OPTIONAL, ... } CfuSMSCounter ::= OCTET STRING (SIZE (1)) MO-ForwardSM-ArgExt ::= [PRIVATE 0] SEQUENCE { locationAreaCode [0] LocationAreaCode OPTIONAL, cellId [1] CellGlobalIdOrServiceAreaIdFixedLength OPTIONAL, ... } LocationAreaCode ::= OCTET STRING(SIZE (2)) -- octets 1 and 2 of LocationAreaCode according to 3GPP TS 24.008 UdlArgExt ::= [PRIVATE 0] SEQUENCE { lai [0] LAIFixedLength OPTIONAL, sendImmResp [1] NULL OPTIONAL, ... } RoamNotAllowedExt ::= [PRIVATE 0] SEQUENCE { rejectCause [0] OCTET STRING (SIZE (1)) OPTIONAL, ... } AnyTimeModArgExt ::= [PRIVATE 0] SEQUENCE { senderMSISDN [0] ISDN-AddressString OPTIONAL, ... } CosInfo::= SEQUENCE { ss-Code SS-Code OPTIONAL, cos-FeatureList COS-FeatureList } COS-FeatureList ::= SEQUENCE SIZE (1..maxNumberOfCOSFeatures) OF COS-Feature maxNumberOfCOSFeatures INTEGER ::= 13 -- This reflects the number of basic service groups, and is -- consistent with other features (i.e., Forwarding Features, -- CallBarring Features, etc.). COS-Feature ::= SEQUENCE { basicServiceCode BasicServiceCode OPTIONAL, ss-Status [4] SS-Status, customerGroupID [5] CustomerGroupID OPTIONAL, subGroupID [6] SubGroupID OPTIONAL, classOfServiceID [7] ClassOfServiceID OPTIONAL } CustomerGroupID ::= BIT STRING { formatIndicator (0), idHighBit (8), netidHighBit (16), idLowBit (31) } (SIZE(32)) -- formatIndicator is encoded as follows: -- 0 : International Format -- 1 : Network Format -- Bits 1-7 Unused (encoded as 0000000) -- The remaining bits (3 octets) are the bit representation of the -- Customer Group Identifier. All bits are significant. SubGroupID ::= BIT STRING (SIZE (16)) ClassOfServiceID ::= BIT STRING { formatIndicator (0), idHighBit (8), idLowBit (15) } (SIZE(16)) -- formatIndicator is encoded as follows: -- 0 : International Format -- 1 : Network Format -- Bits 1-7 Unused (encoded as 0000000) -- The remaining bits (one octet) is the bit representation of the -- Class Of Service Identifier. All bits are significant. AccessTypeExt ::= SEQUENCE { access Access, version Version, ...} Access ::= ENUMERATED { gsm (1), geran (2), utran (3), ...} Version ::= INTEGER (1..20) AccessSubscriptionListExt ::= SEQUENCE SIZE (1..10) OF Access AllowedServiceData ::= BIT STRING { amr-wb-allowed (0)} (SIZE(1..16)) AnyTimePO-BarringArg ::= SEQUENCE { subscriberIdentity [0] SubscriberIdentity, gsmSCF-Address [3] ISDN-AddressString, gprs-Barring GprsBarring, ...} AnyTimePO-BarringRes ::= SEQUENCE { ...} GprsBarring ::= ENUMERATED { gprsServiceBarring (0), grantGPRS-Service (1), ...} END