1-- module(Mvrasn-18-4). 2-- vsn('%CCaseRev: %'). 3-- date('%CCaseDate: %'). 4-- author('eedkbu'). 5-- ============================================================================= 6 7-- ============================================================================= 8-- 9-- Title : "Common data types". 10-- 11-- ASN.1 module: "MAP-CommonDataTypes". 12-- 13-- ============================================================================= 14 15-- ============================================================== 16-- #1. REVISION LOG 17-- ============================================================== 18-- Rev Date Name What 19-- .... ....... ....... ........................................ 20-- PA1 981014 eedkbu First draft, based on GSM 09.02 v. 6.1.0. 21-- .............................................................. 22 23Mvrasn-18-4 24 25DEFINITIONS 26 27IMPLICIT TAGS 28 29::= 30 31BEGIN 32 33EXPORTS 34 35 -- general data types and values 36 AddressString, 37 ISDN-AddressString, 38 maxISDN-AddressLength, 39 ISDN-SubaddressString, 40-- ExternalSignalInfo, 41 LMSI, 42 43 -- data types for numbering and identification 44 IMSI, 45 NetworkResource, 46 NAEA-PreferredCI, 47 48 -- data types for subscriber management 49 Ext-BasicServiceCode, 50 EMLPP-Info 51; 52 53IMPORTS 54 55 ExtensionContainer 56FROM Mvrasn-21-4 57 58 Ext-BearerServiceCode 59FROM Mvrasn-20-4 60 61 Ext-TeleserviceCode 62FROM Mvrasn-19-4 63 64; 65 66-- general data types 67 68TBCD-STRING ::= OCTET STRING 69 -- This type (Telephony Binary Coded Decimal String) is used to 70 -- represent several digits from 0 through 9, *, #, a, b, c, two 71 -- digits per octet, each digit encoded 0000 to 1001 (0 to 9), 72 -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used 73 -- as filler when there is an odd number of digits. 74 75 -- bits 8765 of octet n encoding digit 2n 76 -- bits 4321 of octet n encoding digit 2(n-1) +1 77 78AddressString ::= OCTET STRING (SIZE (1..maxAddressLength)) 79 -- This type is used to represent a number for addressing 80 -- purposes. It is composed of 81 -- a) one octet for nature of address, and numbering plan 82 -- indicator. 83 -- b) digits of an address encoded as TBCD-String. 84 85 -- a) The first octet includes a one bit extension indicator, a 86 -- 3 bits nature of address indicator and a 4 bits numbering 87 -- plan indicator, encoded as follows: 88 89 -- bit 8: 1 (no extension) 90 91 -- bits 765: nature of address indicator 92 -- 000 unknown 93 -- 001 international number 94 -- 010 national significant number 95 -- 011 network specific number 96 -- 100 subscriber number 97 -- 101 reserved 98 -- 110 abbreviated number 99 -- 111 reserved for extension 100 101 -- bits 4321: numbering plan indicator 102 -- 0000 unknown 103 -- 0001 ISDN/Telephony Numbering Plan (Rec CCITT E.164) 104 -- 0010 spare 105 -- 0011 data numbering plan (CCITT Rec X.121) 106 -- 0100 telex numbering plan (CCITT Rec F.69) 107 -- 0101 spare 108 -- 0110 land mobile numbering plan (CCITT Rec E.212) 109 -- 0111 spare 110 -- 1000 national numbering plan 111 -- 1001 private numbering plan 112 -- 1111 reserved for extension 113 114 -- all other values are reserved. 115 116 -- b) The following octets representing digits of an address 117 -- encoded as a TBCD-STRING. 118 119maxAddressLength INTEGER ::= 20 120 121ISDN-AddressString ::= 122 AddressString (SIZE (1..maxISDN-AddressLength)) 123 -- This type is used to represent ISDN numbers. 124 125maxISDN-AddressLength INTEGER ::= 9 126 127ISDN-SubaddressString ::= 128 OCTET STRING (SIZE (1..maxISDN-SubaddressLength)) 129 -- This type is used to represent ISDN subaddresses. 130 -- It is composed of 131 -- a) one octet for type of subaddress and odd/even indicator. 132 -- b) 20 octets for subaddress information. 133 134 -- a) The first octet includes a one bit extension indicator, a 135 -- 3 bits type of subaddress and a one bit odd/even indicator, 136 -- encoded as follows: 137 138 -- bit 8: 1 (no extension) 139 140 -- bits 765: type of subaddress 141 -- 000 NSAP (X.213/ISO 8348 AD2) 142 -- 010 User Specified 143 -- All other values are reserved 144 145 -- bit 4: odd/even indicator 146 -- 0 even number of address signals 147 -- 1 odd number of address signals 148 -- The odd/even indicator is used when the type of subaddress 149 -- is "user specified" and the coding is BCD. 150 151 -- bits 321: 000 (unused) 152 153 -- b) Subaddress information. 154 -- The NSAP X.213/ISO8348AD2 address shall be formatted as specified 155 -- by octet 4 which contains the Authority and Format Identifier 156 -- (AFI). The encoding is made according to the "preferred binary 157 -- encoding" as defined in X.213/ISO834AD2. For the definition 158 -- of this type of subaddress, see CCITT Rec I.334. 159 160 -- For User-specific subaddress, this field is encoded according 161 -- to the user specification, subject to a maximum length of 20 162 -- octets. When interworking with X.25 networks BCD coding should 163 -- be applied. 164 165maxISDN-SubaddressLength INTEGER ::= 21 166 167-- data types for numbering and identification 168 169IMSI ::= TBCD-STRING (SIZE (3..8)) 170 -- digits of MCC, MNC, MSIN are concatenated in this order. 171 172LMSI ::= OCTET STRING (SIZE (4)) 173 174NetworkResource ::= ENUMERATED { 175 plmn (0), 176 hlr (1), 177 vlr (2), 178 pvlr (3), 179 controllingMSC (4), 180 vmsc (5), 181 eir (6), 182 rss (7)} 183 184NAEA-PreferredCI ::= SEQUENCE { 185 naea-PreferredCIC [0] NAEA-CIC, 186 extensionContainer [1] ExtensionContainer OPTIONAL, 187 ...} 188 189NAEA-CIC ::= OCTET STRING (SIZE (3)) 190 -- The internal structure is defined by the Carrier Identification 191 -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may 192 -- be encoded as 3 digits using "000" to "999" or as 4 digits using 193 -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded 194 -- using 4 digits. 195 196 197-- data types for subscriber management 198 199Ext-BasicServiceCode ::= CHOICE { 200 ext-BearerService [2] Ext-BearerServiceCode, 201 ext-Teleservice [3] Ext-TeleserviceCode} 202 203EMLPP-Info ::= SEQUENCE { 204 maximumentitledPriority EMLPP-Priority, 205 defaultPriority EMLPP-Priority, 206 extensionContainer ExtensionContainer OPTIONAL, 207 ...} 208 209EMLPP-Priority ::= INTEGER (0..15) 210 -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is 211 -- specified as follows where A is the highest and 4 is the lowest 212 -- priority level 213 -- the integer values 7-15 are spare and shall be mapped to value 4 214 215END 216