[layer23] Added special return value for invalid MCC/MNC input
[osmocom-bb.git] / src / host / layer23 / src / common / networks.c
1 #include <string.h>
2 #include <stdint.h>
3 #include <stdio.h>
4
5 #include <osmocom/bb/common/networks.h>
6
7 /* list of networks */
8
9 struct gsm_networks gsm_networks[] = {
10         { 0x001, -1,    "Test" },
11         { 0x001, 0x01f,         "Test" },
12         { 0x412, -1,    "Afghanistan" },
13         { 0x412, 0x01f,         "AWCC" },
14         { 0x412, 0x20f,         "Roshan" },
15         { 0x412, 0x30f,         "New1" },
16         { 0x412, 0x40f,         "Areeba" },
17         { 0x412, 0x50f,         "Etisalat" }, /* ? */
18         { 0x412, 0x88f,         "Afghan Telecom" },
19         { 0x276, -1,    "Albania" },
20         { 0x276, 0x01f,         "AMC" },
21         { 0x276, 0x02f,         "Vodafone" },
22         { 0x276, 0x03f,         "Eagle Mobile" },
23         { 0x276, 0x04f,         "Mobile 4 AL" },
24         { 0x603, -1,    "Algeria" },
25         { 0x603, 0x01f,         "Algerie Telecom" },
26         { 0x603, 0x02f,         "Orascom Telecom Algerie" },
27         { 0x603, 0x03f,         "Nedjma" }, /* ? */
28         { 0x213, -1,    "Andorra" },
29         { 0x213, 0x03f,         "Mobiland" },
30         { 0x631, -1,    "Angola" },
31         { 0x631, 0x02f,         "UNITEL" },
32         { 0x365, -1,    "Anguilla" },
33         { 0x365, 0x010,         "Weblinks Limited" },
34         { 0x365, 0x840,         "Cable & Wireless" }, /* ? */
35         { 0x344, -1,    "Antigua and Barbuda" },
36         { 0x344, 0x030,         "APUA PCS" },
37         { 0x338, 0x050,         "Digicel" }, /* ? */
38         { 0x344, 0x920,         "Cable & Wireless (Antigua)" },
39         { 0x344, 0x930,         "AT&T Wireless (Antigua)" },
40         { 0x722, -1,    "Argentina" },
41         { 0x722, 0x010,         "Companie de Radiocomunicatciones Moviles S.A." },
42         { 0x722, 0x020,         "Nextel Argentina srl" },
43         { 0x722, 0x070,         "Telefonica Communicationes Personales S.A." },
44         { 0x722, 0x310,         "CTI PCS S.A" },
45         { 0x722, 0x320,         "Compania de Telefonos del Interior Norte S.A." },
46         { 0x722, 0x330,         "Companie de Telefonos del Interior S.A." },
47         { 0x722, 0x340,         "Personal" }, /* ? */
48         { 0x722, 0x341,         "Telecom Personal S.A." },
49         { 0x722, 0x350,         "Hutchinson (PORT HABLE)" }, /* ? */
50         { 0x283, -1,    "Armenia" },
51         { 0x283, 0x01f,         "Beeline" },
52         { 0x283, 0x05f,         "VivaCell-MTS" },
53         { 0x283, 0x10f,         "Orange" },
54         { 0x363, -1,    "Aruba" },
55         { 0x363, 0x01f,         "SETAR" },
56         { 0x363, 0x02f,         "Digicel" }, /* ? */
57         { 0x505, -1,    "Australia" },
58         { 0x505, 0x01f,         "Telstra" },
59         { 0x505, 0x02f,         "Optus" },
60         { 0x505, 0x03f,         "Vodafone" },
61         { 0x505, 0x04f,         "Department of Defence" },
62         { 0x505, 0x05f,         "Ozitel" },
63         { 0x505, 0x06f,         "Hutchison 3G"},
64         { 0x505, 0x07f,         "Vodafone" },
65         { 0x505, 0x08f,         "One.Tel" },
66         { 0x505, 0x09f,         "Airnet" },
67         { 0x505, 0x10f,         "Norfolk Telecom" },
68         { 0x505, 0x11f,         "Telstra" },
69         { 0x505, 0x12f,         "3" },
70         { 0x505, 0x13f,         "Railcorp" },
71         { 0x505, 0x14f,         "AAPT" },
72         { 0x505, 0x15f,         "3GIS" },
73         { 0x505, 0x16f,         "Victorian Rail Track" },
74         { 0x505, 0x17f,         "Vivid Wireless Pty Ltd" },
75         { 0x505, 0x18f,         "Pactel International Pty Ltd" },
76         { 0x505, 0x19f,         "Lycamobile Pty Ltd" },
77         { 0x505, 0x21f,         "SOUL" }, /* ? */
78         { 0x505, 0x24f,         "Advanced Communications Technologies Pty. Ltd." },
79         { 0x505, 0x38f,         "Crazy John's" }, /* ? */
80         { 0x505, 0x71f,         "Telstra" },
81         { 0x505, 0x72f,         "Telstra" },
82         { 0x505, 0x88f,         "Localstar Holding Pty. Ltd." },
83         { 0x505, 0x90f,         "Optus" },
84         { 0x505, 0x99f,         "One.Tel" },
85         { 0x232, -1,    "Austria" },
86         { 0x232, 0x01f,         "A1" },
87         { 0x232, 0x02f,         "A1" },
88         { 0x232, 0x03f,         "T-Mobile" },
89         { 0x232, 0x04f,         "T-Mobile" },
90         { 0x232, 0x05f,         "Orange" },
91         { 0x232, 0x06f,         "Orange" },
92         { 0x232, 0x07f,         "T-Mobile (tele.ring)" },
93         { 0x232, 0x09f,         "Mobilkom Austria" },
94         { 0x232, 0x10f,         "Hutchison 3G Austria" },
95         { 0x232, 0x11f,         "Mobilkom Austria" },
96         { 0x232, 0x12f,         "Orange Austria" },
97         { 0x232, 0x14f,         "Hutchison 3G Austria" },
98         { 0x232, 0x15f,         "Barablu Mobile Austria" },
99         { 0x232, 0x16f,         "3" }, /* ? */
100         { 0x232, 0x91f,         "OBB - Infrastruktur Bau AG" },
101         { 0x400, -1,    "Azerbaijan" },
102         { 0x400, 0x01f,         "Azercell" },
103         { 0x400, 0x02f,         "Bakcell" },
104         { 0x400, 0x03f,         "Catel JV" },
105         { 0x400, 0x04f,         "Azerphone LLC" },
106         { 0x364, -1,    "Bahamas" },
107         { 0x364, 0x390,         "BaTelCo" },
108         { 0x426, -1,    "Bahrain" },
109         { 0x426, 0x01f,         "BHR Mobile Plus" },
110         { 0x426, 0x02f,         "zain BH" }, /* ? */
111         { 0x426, 0x04f,         "VIVA" }, /* ? */
112         { 0x470, -1,    "Bangladesh" },
113         { 0x470, 0x01f,         "Grameenphone" },
114         { 0x470, 0x02f,         "Aktel" },
115         { 0x470, 0x03f,         "Mobile 2000" },
116         { 0x470, 0x04f,         "TeleTalk" }, /* ? */
117         { 0x470, 0x05f,         "Citycell" }, /* ? */
118         { 0x470, 0x06f,         "Warid" }, /* ? */
119         { 0x470, 0x07f,         "WTBL" }, /* ? */
120         { 0x342, -1,    "Barbados" },
121         { 0x342, 0x600,         "Cable & Wireless (Barbados) Ltd." },
122         { 0x342, 0x750,         "Digicel" }, /* ? */
123         { 0x342, 0x820,         "Sunbeach Communications" },
124         { 0x257, -1,    "Belarus" },
125         { 0x257, 0x01f,         "MCD Velcom" },
126         { 0x257, 0x02f,         "MTS" },
127         { 0x257, 0x04f,         "life:)" }, /* ? */
128         { 0x257, 0x03f,         "DIALLOG" }, /* ? */
129         { 0x206, -1,    "Belgium" },
130         { 0x206, 0x01f,         "Proximus" },
131         { 0x206, 0x02f,         "SNCB GSM-R" }, /* ? */
132         { 0x206, 0x10f,         "Mobistar" },
133         { 0x206, 0x20f,         "BASE" },
134         { 0x702, -1,    "Belize" },
135         { 0x702, 0x67f,         "Belize Telemedia" },
136         { 0x702, 0x68f,         "International Telecommunications Ltd." },
137         { 0x702, 0x00f,         "Smart" }, /* ? */
138         { 0x616, -1,    "Benin" },
139         { 0x616, 0x01f,         "Libercom" },
140         { 0x616, 0x02f,         "Telecel" },
141         { 0x616, 0x03f,         "Spacetel Benin" },
142         { 0x616, 0x04f,         "BBCOM" }, /* ? */
143         { 0x616, 0x05f,         "Glo" }, /* ? */
144         { 0x350, -1,    "Bermuda" },
145         { 0x350, 0x01f,         "Digicel Bermuda" }, /* ? */
146         { 0x350, 0x02f,         "Mobility" }, /* ? */
147         { 0x338, 0x050,         "Digicel Bermuda" }, /* ? */
148         { 0x310, 0x00f,         "Cellular One" }, /* ? */
149         { 0x402, -1,    "Bhutan" },
150         { 0x402, 0x11f,         "Bhutan Telecom Ltd" },
151         { 0x402, 0x77f,         "B-Mobile" },
152         { 0x736, -1,    "Bolivia" },
153         { 0x736, 0x01f,         "Nuevatel" },
154         { 0x736, 0x02f,         "Entel" },
155         { 0x736, 0x03f,         "Telecel" },
156         { 0x218, -1,    "Bosnia and Herzegovina" },
157         { 0x218, 0x03f,         "HT-ERONET" },
158         { 0x218, 0x05f,         "MOBI'S" },
159         { 0x218, 0x90f,         "GSMBIH" },
160         { 0x652, -1,    "Botswana" },
161         { 0x652, 0x01f,         "Mascom" },
162         { 0x652, 0x02f,         "Orange" },
163         { 0x652, 0x04f,         "BTC Mobile" },
164         { 0x724, -1,    "Brazil" },
165         { 0x724, 0x00f,         "Telet" },
166         { 0x724, 0x01f,         "CRT Cellular" },
167         { 0x724, 0x02f,         "TIM" },
168         { 0x724, 0x03f,         "TIM" },
169         { 0x724, 0x04f,         "TIM" },
170         { 0x724, 0x05f,         "Claro" },
171         { 0x724, 0x06f,         "Vivo" },
172         { 0x724, 0x07f,         "CTBC Celular" },
173         { 0x724, 0x08f,         "TIM" },
174         { 0x724, 0x10f,         "Vivo" },
175         { 0x724, 0x11f,         "Vivo" },
176         { 0x724, 0x15f,         "Sercomtel" },
177         { 0x724, 0x16f,         "Oi / Brasil Telecom" },
178         { 0x724, 0x23f,         "Vivo" },
179         { 0x724, 0x24f,         "Oi / Amazonia Celular" },
180         { 0x724, 0x31f,         "Oi" },
181         { 0x724, 0x32f,         "CTBC Celular" },
182         { 0x724, 0x33f,         "CTBC Celular" },
183         { 0x724, 0x34f,         "CTBC Celular" },
184         { 0x724, 0x35f,         "TIM" },
185         { 0x724, 0x37f,         "aeiou" },
186         { 0x724, 0x39f,         "TIM" },
187         { 0x724, 0x41f,         "TIM" },
188         { 0x724, 0x43f,         "TIM" },
189         { 0x724, 0x45f,         "TIM" },
190         { 0x724, 0x47f,         "TIM" },
191         { 0x724, 0x48f,         "TIM" },
192         { 0x724, 0x51f,         "TIM" },
193         { 0x724, 0x53f,         "TIM" },
194         { 0x724, 0x55f,         "TIM" },
195         { 0x724, 0x57f,         "TIM" },
196         { 0x724, 0x59f,         "TIM" },
197         { 0x724, 0x00f,         "Nextel" },
198         { 0x348, -1,    "British Virgin Islands" },
199         { 0x348, 0x170,         "Cable & Wireless" },
200         { 0x348, 0x370,         "BVI Cable TV Ltd" },
201         { 0x348, 0x570,         "CCT Boatphone" },
202         { 0x348, 0x770,         "Digicel (BVI) Ltd" },
203         { 0x528, -1,    "Brunei" },
204         { 0x528, 0x01f,         "Jabatan Telekom" }, /* ? */
205         { 0x528, 0x02f,         "B-Mobile" }, /* ? */
206         { 0x528, 0x11f,         "DSTCom" },
207         { 0x284, -1,    "Bulgaria" },
208         { 0x284, 0x01f,         "M-Tel" },
209         { 0x284, 0x03f,         "Vivacom" }, /* ? */
210         { 0x284, 0x05f,         "GLOBUL" },
211         { 0x613, -1,    "Burkina Faso" },
212         { 0x613, 0x01f,         "Onatel" }, /* ? */
213         { 0x613, 0x02f,         "Celtel / Zain" },
214         { 0x613, 0x03f,         "Telecel Faso" },
215         { 0x642, -1,    "Burundi" },
216         { 0x642, 0x01f,         "Econet / Spacetel" },
217         { 0x642, 0x02f,         "Africell" },
218         { 0x642, 0x03f,         "Onamob" },
219         { 0x642, 0x07f,         "Lacell" },
220         { 0x642, 0x08f,         "Hits" },
221         { 0x642, 0x82f,         "U.COM / Onatel" },
222         { 0x456, -1,    "Cambodia" },
223         { 0x456, 0x01f,         "Mobitel" },
224         { 0x456, 0x02f,         "hello" },
225         { 0x456, 0x03f,         "S Telecom" },
226         { 0x456, 0x04f,         "Cadcomms / qb" },
227         { 0x456, 0x05f,         "Star-Cell" },
228         { 0x456, 0x06f,         "Smart" },
229         { 0x456, 0x08f,         "Viettel" },
230         { 0x456, 0x18f,         "Mfone" },
231 //      { 0x456, ?,             "Excell" }, /* ? */
232         { 0x456, 0x09f,         "Beeline" }, /* ? */
233         { 0x456, 0x08f,         "Metfone" }, /* ? */
234         { 0x624, -1,    "Cameroon" },
235         { 0x624, 0x01f,         "MTN Cameroon" },
236         { 0x624, 0x02f,         "Orange" },
237         { 0x302, -1,    "Canada" },
238         { 0x302, 0x220,         "Telus" },
239         { 0x302, 0x221,         "Telus" },
240         { 0x302, 0x290,         "Airtel Wireless" },
241         { 0x302, 0x350,         "FIRST" },
242         { 0x302, 0x360,         "MiKe" },
243         { 0x302, 0x361,         "Telus" },
244         { 0x302, 0x370,         "Fido" },
245         { 0x302, 0x380,         "DMTS" },
246         { 0x302, 0x490,         "WIND Mobile" },
247         { 0x302, 0x500,         "Videotron" },
248         { 0x302, 0x510,         "Videotron" },
249         { 0x302, 0x610,         "Bell" },
250         { 0x302, 0x620,         "ICE Wireless" },
251         { 0x302, 0x640,         "Bell" },
252         { 0x302, 0x651,         "Bell" },
253         { 0x302, 0x652,         "BC Tel Mobility (Telus)" },
254         { 0x302, 0x653,         "Telus" },
255         { 0x302, 0x655,         "MTS" },
256         { 0x302, 0x656,         "TBay" },
257         { 0x302, 0x657,         "Telus" },
258         { 0x302, 0x680,         "SaskTel" },
259         { 0x302, 0x701,         "MB Tel Mobility" },
260         { 0x302, 0x702,         "MT&T Mobility (Aliant)" },
261         { 0x302, 0x703,         "New Tel Mobility (Aliant)" },
262         { 0x302, 0x710,         "Globalstar" },
263         { 0x302, 0x720,         "Rogers Wireless" },
264         { 0x302, 0x780,         "SaskTel" },
265         { 0x302, 0x880,         "Bell / Telus" },
266         { 0x625, -1,    "Cape Verde" },
267         { 0x625, 0x01f,         "CVMOVEL" },
268         { 0x625, 0x02f,         "T+" },
269         { 0x346, -1,    "Cayman Islands" },
270         { 0x346, 0x140,         "Cable & Wireless" },
271         { 0x338, 0x050,         "Digicel" }, /* ? */
272         { 0x623, -1,    "Central African Republic" },
273         { 0x623, 0x01f,         "CTP" },
274         { 0x623, 0x02f,         "TC" },
275         { 0x623, 0x03f,         "Celca / Socatel / Orange" },
276         { 0x623, 0x04f,         "Nationlink" }, /* ? */
277         { 0x622, -1,    "Chad" },
278         { 0x622, 0x01f,         "Celtel / Zain" },
279         { 0x622, 0x02f,         "Tchad Mobile" },
280         { 0x622, 0x03f,         "TIGO - Millicom" }, /* ? */
281         { 0x622, 0x02f,         "TAWALI" }, /* ? */
282         { 0x622, 0x04f,         "Salam" }, /* ? */
283         { 0x730, -1,    "Chile" },
284         { 0x730, 0x01f,         "Entel" },
285         { 0x730, 0x02f,         "movistar" },
286         { 0x730, 0x03f,         "Smartcom / Claro" },
287         { 0x730, 0x04f,         "Centennial Cayman Corp / Nextel" },
288         { 0x730, 0x05f,         "Multikom S.A." },
289         { 0x730, 0x06f,         "Blue Two Chile S.A." },
290         { 0x730, 0x07f,         "Telefonica" },
291         { 0x730, 0x10f,         "Entel" },
292         { 0x730, 0x99f,         "WILL" }, /* ? */
293         { 0x460, -1,    "China" },
294         { 0x460, 0x00f,         "China Mobile" },
295         { 0x460, 0x01f,         "China Unicom" },
296         { 0x460, 0x02f,         "China Mobile" },
297         { 0x460, 0x03f,         "China Unicom CMDA" },
298         { 0x460, 0x04f,         "China Satellite Global Star Network" },
299         { 0x460, 0x05f,         "China Telecom" }, /* ? */
300         { 0x460, 0x06f,         "China Unicom" }, /* ? */
301         { 0x460, 0x20f,         "China TIETONG" }, /* ? */
302         { 0x732, -1,    "Colombia" },
303         { 0x732, 0x001,         "Colombia Telecomunicaciones S.A." },
304         { 0x732, 0x002,         "Edatel" },
305         { 0x732, 0x020,         "Emtelsa" },
306         { 0x732, 0x099,         "Emcali" },
307         { 0x732, 0x101,         "Comcel" },
308         { 0x732, 0x102,         "Bellsouth / movistar" },
309         { 0x732, 0x103,         "Colombia Movil / Tigo" },
310         { 0x732, 0x111,         "Colombia Movil / Tigo" },
311         { 0x732, 0x123,         "movistar" },
312         { 0x732, 0x12f,         "movistar" }, /* ? */
313         { 0x732, 0x130,         "Avantel" },
314         { 0x654, -1,    "Comoros" },
315         { 0x654, 0x01f,         "HURI - SNPT" },
316         { 0x629, -1,    "Republic of the Congo" },
317         { 0x629, 0x01f,         "Celtel / Zain" },
318         { 0x629, 0x10f,         "Libertis Telecom" },
319 //      { 0x629, ?,             "Warid Telecom" },
320         { 0x548, -1,    "Cook Islands" },
321         { 0x548, 0x01f,         "Telecom Cook" },
322         { 0x712, -1,    "Costa Rica" },
323         { 0x712, 0x01f,         "ICE" },
324         { 0x712, 0x02f,         "ICE" }, /* ? */
325         { 0x712, 0x03f,         "ICE" }, /* ? */
326         { 0x219, -1,    "Croatia" },
327         { 0x219, 0x01f,         "T-Mobile" },
328         { 0x219, 0x02f,         "Tele2" },
329         { 0x219, 0x10f,         "VIPnet" },
330         { 0x368, -1,    "Cuba" },
331         { 0x368, 0x01f,         "ETECSA" },
332         { 0x280, -1,    "Cyprus" },
333         { 0x280, 0x01f,         "Cytamobile-Vodafone" },
334         { 0x280, 0x10f,         "Scanacom / MTN" },
335         { 0x230, -1,    "Czech Republic" },
336         { 0x230, 0x01f,         "T-Mobile" },
337         { 0x230, 0x02f,         "O2" },
338         { 0x230, 0x03f,         "Vodafone" },
339         { 0x230, 0x04f,         "Mobilkom / U:fon" },
340         { 0x230, 0x98f,         "SZDC s.o." },
341         { 0x230, 0x99f,         "Vodafone" },
342         { 0x630, -1,    "Democratic Republic of the Congo" },
343         { 0x630, 0x01f,         "Vodacom" },
344         { 0x630, 0x02f,         "Zain" }, /* ? */
345         { 0x630, 0x04f,         "Cellco" }, /* ? */
346         { 0x630, 0x05f,         "Supercell" },
347         { 0x630, 0x86f,         "CCT" },
348         { 0x630, 0x89f,         "SAIT Telecom" }, /* ? */
349 //      { 0x630, ?,             "Africell" },
350         { 0x238, -1,    "Denmark" },
351         { 0x238, 0x01f,         "TDC" },
352         { 0x238, 0x02f,         "Sonofon / Telenor" },
353         { 0x238, 0x03f,         "MIGway A/S" },
354         { 0x238, 0x05f,         "ApS KBUS" },
355         { 0x238, 0x06f,         "Hi3G" },
356         { 0x238, 0x07f,         "Lycamobile / Barablu Mobile" },
357         { 0x238, 0x09f,         "Dansk Beredskabskommunikation A/S" }, /* ? */
358         { 0x238, 0x10f,         "TDC" },
359         { 0x238, 0x11f,         "Dansk Beredskabskommunikation A/S" }, /* ? */
360         { 0x238, 0x12f,         "Lycamobile Denmark Ltd" },
361         { 0x238, 0x20f,         "Telia" },
362         { 0x238, 0x30f,         "Telia" },
363         { 0x238, 0x40f,         "Ericsson Danmark A/S" }, /* ? */
364         { 0x238, 0x77f,         "Tele2 / Telenor" },
365         { 0x638, -1,    "Djibouti" },
366         { 0x638, 0x01f,         "Evatis" },
367         { 0x366, -1,    "Dominica" },
368         { 0x366, 0x020,         "Digicel" }, /* ? */
369         { 0x366, 0x110,         "Cable &  Wireless" }, /* ? */
370         { 0x370, -1,    "Dominican Republic" },
371         { 0x370, 0x01f,         "Orange" },
372         { 0x370, 0x02f,         "Verizon / Claro" },
373         { 0x370, 0x03f,         "Tricom" },
374         { 0x370, 0x04f,         "CentennialDominicana / Viva" },
375         { 0x514, -1,    "East Timor" },
376         { 0x514, 0x02f,         "Timor Telecom" }, /* ? */
377         { 0x740, -1,    "Ecuador" },
378         { 0x740, 0x00f,         "Otecel / Bellsouth / Movistar" },
379         { 0x740, 0x01f,         "Porta GSM" },
380         { 0x740, 0x02f,         "Telecsa / Alegro" },
381         { 0x602, -1,    "Egypt" },
382         { 0x602, 0x01f,         "Mobinil" },
383         { 0x602, 0x02f,         "Vodafone" },
384         { 0x602, 0x03f,         "Etisalat" },
385         { 0x706, -1,    "El Salvador" },
386         { 0x706, 0x01f,         "CTE Telecom Personal" },
387         { 0x706, 0x02f,         "digicel" },
388         { 0x706, 0x03f,         "Telemovil EL Salvador" },
389         { 0x706, 0x04f,         "movistar" }, /* ? */
390         { 0x706, 0x10f,         "Claro" }, /* ? */
391         { 0x627, -1,    "Equatorial Guinea" },
392         { 0x627, 0x01f,         "Orange GQ" },
393         { 0x627, 0x03f,         "Hits GQ" },
394         { 0x657, -1,    "Eritrea" },
395         { 0x657, 0x01f,         "Eritel" }, /* ? */
396         { 0x248, -1,    "Estonia" },
397         { 0x248, 0x01f,         "EMT" },
398         { 0x248, 0x02f,         "RLE / Elisa" },
399         { 0x248, 0x03f,         "Tele 2" },
400         { 0x248, 0x04f,         "OY Top Connect" },
401         { 0x248, 0x05f,         "AS Bravocom Mobiil" },
402         { 0x248, 0x06f,         "Pro Group Holding / ViaTel" },
403         { 0x248, 0x07f,         "Televorgu AS" },
404         { 0x248, 0x71f,         "Siseministeerium" },
405         { 0x636, -1,    "Ethiopia" },
406         { 0x636, 0x01f,         "ETMTN" },
407         { 0x750, -1,    "Falkland Islands (Malvinas)" },
408         { 0x750, 0x001,         "Touch" },
409         { 0x288, -1,    "Faroe Islands" },
410         { 0x288, 0x01f,         "Faroese Telecom" },
411         { 0x288, 0x02f,         "Kall / Vodafone" },
412         { 0x274, 0x02f,         "P/F Kall" },
413         { 0x542, -1,    "Fiji" },
414         { 0x542, 0x01f,         "Vodafone" },
415         { 0x542, 0x02f,         "Digicel" },
416         { 0x542, 0x03f,         "Telecom Fiji" },
417         { 0x244, -1,    "Finland" },
418         { 0x244, 0x03f,         "DNA" }, /* ? */
419         { 0x244, 0x04f,         "Finnet" },
420         { 0x244, 0x05f,         "Elisa" },
421         { 0x244, 0x07f,         "Nokia" },
422         { 0x244, 0x08f,         "Unknown" },
423         { 0x244, 0x09f,         "Finnet Group" },
424         { 0x244, 0x10f,         "TDC Oy" },
425         { 0x244, 0x12f,         "Finnet Networks / DNA" },
426         { 0x244, 0x14f,         "AMT" },
427         { 0x244, 0x16f,         "Oy Finland Tele2" },
428         { 0x244, 0x21f,         "Saunalahti" },
429         { 0x244, 0x29f,         "Scnl Truphone" }, /* ? */
430         { 0x244, 0x91f,         "Sonera" },
431         { 0x208, -1,    "France" },
432         { 0x208, 0x00f,         "Orange" }, /* ? */
433         { 0x208, 0x01f,         "Orange" },
434         { 0x208, 0x02f,         "Orange" },
435         { 0x208, 0x05f,         "Globalstar Europe" },
436         { 0x208, 0x06f,         "Globalstar Europe" },
437         { 0x208, 0x07f,         "Globalstar Europe" },
438         { 0x208, 0x10f,         "SFR" },
439         { 0x208, 0x11f,         "SFR" },
440         { 0x208, 0x13f,         "SFR" }, /* ? */
441         { 0x208, 0x20f,         "Bouygues" },
442         { 0x208, 0x21f,         "Bouygues" },
443         { 0x208, 0x22f,         "Transatel Mobile" },
444         { 0x208, 0x88f,         "Bouygues" },
445         { 0x628, -1,    "Gabon" },
446         { 0x628, 0x01f,         "Libertis" },
447         { 0x628, 0x02f,         "Moov (Telecel) Gabon S.A." },
448         { 0x628, 0x03f,         "Celtel / Zain" },
449         { 0x628, 0x04f,         "USAN Gabon" },
450         { 0x607, -1,    "Gambia" },
451         { 0x607, 0x01f,         "Gamcel" },
452         { 0x607, 0x02f,         "Africel" },
453         { 0x607, 0x03f,         "Comium" },
454         { 0x607, 0x04f,         "QCell" }, /* ? */
455         { 0x282, -1,    "Georgia" },
456         { 0x282, 0x01f,         "Geocell" },
457         { 0x282, 0x02f,         "MagtiCom" },
458         { 0x282, 0x03f,         "Iberiatel" },
459         { 0x282, 0x04f,         "Beeline" },
460         { 0x282, 0x05f,         "Silknet JSC" },
461         { 0x289, 0x67f,         "Aquafon" }, /* ? */
462         { 0x289, 0x88f,         "A-Mobile" }, /* ? */
463         { 0x262, -1,    "Germany" },
464         { 0x262, 0x01f,         "T-Mobile" },
465         { 0x262, 0x02f,         "Vodafone" },
466         { 0x262, 0x03f,         "E-Plus" },
467         { 0x262, 0x04f,         "Vodafone" },
468         { 0x262, 0x05f,         "E-Plus" },
469         { 0x262, 0x06f,         "T-Mobile" },
470         { 0x262, 0x07f,         "O2" },
471         { 0x262, 0x08f,         "O2" },
472         { 0x262, 0x09f,         "Vodafone" },
473         { 0x262, 0x10f,         "DB Systel GSM-R" },
474         { 0x262, 0x11f,         "O2" },
475         { 0x262, 0x12f,         "Dolphin Telecom" },
476         { 0x262, 0x13f,         "Mobilcom Multimedia" },
477         { 0x262, 0x14f,         "Group 3G UMTS" },
478         { 0x262, 0x15f,         "Airdata" },
479         { 0x262, 0x16f,         "Vistream" }, /* ? */
480         { 0x262, 0x42f,         "OpenBSC" }, /* ? */
481         { 0x262, 0x60f,         "DB Telematik" },
482         { 0x262, 0x76f,         "Siemens AG" },
483         { 0x262, 0x77f,         "E-Plus" },
484         { 0x262, 0x901,         "Debitel" }, /* ? */
485         { 0x620, -1,    "Ghana" },
486         { 0x620, 0x01f,         "Spacefon / MTN" },
487         { 0x620, 0x02f,         "Ghana Telecom Mobile / Vodafone" },
488         { 0x620, 0x03f,         "Mobiltel / tiGO" },
489         { 0x620, 0x04f,         "Kasapa / Hutchison Telecom" },
490         { 0x620, 0x06f,         "Zain" }, /* ? */
491         { 0x620, 0x10f,         "Netafriques" }, /* ? */
492         { 0x266, -1,    "Gibraltar" },
493         { 0x266, 0x01f,         "GibTel" },
494         { 0x266, 0x06f,         "CTS Mobile" },
495         { 0x266, 0x09f,         "Cloud9 Mobile Communications" },
496         { 0x202, -1,    "Greece" },
497         { 0x202, 0x01f,         "Cosmote" },
498         { 0x202, 0x05f,         "Vodafone" },
499         { 0x202, 0x09f,         "Infoquest / Wind" },
500         { 0x202, 0x10f,         "Wind" },
501         { 0x290, -1,    "Greenland" },
502         { 0x290, 0x01f,         "TELE Greenland A/S" },
503         { 0x352, -1,    "Grenada" },
504         { 0x352, 0x030,         "Digicel" },
505         { 0x352, 0x110,         "Cable &  Wireless" },
506         { 0x340, -1,    "Guadeloupe" },
507         { 0x340, 0x01f,         "Orange" },
508         { 0x340, 0x02f,         "Outremer" },
509         { 0x340, 0x03f,         "Telcell" },
510         { 0x340, 0x08f,         "MIO GSM" },
511         { 0x340, 0x10f,         "Guadeloupe Telephone Mobile" },
512         { 0x340, 0x20f,         "Digicel" },
513         { 0x310, -1,    "United States of America" },
514         { 0x310, 0x010,         "Verizon Wireless" },
515         { 0x310, 0x012,         "Verizon Wireless" },
516         { 0x310, 0x013,         "Verizon Wireless" },
517         { 0x310, 0x016,         "Cricket Communications" },
518         { 0x310, 0x017,         "North Sight Communications Inc." },
519         { 0x310, 0x020,         "Union Telephone Company" },
520         { 0x310, 0x030,         "Centennial Communications" },
521         { 0x310, 0x035,         "ETEX Communications dba ETEX Wireless" },
522         { 0x310, 0x040,         "MTA Communications dba MTA Wireless" },
523         { 0x310, 0x050,         "ACS Wireless Inc." },
524         { 0x310, 0x060,         "Consolidated Telecom" },
525         { 0x310, 0x070,         "Cingular Wireless" },
526         { 0x310, 0x080,         "Corr Wireless Communications LLC" },
527         { 0x310, 0x090,         "Cingular Wireless" },
528         { 0x310, 0x100,         "New Mexicu RSA 4 East Ltd. Partnership" },
529         { 0x310, 0x110,         "Pacific Telecom Inc." },
530         { 0x310, 0x130,         "Carolina West Wireless" },
531         { 0x310, 0x140,         "GTA Wireless LLC" },
532         { 0x310, 0x150,         "Cingular Wireless" },
533         { 0x310, 0x160,         "T-Mobile USA" },
534         { 0x310, 0x170,         "Cingular Wireless" },
535         { 0x310, 0x180,         "West Central Wireless" },
536         { 0x310, 0x190,         "Alaska Wireless Communications LLC" },
537         { 0x310, 0x200,         "T-Mobile USA" },
538         { 0x310, 0x210,         "T-Mobile USA" },
539         { 0x310, 0x220,         "T-Mobile USA" },
540         { 0x310, 0x230,         "T-Mobile USA" },
541         { 0x310, 0x240,         "T-Mobile USA" },
542         { 0x310, 0x250,         "T-Mobile USA" },
543         { 0x310, 0x260,         "T-Mobile USA" },
544         { 0x310, 0x270,         "T-Mobile USA" },
545         { 0x310, 0x280,         "Contennial Puerto Rio License Corp." },
546         { 0x310, 0x290,         "Nep Cellcorp Inc." },
547         { 0x310, 0x300,         "Blanca Telephone Company" },
548         { 0x310, 0x310,         "T-Mobile USA" },
549         { 0x310, 0x320,         "Simth Bagley Inc, dba Cellular One" },
550         { 0x310, 0x340,         "High Plains Midwest LLC, dba Wetlink Communications" },
551         { 0x310, 0x350,         "Mohave Cellular L.P." },
552         { 0x310, 0x360,         "Cellular Network Partnership dba Pioneer Cellular" },
553         { 0x310, 0x370,         "Guamcell Cellular and Paging" },
554         { 0x310, 0x380,         "New Cingular Wireless PCS, LLC" },
555         { 0x310, 0x390,         "TX-11 Acquisition LLC" },
556         { 0x310, 0x400,         "Wave Runner LLC" },
557         { 0x310, 0x410,         "Cingular Wireless" },
558         { 0x310, 0x420,         "Cincinnati Bell Wireless LLC" },
559         { 0x310, 0x430,         "Alaska Digital LLC" },
560         { 0x310, 0x440,         "Numerex Corp" },
561         { 0x310, 0x450,         "North East Cellular Inc" },
562         { 0x310, 0x460,         "TMP Corporation" },
563         { 0x310, 0x470,         "nTELOS Communications Inc" },
564         { 0x310, 0x480,         "Choice Phone LLC" },
565         { 0x310, 0x490,         "T-Mobile USA" },
566         { 0x310, 0x500,         "Public Service Cellular, Inc." },
567         { 0x310, 0x520,         "Transactions Network Services" },
568         { 0x310, 0x530,         "Iowa Wireless Services LLC" },
569         { 0x310, 0x540,         "Oklahoma Western Telephone Company" },
570         { 0x310, 0x550,         "Wireless Solutions International" },
571         { 0x310, 0x560,         "Cingular Wireless" },
572         { 0x310, 0x570,         "MTPCS LLC" },
573         { 0x310, 0x580,         "Inland Celluar Telephone Company" },
574         { 0x310, 0x590,         "Western Wireless Corporation" },
575         { 0x310, 0x600,         "New Cell Inc. dba Cellcom" },
576         { 0x310, 0x610,         "Elkhart Telephone Co. Inc. dba Epic Touch Co." },
577         { 0x310, 0x620,         "Coleman County Telecommunications Inc. (Trans Texas PCS)" },
578         { 0x310, 0x640,         "Airadigm Communications" },
579         { 0x310, 0x650,         "Jasper Wireless Inc." },
580         { 0x310, 0x660,         "T-Mobile USA" },
581         { 0x310, 0x670,         "AT&T Mobility Vanguard Services" },
582         { 0x310, 0x680,         "Cingular Wireless" },
583         { 0x310, 0x690,         "Keystane Wireless LLC" },
584         { 0x310, 0x700,         "Cross Valiant Cellular Partnership" },
585         { 0x310, 0x710,         "Arctic Slope Telephone Association Cooperative" },
586         { 0x310, 0x720,         "Wireless Solutions International Inc." },
587         { 0x310, 0x730,         "US Cellular" },
588         { 0x310, 0x740,         "Convey Communications Inc" },
589         { 0x310, 0x750,         "East Kentucky Network LLC dba Appalachian Wireless" },
590         { 0x310, 0x760,         "Lynch 3G Communcations Corporation" },
591         { 0x310, 0x770,         "Iowa Wireless Services LLC dba I Wireless" },
592         { 0x310, 0x780,         "Connect Net Inc" },
593         { 0x310, 0x790,         "PinPoint Communications Inc."},
594         { 0x310, 0x800,         "T-Mobile USA" },
595         { 0x310, 0x810,         "LCFR LLC" },
596         { 0x310, 0x820,         "South Canaan Cellular Communications Co. LP" },
597         { 0x310, 0x830,         "Caprock Cellular Ltd. Partnership" },
598         { 0x310, 0x840,         "Telecom North America Mobile Inc" },
599         { 0x310, 0x850,         "Aeris Communications Inc." },
600         { 0x310, 0x860,         "TX RSA 15B2, LP dba Five Star Wireless" },
601         { 0x310, 0x870,         "Kaplan Telephone Company, Inc" },
602         { 0x310, 0x890,         "Rural Cellular Corporation" },
603         { 0x310, 0x900,         "Cable & Communications Corporation dba Mid-Rivers Wireless" },
604         { 0x310, 0x910,         "Verizon Wireless" },
605         { 0x310, 0x930,         "Copper Valley Wireless" },
606         { 0x310, 0x940,         "Iris Wireless LLC" },
607         { 0x310, 0x950,         "Texas RSA 1 dba XIT Wireless" },
608         { 0x310, 0x960,         "UBET Wireless" },
609         { 0x310, 0x970,         "Globalstar USA" },
610         { 0x310, 0x980,         "Texas RSA 7B3 dba Peoples Wireless Services" },
611         { 0x310, 0x99,          "Worldcall Interconnect" },
612
613         { 0x704, -1,    "Guatemala" },
614         { 0x704, 0x01f,         "Claro" },
615         { 0x704, 0x02f,         "Comcel / Tigo" },
616         { 0x704, 0x03f,         "movistar" },
617 //      { 0x704, ?,             "digicel" },
618         { 0x234, -1,    "Guernsey" },
619         { 0x234, 0x55f,         "Sure Mobile" },
620         { 0x234, 0x50f,         "Wave Telecom" },
621         { 0x234, 0x03f,         "Airtel Vodafone" },
622         { 0x611, -1,    "Guinea" },
623         { 0x611, 0x01f,         "Orange / Spacetel" },
624         { 0x611, 0x02f,         "Sotelgui / Lagui" },
625         { 0x611, 0x03f,         "Telecel Guinee" }, /* ? */
626         { 0x611, 0x04f,         "MTN" }, /* ? */
627         { 0x611, 0x05f,         "Cellcom Guinee" },
628         { 0x632, -1,    "Guinea-Bissau" },
629         { 0x632, 0x01f,         "Guinetel" },
630         { 0x632, 0x02f,         "Spacetel / Areeba" },
631         { 0x632, 0x03f,         "Orange" },
632         { 0x738, -1,    "Guyana" },
633         { 0x738, 0x01f,         "Digicel" },
634         { 0x738, 0x02f,         "GT&T Cellink Plus" }, /* ? */
635         { 0x372, -1,    "Haiti" },
636         { 0x372, 0x01f,         "Comcel / Voila" },
637         { 0x338, 0x050,         "Digicel" },
638         { 0x338, 0x03f,         "Rectel" },
639         { 0x708, -1,    "Honduras" },
640         { 0x708, 0x01f,         "Claro" },
641         { 0x708, 0x02f,         "Celtel / Tigo" },
642         { 0x708, 0x30f,         "Hondutel" }, /* ? */
643         { 0x708, 0x40f,         "DIGICEL" },
644         { 0x454, -1,    "Hong Kong" },
645         { 0x454, 0x00f,         "1O1O and One2Free" },
646         { 0x454, 0x01f,         "CITIC Telecom 1616" },
647         { 0x454, 0x02f,         "CSL Limited" },
648         { 0x454, 0x03f,         "3 (3G)" },
649         { 0x454, 0x04f,         "3 DualBand (2G)" },
650         { 0x454, 0x05f,         "3 CDMA" },
651         { 0x454, 0x06f,         "SmarTone-Vodafone" },
652         { 0x454, 0x07f,         "China Unicom (Hong Kong) Limited" },
653         { 0x454, 0x08f,         "Trident" },
654         { 0x454, 0x09f,         "China Motion Telecom" },
655         { 0x454, 0x10f,         "New World Mobility" },
656         { 0x454, 0x11f,         "China-Hongkong Telecom" },
657         { 0x454, 0x12f,         "CMCC HK" },
658         { 0x454, 0x14f,         "Hutchison Telecom" },
659         { 0x454, 0x15f,         "SmarTone Mobile Communications Limited" },
660         { 0x454, 0x16f,         "PCCW Mobile (2G)" },
661         { 0x454, 0x17f,         "SmarTone Mobile Communications Limited" },
662         { 0x454, 0x18f,         "CSL Limited" },
663         { 0x454, 0x19f,         "Sunday3G" },
664         { 0x454, 0x19f,         "PCCW Mobile (3G)" },
665         { 0x454, 0x29f,         "PCCW Mobile (CDMA)" },
666         { 0x216, -1,    "Hungary" },
667         { 0x216, 0x01f,         "Pannon GSM" },
668         { 0x216, 0x30f,         "Westel 900" },
669         { 0x216, 0x70f,         "Vodafone" },
670         { 0x274, -1,    "Iceland" },
671         { 0x274, 0x01f,         "Siminn" },
672         { 0x274, 0x02f,         "Vodafone" },
673         { 0x274, 0x03f,         "Vodafone" },
674         { 0x274, 0x04f,         "IMC Viking" },
675         { 0x274, 0x06f,         "N?ll n?u ehf" }, /* ? */
676         { 0x274, 0x07f,         "IceCell" },
677         { 0x274, 0x08f,         "On-waves" },
678         { 0x274, 0x11f,         "Nova" },
679         /* FIXME: update the list from here below */
680         { 0x404, -1,    "India" },
681         { 0x404, 0x01f,         "Vodafone IN" },
682         { 0x404, 0x02f,         "AirTel" },
683         { 0x404, 0x04f,         "IDEA" },
684         { 0x404, 0x05f,         "Vodafone IN" },
685         { 0x404, 0x07f,         "IDEA" },
686         { 0x404, 0x09f,         "Reliance" },
687         { 0x404, 0x10f,         "AirTel" },
688         { 0x404, 0x11f,         "Vodafone IN" },
689         { 0x404, 0x12f,         "IDEA" },
690         { 0x404, 0x13f,         "Vodafone IN" },
691         { 0x404, 0x14f,         "IDEA" },
692         { 0x404, 0x15f,         "Vodafone IN" },
693         { 0x404, 0x17f,         "AIRCEL" },
694         { 0x404, 0x19f,         "IDEA" },
695         { 0x404, 0x20f,         "Vodafone IN" },
696         { 0x404, 0x21f,         "Loop Mobile" },
697         { 0x404, 0x22f,         "IDEA" },
698         { 0x404, 0x24f,         "IDEA" },
699         { 0x404, 0x27f,         "Vodafone IN" },
700         { 0x404, 0x28f,         "AIRCEL" },
701         { 0x404, 0x29f,         "AIRCEL" },
702         { 0x404, 0x30f,         "Vodafone IN" },
703         { 0x404, 0x31f,         "AirTel" },
704         { 0x404, 0x34f,         "CellOne" },
705         { 0x404, 0x36f,         "Reliance" },
706         { 0x404, 0x37f,         "Aircel" },
707         { 0x404, 0x38f,         "CellOne" },
708         { 0x404, 0x41f,         "Aircel" },
709         { 0x404, 0x42f,         "Aircel" },
710         { 0x404, 0x44f,         "IDEA" },
711         { 0x404, 0x45f,         "Airtel" },
712         { 0x404, 0x51f,         "CellOne" },
713         { 0x404, 0x52f,         "Reliance" },
714         { 0x404, 0x53f,         "CellOne" },
715         { 0x404, 0x54f,         "CellOne" },
716         { 0x404, 0x55f,         "CellOne" },
717         { 0x404, 0x56f,         "IDEA" },
718         { 0x404, 0x57f,         "CellOne" },
719         { 0x404, 0x58f,         "CellOne" },
720         { 0x404, 0x59f,         "CellOne" },
721         { 0x404, 0x60f,         "Vodafone IN" },
722         { 0x404, 0x62f,         "CellOne" },
723         { 0x404, 0x64f,         "CellOne" },
724         { 0x404, 0x66f,         "CellOne" },
725         { 0x404, 0x67f,         "Reliance GSM" },
726         { 0x404, 0x68f,         "DOLPHIN" },
727         { 0x404, 0x69f,         "DOLPHIN" },
728         { 0x404, 0x72f,         "CellOne" },
729         { 0x404, 0x74f,         "CellOne" },
730         { 0x404, 0x76f,         "CellOne" },
731         { 0x404, 0x78f,         "Idea Cellular Ltd" },
732         { 0x404, 0x80f,         "BSNL MOBILE" },
733         { 0x404, 0x81f,         "CellOne" },
734         { 0x404, 0x82f,         "Idea" },
735         { 0x404, 0x83f,         "Reliance Smart GSM" },
736         { 0x404, 0x84f,         "Vodafone IN" },
737         { 0x404, 0x85f,         "Reliance" },
738         { 0x404, 0x86f,         "Vodafone IN" },
739         { 0x404, 0x90f,         "AirTel" },
740         { 0x404, 0x91f,         "AIRCEL" },
741         { 0x404, 0x92f,         "AirTel" },
742         { 0x404, 0x93f,         "AirTel" },
743         { 0x404, 0x96f,         "AirTel" },
744         { 0x405, 0x05f,         "Reliance" },
745         { 0x405, 0x10f,         "Reliance" },
746         { 0x405, 0x13f,         "Reliance" },
747         { 0x405, 0x025,         "TATA DOCOMO" },
748         { 0x405, 0x026,         "TATA DOCOMO" },
749         { 0x405, 0x027,         "TATA DOCOMO" },
750         { 0x405, 0x029,         "TATA DOCOMO" },
751         { 0x405, 0x030,         "TATA DOCOMO" },
752         { 0x405, 0x031,         "TATA DOCOMO" },
753         { 0x405, 0x032,         "TATA DOCOMO" },
754         { 0x405, 0x034,         "TATA DOCOMO" },
755         { 0x405, 0x035,         "TATA DOCOMO" },
756         { 0x405, 0x036,         "TATA DOCOMO" },
757         { 0x405, 0x037,         "TATA DOCOMO" },
758         { 0x405, 0x038,         "TATA DOCOMO" },
759         { 0x405, 0x039,         "TATA DOCOMO" },
760         { 0x405, 0x041,         "TATA DOCOMO" },
761         { 0x405, 0x042,         "TATA DOCOMO" },
762         { 0x405, 0x043,         "TATA DOCOMO" },
763         { 0x405, 0x044,         "TATA DOCOMO" },
764         { 0x405, 0x045,         "TATA DOCOMO" },
765         { 0x405, 0x046,         "TATA DOCOMO" },
766         { 0x405, 0x047,         "TATA DOCOMO" },
767         { 0x405, 0x51f,         "AirTel" },
768         { 0x405, 0x52f,         "AirTel" },
769         { 0x405, 0x54f,         "AirTel" },
770         { 0x405, 0x56f,         "AirTel" },
771         { 0x405, 0x66f,         "Vodafone IN" },
772         { 0x405, 0x70f,         "IDEA" },
773         { 0x405, 0x750,         "Vodafone IN" },
774         { 0x405, 0x751,         "Vodafone IN" },
775         { 0x405, 0x752,         "Vodafone IN" },
776         { 0x405, 0x753,         "Vodafone IN" },
777         { 0x405, 0x754,         "Vodafone IN" },
778         { 0x405, 0x755,         "Vodafone IN" },
779         { 0x405, 0x756,         "Vodafone IN" },
780         { 0x405, 0x799,         "IDEA" },
781         { 0x405, 0x800,         "AIRCEL" },
782         { 0x405, 0x801,         "AIRCEL" },
783         { 0x405, 0x802,         "AIRCEL" },
784         { 0x405, 0x803,         "AIRCEL" },
785         { 0x405, 0x804,         "AIRCEL" },
786         { 0x405, 0x805,         "AIRCEL" },
787         { 0x405, 0x806,         "AIRCEL" },
788         { 0x405, 0x807,         "AIRCEL" },
789         { 0x405, 0x808,         "AIRCEL" },
790         { 0x405, 0x809,         "AIRCEL" },
791         { 0x405, 0x810,         "AIRCEL" },
792         { 0x405, 0x811,         "AIRCEL" },
793         { 0x405, 0x812,         "AIRCEL" },
794         { 0x405, 0x819,         "Uninor" },
795         { 0x405, 0x818,         "[Uninor]" },
796         { 0x405, 0x820,         "Uninor" },
797         { 0x405, 0x821,         "Uninor" },
798         { 0x405, 0x822,         "Uninor" },
799         { 0x405, 0x880,         "Uninor" },
800         { 0x405, 0x824,         "Videocon Datacom" },
801         { 0x405, 0x834,         "Videocon Datacom" },
802         { 0x405, 0x844,         "Uninor" },
803         { 0x405, 0x845,         "IDEA" },
804         { 0x405, 0x848,         "IDEA" },
805         { 0x405, 0x850,         "IDEA" },
806         { 0x405, 0x855,         "Loop Mobile" },
807         { 0x405, 0x864,         "Loop Mobile" },
808         { 0x405, 0x865,         "Loop Mobile" },
809         { 0x405, 0x875,         "Uninor" },
810         { 0x405, 0x881,         "S Tel" },
811         { 0x405, 0x912,         "Etisalat DB" },
812         { 0x405, 0x913,         "Etisalat DB" },
813         { 0x405, 0x917,         "Etisalat DB" },
814         { 0x405, 0x929,         "Uninor" },
815         { 0x510, -1,    "Indonesia" },
816         { 0x510, 0x00f,         "PSN" },
817         { 0x510, 0x01f,         "INDOSAT" },
818         { 0x510, 0x03f,         "StarOne" },
819         { 0x510, 0x07f,         "TelkomFlexi" },
820         { 0x510, 0x08f,         "AXIS" },
821         { 0x510, 0x09f,         "SMART" },
822         { 0x510, 0x10f,         "Telkomsel" },
823         { 0x510, 0x11f,         "XL" },
824         { 0x510, 0x20f,         "TELKOMMobile" },
825         { 0x510, 0x21f,         "IM3" },
826         { 0x510, 0x27f,         "Ceria" },
827         { 0x510, 0x28f,         "Fren/Hepi" },
828         { 0x510, 0x89f,         "3" },
829         { 0x510, 0x99f,         "Esia " },
830         { 0x432, -1,    "Iran" },
831         { 0x432, 0x11f,         "MCI" },
832         { 0x432, 0x14f,         "TKC" },
833         { 0x432, 0x19f,         "MTCE" },
834         { 0x432, 0x32f,         "Taliya" },
835         { 0x432, 0x35f,         "Irancell" },
836         { 0x418, -1,    "Iraq" },
837         { 0x418, 0x20f,         "Zain IQ" },
838         { 0x418, 0x30f,         "Zain IQ" },
839         { 0x418, 0x05f,         "Asia Cell" },
840         { 0x418, 0x40f,         "Korek" },
841         { 0x418, 0x08f,         "SanaTel" },
842 //      { 0x418, ?,             "IRAQNA" },
843         { 0x272, -1,    "Ireland" },
844         { 0x272, 0x01f,         "Vodafone" },
845         { 0x272, 0x02f,         "O2" },
846         { 0x272, 0x03f,         "Meteor" },
847         { 0x272, 0x04f,         "Access Telecom" },
848         { 0x272, 0x05f,         "3" },
849         { 0x272, 0x07f,         "Eircom" },
850         { 0x272, 0x09f,         "Clever Communications" },
851         { 0x234, -1,    "Isle of Man" },
852         { 0x234, 0x58f,         "Pronto GSM" },
853         { 0x425, -1,    "Israel" },
854         { 0x425, 0x01f,         "Orange" },
855         { 0x425, 0x02f,         "Cellcom" },
856         { 0x425, 0x03f,         "Pelephone" },
857         { 0x425, 0x77f,         "Mirs" },
858         { 0x222, -1,    "Italy" },
859         { 0x222, 0x01f,         "TIM" },
860         { 0x222, 0x02f,         "Elsacom" },
861         { 0x222, 0x10f,         "Vodafone" },
862         { 0x222, 0x30f,         "RFI" },
863         { 0x222, 0x77f,         "IPSE 2000" },
864         { 0x222, 0x88f,         "Wind" },
865         { 0x222, 0x98f,         "Blu" },
866         { 0x222, 0x99f,         "3 Italia" },
867         { 0x612, -1,    "Ivory Coast" },
868         { 0x612, 0x01f,         "Cora de Comstar" },
869         { 0x612, 0x02f,         "Moov" },
870         { 0x612, 0x03f,         "Orange" },
871         { 0x612, 0x04f,         "KoZ" },
872         { 0x612, 0x05f,         "MTN" },
873         { 0x612, 0x06f,         "ORICEL" },
874         { 0x338, -1,    "Jamaica" },
875         { 0x338, 0x020,         "LIME (formerly known as Cable & Wireless)" },
876         { 0x338, 0x050,         "Digicel" },
877         { 0x338, 0x070,         "Claro" },
878         { 0x338, 0x180,         "LIME (formerly known as Cable & Wireless)" },
879         { 0x440, -1,    "Japan" },
880         { 0x440, 0x00f,         "eMobile" },
881         { 0x440, 0x01f,         "NTT docomo" },
882         { 0x440, 0x02f,         "NTT docomo" },
883         { 0x440, 0x03f,         "NTT docomo" },
884         { 0x440, 0x04f,         "SoftBank" },
885         { 0x440, 0x06f,         "SoftBank" },
886         { 0x440, 0x07f,         "KDDI" },
887         { 0x440, 0x08f,         "KDDI" },
888         { 0x440, 0x09f,         "NTT docomo" },
889         { 0x440, 0x10f,         "NTT docomo" },
890         { 0x440, 0x11f,         "NTT docomo" },
891         { 0x440, 0x12f,         "NTT docomo" },
892         { 0x440, 0x13f,         "NTT docomo" },
893         { 0x440, 0x14f,         "NTT docomo" },
894         { 0x440, 0x15f,         "NTT docomo" },
895         { 0x440, 0x16f,         "NTT docomo" },
896         { 0x440, 0x17f,         "NTT docomo" },
897         { 0x440, 0x18f,         "NTT docomo" },
898         { 0x440, 0x19f,         "NTT docomo" },
899         { 0x440, 0x20f,         "SoftBank" },
900         { 0x440, 0x21f,         "NTT docomo" },
901         { 0x440, 0x22f,         "NTT docomo" },
902         { 0x440, 0x23f,         "DoCoMo" },
903         { 0x440, 0x24f,         "DoCoMo" },
904         { 0x440, 0x25f,         "DoCoMo" },
905         { 0x440, 0x26f,         "DoCoMo" },
906         { 0x440, 0x27f,         "DoCoMo" },
907         { 0x440, 0x28f,         "DoCoMo" },
908         { 0x440, 0x29f,         "DoCoMo" },
909         { 0x440, 0x30f,         "DoCoMo" },
910         { 0x440, 0x31f,         "DoCoMo" },
911         { 0x440, 0x32f,         "DoCoMo" },
912         { 0x440, 0x33f,         "DoCoMo" },
913         { 0x440, 0x34f,         "DoCoMo" },
914         { 0x440, 0x35f,         "DoCoMo" },
915         { 0x440, 0x36f,         "DoCoMo" },
916         { 0x440, 0x37f,         "DoCoMo" },
917         { 0x440, 0x38f,         "DoCoMo" },
918         { 0x440, 0x39f,         "DoCoMo" },
919         { 0x440, 0x40f,         "SoftBank" },
920         { 0x440, 0x41f,         "SoftBank" },
921         { 0x440, 0x42f,         "SoftBank" },
922         { 0x440, 0x43f,         "SoftBank" },
923         { 0x440, 0x44f,         "SoftBank" },
924         { 0x440, 0x45f,         "SoftBank" },
925         { 0x440, 0x46f,         "SoftBank" },
926         { 0x440, 0x47f,         "SoftBank" },
927         { 0x440, 0x48f,         "SoftBank" },
928         { 0x440, 0x49f,         "DoCoMo" },
929         { 0x440, 0x50f,         "KDDI" },
930         { 0x440, 0x51f,         "KDDI" },
931         { 0x440, 0x52f,         "KDDI" },
932         { 0x440, 0x53f,         "KDDI" },
933         { 0x440, 0x54f,         "KDDI" },
934         { 0x440, 0x55f,         "KDDI" },
935         { 0x440, 0x56f,         "KDDI" },
936         { 0x440, 0x58f,         "DoCoMo" },
937         { 0x440, 0x60f,         "DoCoMo" },
938         { 0x440, 0x61f,         "DoCoMo" },
939         { 0x440, 0x62f,         "DoCoMo" },
940         { 0x440, 0x63f,         "DoCoMo" },
941         { 0x440, 0x64f,         "DoCoMo" },
942         { 0x440, 0x65f,         "DoCoMo" },
943         { 0x440, 0x66f,         "DoCoMo" },
944         { 0x440, 0x67f,         "DoCoMo" },
945         { 0x440, 0x68f,         "DoCoMo" },
946         { 0x440, 0x69f,         "DoCoMo" },
947         { 0x440, 0x70f,         "au" },
948         { 0x440, 0x71f,         "KDDI" },
949         { 0x440, 0x72f,         "KDDI" },
950         { 0x440, 0x73f,         "KDDI" },
951         { 0x440, 0x74f,         "KDDI" },
952         { 0x440, 0x75f,         "KDDI" },
953         { 0x440, 0x76f,         "KDDI" },
954         { 0x440, 0x77f,         "KDDI" },
955         { 0x440, 0x78f,         "Okinawa Cellular Telephone" },
956         { 0x440, 0x79f,         "KDDI" },
957         { 0x440, 0x80f,         "TU-KA" },
958         { 0x440, 0x81f,         "TU-KA" },
959         { 0x440, 0x82f,         "TU-KA" },
960         { 0x440, 0x83f,         "TU-KA" },
961         { 0x440, 0x84f,         "TU-KA" },
962         { 0x440, 0x85f,         "TU-KA" },
963         { 0x440, 0x86f,         "TU-KA" },
964         { 0x440, 0x87f,         "DoCoMo" },
965         { 0x440, 0x88f,         "KDDI" },
966         { 0x440, 0x89f,         "KDDI" },
967         { 0x440, 0x90f,         "SoftBank" },
968         { 0x440, 0x92f,         "SoftBank" },
969         { 0x440, 0x93f,         "SoftBank" },
970         { 0x440, 0x94f,         "SoftBank" },
971         { 0x440, 0x95f,         "SoftBank" },
972         { 0x440, 0x96f,         "SoftBank" },
973         { 0x440, 0x97f,         "SoftBank" },
974         { 0x440, 0x98f,         "SoftBank" },
975         { 0x440, 0x99f,         "DoCoMo" },
976         { 0x234, -1,    "Jersey" },
977         { 0x234, 0x50f,         "JT-Wave" },
978         { 0x234, 0x55f,         "Sure Mobile" },
979         { 0x234, 0x03f,         "Airtel Vodafone" },
980         { 0x416, -1,    "Jordan" },
981         { 0x416, 0x01f,         "zain JO" },
982         { 0x416, 0x02f,         "XPress Telecom" },
983         { 0x416, 0x03f,         "Umniah" },
984         { 0x416, 0x77f,         "Orange" },
985         { 0x401, -1,    "Kazakhstan" },
986         { 0x401, 0x01f,         "Beeline" },
987         { 0x401, 0x02f,         "Kcell" },
988         { 0x401, 0x07f,         "Dalacom" },
989         { 0x401, 0x77f,         "Mobile Telecom Service" },
990         { 0x639, -1,    "Kenya" },
991         { 0x639, 0x02f,         "Safaricom" },
992         { 0x639, 0x03f,         "Zain" },
993         { 0x639, 0x07f,         "Orange Kenya" },
994         { 0x545, -1,    "Kiribati" },
995         { 0x545, 0x09f,         "Kiribati Frigate" },
996         { 0x467, -1,    "North Korea" },
997         { 0x467, 0x193,         "SUN NET" },
998         { 0x450, -1,    "South Korea" },
999         { 0x450, 0x02f,         "KT" },
1000         { 0x450, 0x03f,         "Power 017" },
1001         { 0x450, 0x04f,         "KT" },
1002         { 0x450, 0x05f,         "SKT" },
1003         { 0x450, 0x06f,         "LGT" },
1004         { 0x450, 0x08f,         "KT SHOW" },
1005         { 0x212, -1,    "Kosovo" },
1006         { 0x212, 0x01f,         "Vala" },
1007         { 0x293, 0x41f,         "iPKO" },
1008         { 0x293, 0x41f,         "D3 Mobile" },
1009         { 0x212, 0x01f,         "Z Mobile" },
1010         { 0x419, -1,    "Kuwait" },
1011         { 0x419, 0x02f,         "zain KW" },
1012         { 0x419, 0x03f,         "Wataniya" },
1013         { 0x419, 0x04f,         "Viva" },
1014         { 0x437, -1,    "Kyrgyzstan" },
1015         { 0x437, 0x01f,         "Beeline" },
1016         { 0x437, 0x05f,         "MegaCom" },
1017         { 0x437, 0x09f,         "O!" },
1018         { 0x457, -1,    "Laos" },
1019         { 0x457, 0x01f,         "LaoTel" },
1020         { 0x457, 0x02f,         "ETL" },
1021         { 0x457, 0x03f,         "Unitel" },
1022         { 0x457, 0x08f,         "Tigo" },
1023         { 0x247, -1,    "Latvia" },
1024         { 0x247, 0x01f,         "LMT" },
1025         { 0x247, 0x02f,         "Tele2" },
1026         { 0x247, 0x03f,         "TRIATEL" },
1027         { 0x247, 0x05f,         "Bite" },
1028         { 0x247, 0x06f,         "Rigatta" },
1029         { 0x247, 0x07f,         "MTS" },
1030         { 0x247, 0x08f,         "IZZI" },
1031         { 0x247, 0x09f,         "Camel Mobile" },
1032         { 0x415, -1,    "Lebanon" },
1033         { 0x415, 0x01f,         "Alfa" },
1034         { 0x415, 0x03f,         "MTC-Touch" },
1035         { 0x651, -1,    "Lesotho" },
1036         { 0x651, 0x01f,         "Vodacom" },
1037         { 0x651, 0x02f,         "Econet Ezin-cel" },
1038         { 0x618, -1,    "Liberia" },
1039         { 0x618, 0x01f,         "Lonestar Cell" },
1040         { 0x618, 0x04f,         "Comium" },
1041         { 0x618, 0x20f,         "LIBTELCO" },
1042         { 0x606, -1,    "Libya" },
1043         { 0x606, 0x00f,         "Libyana" },
1044         { 0x606, 0x01f,         "Madar" },
1045         { 0x295, -1,    "Liechtenstein" },
1046         { 0x295, 0x01f,         "Swisscom" },
1047         { 0x295, 0x02f,         "Orange" },
1048         { 0x295, 0x05f,         "FL1" },
1049         { 0x295, 0x77f,         "Tele 2" },
1050         { 0x246, -1,    "Lithuania" },
1051         { 0x246, 0x01f,         "Omnitel" },
1052         { 0x246, 0x02f,         "BITE" },
1053         { 0x246, 0x03f,         "Tele 2" },
1054         { 0x270, -1,    "Luxembourg" },
1055         { 0x270, 0x01f,         "LuxGSM" },
1056         { 0x270, 0x77f,         "Tango" },
1057         { 0x270, 0x99f,         "Orange" },
1058         { 0x455, -1,    "Macau" },
1059         { 0x455, 0x00f,         "SmarTone" },
1060         { 0x455, 0x01f,         "CTM" },
1061         { 0x455, 0x02f,         "China Telecom" },
1062         { 0x455, 0x03f,         "3" },
1063         { 0x455, 0x04f,         "CTM" },
1064         { 0x455, 0x05f,         "3" },
1065         { 0x294, -1,    "Republic of Macedonia" },
1066         { 0x294, 0x01f,         "T-Mobile MK" },
1067         { 0x294, 0x02f,         "ONE" },
1068         { 0x294, 0x03f,         "Vip MK" },
1069         { 0x646, -1,    "Madagascar" },
1070         { 0x646, 0x01f,         "Zain" },
1071         { 0x646, 0x02f,         "Orange" },
1072         { 0x646, 0x03f,         "Sacel" },
1073         { 0x646, 0x04f,         "Telma" },
1074         { 0x650, -1,    "Malawi" },
1075         { 0x650, 0x01f,         "TNM" },
1076         { 0x650, 0x10f,         "Zain" },
1077         { 0x502, -1,    "Malaysia" },
1078         { 0x502, 0x12f,         "Maxis" },
1079         { 0x502, 0x13f,         "Celcom" },
1080         { 0x502, 0x16f,         "DiGi" },
1081         { 0x502, 0x17f,         "Maxis" },
1082         { 0x502, 0x18f,         "U Mobile" },
1083         { 0x502, 0x19f,         "Celcom" },
1084         { 0x472, -1,    "Maldives" },
1085         { 0x472, 0x01f,         "Dhiraagu" },
1086         { 0x472, 0x02f,         "Wataniya" },
1087         { 0x610, -1,    "Mali" },
1088         { 0x610, 0x01f,         "Malitel" },
1089         { 0x610, 0x02f,         "Orange" },
1090         { 0x278, -1,    "Malta" },
1091         { 0x278, 0x01f,         "Vodafone" },
1092         { 0x278, 0x21f,         "GO" },
1093         { 0x278, 0x77f,         "Melita" },
1094         { 0x000, -1,    "Marshall Islands" },
1095 //      { 0x000, ?,             "?" },
1096         { 0x340, -1,    "Martinique" },
1097         { 0x340, 0x01f,         "Orange" },
1098         { 0x340, 0x02f,         "Outremer" },
1099         { 0x340, 0x20f,         "Digicel" },
1100         { 0x609, -1,    "Mauritania" },
1101         { 0x609, 0x01f,         "Mattel" },
1102         { 0x609, 0x10f,         "Mauritel" },
1103         { 0x617, -1,    "Mauritius" },
1104         { 0x617, 0x01f,         "Orange" },
1105         { 0x617, 0x02f,         "MTML" },
1106         { 0x617, 0x10f,         "Emtel" },
1107         { 0x334, -1,    "Mexico" },
1108         { 0x334, 0x01f,         "Nextel" },
1109         { 0x334, 0x02f,         "Telcel" },
1110         { 0x334, 0x03f,         "movistar" },
1111         { 0x334, 0x04f,         "Iusacell / Unefon" },
1112         { 0x550, -1,    "Federated States of Micronesia" },
1113         { 0x550, 0x01f,         "FSM Telecom" },
1114         { 0x259, -1,    "Moldova" },
1115         { 0x259, 0x01f,         "Orange" },
1116         { 0x259, 0x02f,         "Moldcell" },
1117         { 0x259, 0x03f,         "IDC" },
1118         { 0x259, 0x03f,         "Unit?" },
1119         { 0x259, 0x04f,         "Eventis" },
1120         { 0x259, 0x05f,         "Unit?" },
1121         { 0x212, -1,    "Monaco" },
1122         { 0x212, 0x01f,         "Office des Telephones" },
1123         { 0x428, -1,    "Mongolia" },
1124         { 0x428, 0x99f,         "MobiCom" },
1125         { 0x428, 0x88f,         "Unitel" },
1126         { 0x428, 0x91f,         "Skytel" },
1127         { 0x428, 0x98f,         "G.Mobile" },
1128         { 0x297, -1,    "Montenegro" },
1129         { 0x297, 0x01f,         "Telenor" },
1130         { 0x297, 0x02f,         "T-Mobile" },
1131         { 0x297, 0x03f,         "m:tel CG" },
1132         { 0x604, -1,    "Morocco" },
1133         { 0x604, 0x00f,         "Moditel" },
1134         { 0x604, 0x01f,         "IAM" },
1135         { 0x604, 0x02f,         "INWI" },
1136         { 0x605, 0x03f,         "yassine" },
1137         { 0x643, -1,    "Mozambique" },
1138         { 0x643, 0x01f,         "mCel" },
1139         { 0x643, 0x04f,         "Vodacom" },
1140         { 0x414, -1,    "Myanmar" },
1141         { 0x414, 0x01f,         "MPT" },
1142         { 0x649, -1,    "Namibia" },
1143         { 0x649, 0x01f,         "MTC" },
1144         { 0x649, 0x02f,         "switch" },
1145         { 0x649, 0x03f,         "Leo" },
1146         { 0x536, -1,    "Nauru" },
1147         { 0x429, -1,    "Nepal" },
1148         { 0x429, 0x01f,         "Namaste / NT Mobile" },
1149         { 0x429, 0x02f,         "Ncell" },
1150         { 0x429, 0x03f,         "Sky/C-Phone" },
1151         { 0x204, -1,    "Netherlands" },
1152         { 0x204, 0x01f,         "OneFoon" },
1153         { 0x204, 0x02f,         "Tele2" },
1154         { 0x204, 0x03f,         "Blyk" },
1155         { 0x204, 0x04f,         "Vodafone" },
1156         { 0x204, 0x05f,         "Elephant Talk" },
1157         { 0x204, 0x06f,         "Barablu Mobile" },
1158         { 0x204, 0x07f,         "Teleena" },
1159         { 0x204, 0x08f,         "KPN" },
1160         { 0x204, 0x09f,         "Lycamobile" },
1161         { 0x204, 0x10f,         "KPN" },
1162         { 0x204, 0x12f,         "Telfort" },
1163         { 0x204, 0x14f,         "6Gmobile" },
1164         { 0x204, 0x16f,         "T-Mobile" },
1165         { 0x204, 0x18f,         "Telfort" },
1166         { 0x204, 0x20f,         "Orange Nederland" },
1167         { 0x204, 0x21f,         "NS Railinfrabeheer B.V." },
1168         { 0x204, 0x67f,         "RadioAccess" },
1169         { 0x204, 0x69f,         "KPN Mobile" },
1170         { 0x362, -1,    "Netherlands Antilles" },
1171         { 0x362, 0x51f,         "Telcell" },
1172         { 0x362, 0x69f,         "Digicel" },
1173         { 0x362, 0x91f,         "UTS" },
1174         { 0x362, 0x00f,         "East Caribbean Cellular" },
1175         { 0x362, 0x00f,         "Antiliano Por N.V." },
1176         { 0x362, 0x95f,         "MIO" },
1177         { 0x362, 0x94f,         "Bay?s" },
1178         { 0x546, -1,    "New Caledonia" },
1179         { 0x546, 0x01f,         "Mobilis" },
1180         { 0x530, -1,    "New Zealand" },
1181         { 0x530, 0x00f,         "Telecom" },
1182         { 0x530, 0x01f,         "Vodafone" },
1183         { 0x530, 0x02f,         "Telecom" },
1184         { 0x530, 0x03f,         "Woosh" },
1185         { 0x530, 0x04f,         "TelstraClear" },
1186         { 0x530, 0x05f,         "XT Mobile Network" },
1187         { 0x530, 0x12f,         "360" },
1188         { 0x530, 0x24f,         "2degrees" },
1189         { 0x710, -1,    "Nicaragua" },
1190         { 0x710, 0x21f,         "Claro" },
1191         { 0x710, 0x30f,         "movistar" },
1192         { 0x710, 0x73f,         "SERCOM" },
1193         { 0x614, -1,    "Niger" },
1194         { 0x614, 0x01f,         "SahelCom" },
1195         { 0x614, 0x02f,         "Zain" },
1196         { 0x614, 0x03f,         "Telecel" },
1197         { 0x614, 0x04f,         "Orange" },
1198         { 0x621, -1,    "Nigeria" },
1199         { 0x621, 0x20f,         "Zain" },
1200         { 0x621, 0x30f,         "MTN" },
1201         { 0x621, 0x40f,         "M-Tel" },
1202         { 0x621, 0x50f,         "Glo" },
1203         { 0x621, 0x60f,         "Etisalat" },
1204         { 0x242, -1,    "Norway" },
1205         { 0x242, 0x01f,         "Telenor" },
1206         { 0x242, 0x02f,         "NetCom" },
1207         { 0x242, 0x03f,         "Teletopia" },
1208         { 0x242, 0x04f,         "Tele2" },
1209         { 0x242, 0x05f,         "Network Norway" },
1210         { 0x242, 0x06f,         "Ice" },
1211         { 0x242, 0x07f,         "Ventelo" },
1212         { 0x242, 0x08f,         "TDC Mobil AS" },
1213         { 0x242, 0x09f,         "Barablu Mobile Norway Ltd" },
1214         { 0x242, 0x20f,         "Jernbaneverket AS" },
1215         { 0x422, -1,    "Oman" },
1216         { 0x422, 0x02f,         "Oman Mobile" },
1217         { 0x422, 0x03f,         "Nawras" },
1218         { 0x410, -1,    "Pakistan" },
1219         { 0x410, 0x01f,         "Mobilink" },
1220         { 0x410, 0x03f,         "Ufone" },
1221         { 0x410, 0x04f,         "Zong" },
1222         { 0x410, 0x06f,         "Telenor" },
1223         { 0x410, 0x07f,         "Warid" },
1224         { 0x552, -1,    "Palau" },
1225         { 0x552, 0x01f,         "PNCC" },
1226         { 0x552, 0x80f,         "Palau Mobile" },
1227         { 0x423, -1,    "Palestinian Authority" },
1228         { 0x423, 0x05f,         "Jawwal" },
1229         { 0x423, 0x06f,         "Wataniya" },
1230         { 0x714, -1,    "Panama" },
1231         { 0x714, 0x01f,         "Cable & Wireless" },
1232         { 0x714, 0x02f,         "movistar" },
1233         { 0x714, 0x04f,         "Digicel" },
1234         { 0x714, 0x03f,         "Claro" },
1235         { 0x537, -1,    "Papua New Guinea" },
1236         { 0x537, 0x01f,         "B-Mobile" },
1237         { 0x537, 0x03f,         "Digicel" },
1238         { 0x744, -1,    "Paraguay" },
1239         { 0x744, 0x01f,         "VOX" },
1240         { 0x744, 0x02f,         "Claro" },
1241         { 0x744, 0x04f,         "Tigo" },
1242         { 0x744, 0x05f,         "Personal" },
1243         { 0x716, -1,    "Peru" },
1244         { 0x716, 0x06f,         "movistar" },
1245         { 0x716, 0x10f,         "Claro" },
1246         { 0x716, 0x17f,         "NEXTEL" },
1247         { 0x515, -1,    "Philippines" },
1248         { 0x515, 0x01f,         "Islacom" },
1249         { 0x515, 0x02f,         "Globe" },
1250         { 0x515, 0x03f,         "Smart" },
1251         { 0x515, 0x05f,         "Sun" },
1252         { 0x515, 0x11f,         "PLDT via ACeS Philippines" },
1253         { 0x515, 0x18f,         "Cure" },
1254         { 0x515, 0x88f,         "Nextel" },
1255         { 0x260, -1,    "Poland" },
1256         { 0x260, 0x01f,         "Plus" },
1257         { 0x260, 0x02f,         "Era" },
1258         { 0x260, 0x03f,         "Orange" },
1259         { 0x260, 0x04f,         "Netia S.A." },
1260         { 0x260, 0x05f,         "Polska Telefonia Kom?rkowa Centertel Sp. z o.o." },
1261         { 0x260, 0x06f,         "Play" },
1262         { 0x260, 0x07f,         "Netia" },
1263         { 0x260, 0x08f,         "E-Telko Sp. z o.o." },
1264         { 0x260, 0x09f,         "Telekomunikacja Kolejowa Sp. z o.o." },
1265         { 0x260, 0x10f,         "Sferia" },
1266         { 0x260, 0x11f,         "Nordisk Polska" },
1267         { 0x260, 0x12f,         "Cyfrowy Polsat" },
1268         { 0x260, 0x13f,         "Sferia" },
1269         { 0x260, 0x14f,         "Sferia" },
1270         { 0x260, 0x15f,         "CenterNet" },
1271         { 0x260, 0x16f,         "Mobyland" },
1272         { 0x260, 0x17f,         "Aero2" },
1273         { 0x268, -1,    "Portugal" },
1274         { 0x268, 0x01f,         "Vodafone" },
1275         { 0x268, 0x03f,         "Optimus" },
1276         { 0x268, 0x06f,         "TMN" },
1277         { 0x268, 0x21f,         "Zapp" },
1278         { 0x330, -1,    "Puerto Rico" },
1279         { 0x330, 0x11f,         "Claro" },
1280         { 0x427, -1,    "Qatar" },
1281         { 0x427, 0x01f,         "Qatarnet" },
1282         { 0x427, 0x02f,         "Vodafone Qatar" },
1283         { 0x647, -1,    "R&?union" },
1284         { 0x647, 0x00f,         "Orange" },
1285         { 0x647, 0x02f,         "Outremer" },
1286         { 0x647, 0x10f,         "SFR Reunion" },
1287         { 0x226, -1,    "Romania" },
1288         { 0x226, 0x01f,         "Vodafone" },
1289         { 0x226, 0x02f,         "Romtelecom" },
1290         { 0x226, 0x03f,         "Cosmote" },
1291         { 0x226, 0x04f,         "Cosmote" },
1292         { 0x226, 0x05f,         "Digi.Mobil" },
1293         { 0x226, 0x06f,         "Cosmote" },
1294         { 0x226, 0x10f,         "Orange" },
1295         { 0x250, -1,    "Russian Federation" },
1296         { 0x250, 0x01f,         "MTS" },
1297         { 0x250, 0x02f,         "MegaFon" },
1298         { 0x250, 0x03f,         "NCC" },
1299         { 0x250, 0x04f,         "Sibchallenge" },
1300         { 0x250, 0x05f,         "ETK" },
1301         { 0x250, 0x06f,         "Skylink" },
1302         { 0x250, 0x07f,         "SMARTS" },
1303         { 0x250, 0x09f,         "Skylink" },
1304         { 0x250, 0x10f,         "DTC" },
1305         { 0x250, 0x11f,         "Orensot" },
1306         { 0x250, 0x12f,         "Baykalwestcom" },
1307         { 0x250, 0x12f,         "Akos" },
1308         { 0x250, 0x13f,         "KUGSM" },
1309         { 0x250, 0x15f,         "SMARTS" },
1310         { 0x250, 0x16f,         "NTC" },
1311         { 0x250, 0x17f,         "Utel" },
1312         { 0x250, 0x19f,         "INDIGO" },
1313         { 0x250, 0x20f,         "Tele2" },
1314         { 0x250, 0x23f,         "Mobicom - Novosibirsk" },
1315         { 0x250, 0x28f,         "Beeline" },
1316         { 0x250, 0x35f,         "MOTIV" },
1317         { 0x250, 0x38f,         "Tambov GSM" },
1318         { 0x250, 0x39f,         "Utel" },
1319         { 0x250, 0x44f,         "Stavtelesot / North Caucasian GSM" },
1320         { 0x250, 0x92f,         "Primtelefon" },
1321         { 0x250, 0x93f,         "Telecom XXI" },
1322         { 0x250, 0x99f,         "Beeline" },
1323 //      { 0x250, ?,             "SkyLink/MTS/the Moscow Cellular communication" },
1324         { 0x635, -1,    "Rwanda" },
1325         { 0x635, 0x10f,         "MTN" },
1326         { 0x635, 0x13f,         "Tigo" },
1327         { 0x356, -1,    "Saint Kitts and Nevis" },
1328         { 0x356, 0x050,         "Digicel" },
1329         { 0x356, 0x110,         "Cable &  Wireless" },
1330         { 0x358, -1,    "Saint Lucia" },
1331         { 0x358, 0x050,         "Digicel" },
1332         { 0x358, 0x110,         "Cable &  Wireless" },
1333         { 0x308, -1,    "Saint Pierre and Miquelon" },
1334         { 0x308, 0x01f,         "Ameris" },
1335         { 0x360, -1,    "Saint Vincent and the Grenadines" },
1336         { 0x360, 0x070,         "Digicel" },
1337         { 0x360, 0x100,         "Cingular Wireless" },
1338         { 0x360, 0x110,         "Cable & Wireless" },
1339         { 0x549, -1,    "Samoa" },
1340         { 0x549, 0x01f,         "Digicel" },
1341         { 0x549, 0x27f,         "SamoaTel" },
1342         { 0x292, -1,    "San Marino" },
1343         { 0x292, 0x01f,         "PRIMA" },
1344         { 0x626, -1,    "Sao Tome and Principe" },
1345         { 0x626, 0x01f,         "CSTmovel" },
1346         { 0x420, -1,    "Saudi Arabia" },
1347         { 0x420, 0x01f,         "Al Jawal" },
1348         { 0x420, 0x03f,         "Mobily" },
1349         { 0x420, 0x07f,         "EAE" },
1350         { 0x420, 0x04f,         "Zain SA" },
1351         { 0x608, -1,    "Senegal" },
1352         { 0x608, 0x01f,         "Orange (telecommunications)" },
1353         { 0x608, 0x02f,         "Tigo" },
1354         { 0x608, 0x03f,         "Expresso" },
1355         { 0x220, -1,    "Serbia" },
1356         { 0x220, 0x01f,         "Telenor" },
1357         { 0x220, 0x03f,         "mt:s" },
1358         { 0x220, 0x05f,         "VIP" },
1359         { 0x633, -1,    "Seychelles" },
1360         { 0x633, 0x01f,         "Cable & Wireless" },
1361         { 0x633, 0x02f,         "Mediatech International" },
1362         { 0x633, 0x10f,         "Airtel" },
1363         { 0x619, -1,    "Sierra Leone" },
1364         { 0x619, 0x01f,         "Zain" },
1365         { 0x619, 0x02f,         "Millicom" },
1366         { 0x619, 0x03f,         "Datatel" },
1367         { 0x619, 0x04f,         "Comium" },
1368         { 0x619, 0x05f,         "Africell" },
1369         { 0x619, 0x25f,         "Mobitel" },
1370 //      { 0x619, ?,             "LeoneCel" },
1371         { 0x525, -1,    "Singapore" },
1372         { 0x525, 0x01f,         "SingTel" },
1373         { 0x525, 0x02f,         "SingTel-G18" },
1374         { 0x525, 0x03f,         "M1" },
1375         { 0x525, 0x05f,         "StarHub" },
1376         { 0x525, 0x12f,         "Digital Trunked Radio Network" },
1377         { 0x231, -1,    "Slovakia" },
1378         { 0x231, 0x01f,         "Orange" },
1379         { 0x231, 0x02f,         "T-Mobile" },
1380         { 0x231, 0x03f,         "Unient Communications" },
1381         { 0x231, 0x04f,         "T-Mobile" },
1382         { 0x231, 0x05f,         "Mobile Entertainment Company" },
1383         { 0x231, 0x06f,         "O2" },
1384         { 0x231, 0x99f,         "?SR" },
1385         { 0x293, -1,    "Slovenia" },
1386         { 0x293, 0x40f,         "Si.mobil" },
1387         { 0x293, 0x41f,         "Mobitel" },
1388         { 0x293, 0x64f,         "T-2" },
1389         { 0x293, 0x70f,         "Tu?mobil" },
1390         { 0x540, -1,    "Solomon Islands" },
1391         { 0x637, -1,    "Somalia" },
1392         { 0x637, 0x01f,         "Telesom" },
1393         { 0x637, 0x04f,         "Somafone" },
1394         { 0x637, 0x10f,         "Nationlink" },
1395         { 0x637, 0x25f,         "Hormuud" },
1396         { 0x637, 0x30f,         "Golis" },
1397         { 0x637, 0x82f,         "Telcom" },
1398         { 0x655, -1,    "South Africa" },
1399         { 0x655, 0x01f,         "Vodacom" },
1400         { 0x655, 0x06f,         "Sentech" },
1401         { 0x655, 0x07f,         "Cell C" },
1402         { 0x655, 0x10f,         "MTN" },
1403         { 0x655, 0x11f,         "SAPS Gauteng" },
1404         { 0x655, 0x13f,         "Neotel" },
1405         { 0x655, 0x21f,         "Cape Town Metropolitan Council" },
1406         { 0x655, 0x30f,         "Bokamoso Consortium" },
1407         { 0x655, 0x31f,         "Karabo Telecoms (Pty) Ltd." },
1408         { 0x655, 0x32f,         "Ilizwi Telecommunications" },
1409         { 0x655, 0x33f,         "Thinta Thinta Telecommunications" },
1410         { 0x655, 0x02f,         "Telkom" },
1411         { 0x214, -1,    "Spain" },
1412         { 0x214, 0x01f,         "Vodafone" },
1413         { 0x214, 0x03f,         "Orange" },
1414         { 0x214, 0x04f,         "Yoigo" },
1415         { 0x214, 0x05f,         "TME" },
1416         { 0x214, 0x06f,         "Vodafone" },
1417         { 0x214, 0x07f,         "movistar" },
1418         { 0x214, 0x08f,         "Euskaltel" },
1419         { 0x214, 0x09f,         "Orange" },
1420         { 0x214, 0x15f,         "BT" },
1421         { 0x214, 0x16f,         "TeleCable" },
1422         { 0x214, 0x17f,         "M?bil R" },
1423         { 0x214, 0x18f,         "ONO" },
1424         { 0x214, 0x19f,         "Simyo" },
1425         { 0x214, 0x21f,         "Jazztel" },
1426         { 0x214, 0x22f,         "DigiMobil" },
1427         { 0x214, 0x23f,         "Barablu" },
1428         { 0x413, -1,    "Sri Lanka" },
1429         { 0x413, 0x01f,         "Mobitel" },
1430         { 0x413, 0x02f,         "Dialog" },
1431         { 0x413, 0x03f,         "Etisalat" },
1432         { 0x413, 0x05f,         "Airtel" },
1433         { 0x413, 0x08f,         "Hutch" },
1434         { 0x413, 0x00f,         "RTEC Mobile" },
1435         { 0x634, -1,    "Sudan" },
1436         { 0x634, 0x01f,         "Zain SD" },
1437         { 0x634, 0x02f,         "MTN" },
1438         { 0x634, 0x05f,         "Vivacell" },
1439         { 0x746, -1,    "Suriname" },
1440         { 0x746, 0x05f,         "Telesur" },
1441         { 0x653, -1,    "Swaziland" },
1442         { 0x653, 0x10f,         "Swazi MTN" },
1443         { 0x240, -1,    "Sweden" },
1444         { 0x240, 0x01f,         "Telia" },
1445         { 0x240, 0x02f,         "3" },
1446         { 0x240, 0x03f,         "Ice.net" },
1447         { 0x240, 0x04f,         "3G Infrastructure Services" },
1448         { 0x240, 0x05f,         "Sweden 3G" },
1449         { 0x240, 0x06f,         "Telenor" },
1450         { 0x240, 0x07f,         "Tele2" },
1451         { 0x240, 0x08f,         "Telenor" },
1452         { 0x240, 0x09f,         "djuice" },
1453         { 0x240, 0x10f,         "Spring Mobil" },
1454         { 0x240, 0x11f,         "Lindholmen Science Park" },
1455         { 0x240, 0x12f,         "Barablu Mobile Scandinavia" },
1456         { 0x240, 0x13f,         "Ventelo Sverige" },
1457         { 0x240, 0x14f,         "TDC Mobil" },
1458         { 0x240, 0x15f,         "Wireless Maingate Nordic" },
1459         { 0x240, 0x16f,         "42IT" },
1460         { 0x240, 0x17f,         "G?talandsn?tet" },
1461         { 0x240, 0x20f,         "Wireless Maingate Message Services" },
1462         { 0x240, 0x21f,         "MobiSir" },
1463         { 0x240, 0x25f,         "DigiTelMobile" },
1464         { 0x228, -1,    "Switzerland" },
1465         { 0x228, 0x01f,         "Swisscom" },
1466         { 0x228, 0x02f,         "Sunrise" },
1467         { 0x228, 0x03f,         "Orange" },
1468         { 0x228, 0x05f,         "Togewanet AG (Comfone)" },
1469         { 0x228, 0x06f,         "SBB AG" },
1470         { 0x228, 0x07f,         "IN&Phone" },
1471         { 0x228, 0x08f,         "Tele2" },
1472         { 0x228, 0x50f,         "3G Mobile AG" },
1473         { 0x228, 0x51f,         "BebbiCell AG" },
1474         { 0x417, -1,    "Syria" },
1475         { 0x417, 0x01f,         "Syriatel" },
1476         { 0x417, 0x02f,         "MTN" },
1477         { 0x466, -1,    "Taiwan" },
1478         { 0x466, 0x01f,         "FarEasTone" },
1479         { 0x466, 0x02f,         "APTG" },
1480         { 0x466, 0x06f,         "Tuntex" },
1481         { 0x466, 0x11f,         "Chunghwa LDM" },
1482         { 0x466, 0x88f,         "KG Telecom" },
1483         { 0x466, 0x89f,         "VIBO" },
1484         { 0x466, 0x92f,         "Chungwa" },
1485         { 0x466, 0x93f,         "MobiTai" },
1486         { 0x466, 0x97f,         "Taiwan Mobile" },
1487         { 0x466, 0x99f,         "TransAsia" },
1488         { 0x436, -1,    "Tajikistan" },
1489         { 0x436, 0x01f,         "Tcell" },
1490         { 0x436, 0x02f,         "Indigo" },
1491         { 0x436, 0x03f,         "MLT" },
1492         { 0x436, 0x04f,         "Babilon-M" },
1493         { 0x436, 0x05f,         "Beeline" },
1494         { 0x640, -1,    "Tanzania" },
1495         { 0x640, 0x06f,         "SasaTel" },
1496         { 0x640, 0x02f,         "tiGO" },
1497         { 0x640, 0x03f,         "Zantel" },
1498         { 0x640, 0x04f,         "Vodacom" },
1499         { 0x640, 0x05f,         "Zain" },
1500         { 0x520, -1,    "Thailand" },
1501         { 0x520, 0x00f,         "Hutch" },
1502         { 0x520, 0x01f,         "AIS" },
1503         { 0x520, 0x02f,         "CAT CDMA" },
1504         { 0x520, 0x10f,         "?" },
1505         { 0x520, 0x15f,         "Thai Mobile" },
1506         { 0x520, 0x15f,         "TOT 3G" },
1507         { 0x520, 0x18f,         "dtac" },
1508         { 0x520, 0x23f,         "AIS GSM 1800" },
1509         { 0x520, 0x99f,         "True Move" },
1510         { 0x520, 0x00f,         "WE PCT" },
1511         { 0x615, -1,    "Togo" },
1512         { 0x615, 0x01f,         "Togo Cell" },
1513         { 0x615, 0x03f,         "Moov" },
1514         { 0x539, -1,    "Tonga" },
1515         { 0x539, 0x01f,         "Tonga Communications Corporation" },
1516         { 0x539, 0x43f,         "Shoreline Communication" },
1517         { 0x539, 0x88f,         "Digicel" },
1518         { 0x374, -1,    "Trinidad and Tobago" },
1519         { 0x374, 0x12f,         "bmobile" },
1520         { 0x374, 0x13f,         "Digicel" },
1521         { 0x605, -1,    "Tunisia" },
1522         { 0x605, 0x01f,         "Orange" },
1523         { 0x605, 0x02f,         "Tunicell" },
1524         { 0x605, 0x03f,         "Tunisiana" },
1525         { 0x286, -1,    "Turkey" },
1526         { 0x286, 0x01f,         "Turkcell" },
1527         { 0x286, 0x02f,         "Vodafone" },
1528         { 0x286, 0x03f,         "Avea" },
1529         { 0x286, 0x04f,         "Aycell" },
1530         { 0x438, -1,    "Turkmenistan" },
1531         { 0x438, 0x01f,         "MTS" },
1532         { 0x438, 0x02f,         "TM-Cell" },
1533         { 0x376, -1,    "Turks and Caicos Islands" },
1534         { 0x376, 0x350,         "C&W" },
1535         { 0x376, 0x352,         "Islandcom" },
1536         { 0x338, 0x05f,         "Digicel" },
1537         { 0x553, -1,    "Tuvalu" },
1538         { 0x553, 0x01f,         "TTC" },
1539         { 0x641, -1,    "Uganda" },
1540         { 0x641, 0x01f,         "Zain" },
1541         { 0x641, 0x10f,         "MTN" },
1542         { 0x641, 0x11f,         "Uganda Telecom Ltd." },
1543         { 0x641, 0x22f,         "Warid Telecom" },
1544         { 0x641, 0x14f,         "Orange" },
1545         { 0x255, -1,    "Ukraine" },
1546         { 0x255, 0x01f,         "MTS" },
1547         { 0x255, 0x02f,         "Beeline" },
1548         { 0x255, 0x03f,         "Kyivstar" },
1549         { 0x255, 0x04f,         "IT" },
1550         { 0x255, 0x05f,         "Golden Telecom" },
1551         { 0x255, 0x06f,         "life:)" },
1552         { 0x255, 0x07f,         "Ukrtelecom" },
1553         { 0x255, 0x21f,         "PEOPLEnet" },
1554         { 0x255, 0x23f,         "CDMA Ukraine" },
1555         { 0x424, -1,    "United Arab Emirates" },
1556         { 0x424, 0x02f,         "Etisalat" },
1557         { 0x424, 0x03f,         "du" },
1558         { 0x234, -1,    "United Kingdom" },
1559         { 0x234, 0x00f,         "BT" },
1560         { 0x234, 0x01f,         "UK01" },
1561         { 0x234, 0x02f,         "O2" },
1562         { 0x234, 0x03f,         "Airtel-Vodafone" },
1563         { 0x234, 0x04f,         "FMS Solutions Ltd" },
1564         { 0x234, 0x07f,         "Cable and Wireless UK" },
1565         { 0x234, 0x08f,         "OnePhone Ltd" },
1566         { 0x234, 0x10f,         "O2" },
1567         { 0x234, 0x11f,         "O2" },
1568         { 0x234, 0x12f,         "Railtrack" },
1569         { 0x234, 0x14f,         "Hay Systems Ltd" },
1570         { 0x234, 0x15f,         "Vodafone" },
1571         { 0x234, 0x16f,         "Opal Telecom Ltd" },
1572         { 0x234, 0x18f,         "Cloud9" },
1573         { 0x234, 0x19f,         "Teleware" },
1574         { 0x234, 0x20f,         "3" },
1575         { 0x234, 0x22f,         "RoutoMessaging" },
1576         { 0x234, 0x25f,         "Truphone" },
1577         { 0x234, 0x30f,         "T-Mobile" },
1578         { 0x234, 0x31f,         "Virgin" },
1579         { 0x234, 0x32f,         "Virgin" },
1580         { 0x234, 0x33f,         "Orange" },
1581         { 0x234, 0x34f,         "Orange" },
1582         { 0x234, 0x50f,         "JT-Wave" },
1583         { 0x234, 0x55f,         "Cable & Wireless Guernsey / Sure Mobile (Jersey)" },
1584         { 0x234, 0x58f,         "Manx Telecom" },
1585         { 0x234, 0x75f,         "Inquam" },
1586         { 0x234, 0x77f,         "BT" },
1587         { 0x200, -1,    "United States of America" },
1588         { 0x200, 0x053,         "Virgin Mobile US" },
1589         { 0x200, 0x054,         "Alltel US" },
1590         { 0x200, 0x066,         "U.S. Cellular" },
1591         /* 0x310 taken from Annex to ITU Operational Bulletin No. 958 â€“ 15.VI.2010 */
1592         { 0x310, 0x00f,         "nTelos" },
1593         { 0x310, 0x000,         "Mid-Tex Cellular" },
1594         { 0x310, 0x004,         "Verizon" },
1595         { 0x310, 0x010,         "MCI" },
1596         { 0x310, 0x012,         "Verizon" },
1597         { 0x310, 0x013,         "MobileTel" },
1598         { 0x310, 0x014,         "Testing" },
1599         { 0x310, 0x016,         "Cricket Communications" },
1600         { 0x310, 0x017,         "North Sight Communications Inc." },
1601         { 0x310, 0x020,         "Union Telephone Company" },
1602         { 0x310, 0x026,         "T-Mobile" },
1603         { 0x310, 0x030,         "Centennial" },
1604         { 0x310, 0x034,         "Airpeak" },
1605         { 0x310, 0x038,         "AT&T" },
1606         { 0x310, 0x040,         "Concho" },
1607         { 0x310, 0x046,         "SIMMETRY" },
1608         { 0x310, 0x060,         "Consolidated Telcom" },
1609         { 0x310, 0x070,         "Highland Cellular" },
1610         { 0x310, 0x080,         "Corr" },
1611         { 0x310, 0x090,         "AT&T" },
1612         { 0x310, 0x100,         "Plateau Wireless" },
1613         { 0x310, 0x110,         "PTI Pacifica" },
1614         { 0x310, 0x120,         "Sprint" },
1615         { 0x310, 0x150,         "AT&T" },
1616         { 0x310, 0x160,         "T-Mobile" },
1617         { 0x310, 0x170,         "T-Mobile" },
1618         { 0x310, 0x180,         "West Central" },
1619         { 0x310, 0x190,         "Dutch Harbor" },
1620         { 0x310, 0x200,         "T-Mobile" },
1621         { 0x310, 0x210,         "T-Mobile" },
1622         { 0x310, 0x220,         "T-Mobile" },
1623         { 0x310, 0x230,         "T-Mobile" },
1624         { 0x310, 0x240,         "T-Mobile" },
1625         { 0x310, 0x250,         "T-Mobile" },
1626         { 0x310, 0x260,         "T-Mobile" },
1627         { 0x310, 0x270,         "T-Mobile" },
1628         { 0x310, 0x280,         "T-Mobile" },
1629         { 0x310, 0x290,         "T-Mobile" },
1630         { 0x310, 0x300,         "iSmart Mobile" },
1631         { 0x310, 0x310,         "T-Mobile" },
1632         { 0x310, 0x311,         "Farmers Wireless" },
1633         { 0x310, 0x320,         "Cellular One" },
1634         { 0x310, 0x330,         "T-Mobile" },
1635         { 0x310, 0x340,         "Westlink" },
1636         { 0x310, 0x350,         "Carolina Phone" },
1637         { 0x310, 0x380,         "AT&T Mobility" },
1638         { 0x310, 0x390,         "Cellular One of East Texas" },
1639         { 0x310, 0x400,         "i CAN_GSM" },
1640         { 0x310, 0x410,         "AT&T" },
1641         { 0x310, 0x420,         "Cincinnati Bell" },
1642         { 0x310, 0x430,         "Alaska Digitel" },
1643         { 0x310, 0x440,         "Cellular One" },
1644         { 0x310, 0x450,         "Viaero" },
1645         { 0x310, 0x460,         "Simmetry" },
1646         { 0x310, 0x480,         "Choice Phone" },
1647         { 0x310, 0x490,         "T-Mobile" },
1648         { 0x310, 0x500,         "Alltel" },
1649         { 0x310, 0x510,         "Airtel" },
1650         { 0x310, 0x520,         "VeriSign" },
1651         { 0x310, 0x530,         "West Virginia Wireless" },
1652         { 0x310, 0x540,         "Oklahoma Western" },
1653         { 0x310, 0x560,         "AT&T" },
1654         { 0x310, 0x570,         "Cellular One" },
1655         { 0x310, 0x580,         "T-Mobile" },
1656         { 0x310, 0x590,         "Alltel" },
1657         { 0x310, 0x610,         "Epic Touch" },
1658         { 0x310, 0x620,         "Coleman County Telecom" },
1659         { 0x310, 0x630,         "AmeriLink PCS" },
1660         { 0x310, 0x640,         "Airadigm" },
1661         { 0x310, 0x650,         "Jasper" },
1662         { 0x310, 0x660,         "T-Mobile" },
1663         { 0x310, 0x670,         "Northstar" },
1664         { 0x310, 0x680,         "AT&T" },
1665         { 0x310, 0x690,         "Conestoga" },
1666         { 0x310, 0x730,         "SeaMobile" },
1667         { 0x310, 0x740,         "Convey" },
1668         { 0x310, 0x760,         "Panhandle" },
1669         { 0x310, 0x770,         "i wireless" },
1670         { 0x310, 0x780,         "Airlink PCS" },
1671         { 0x310, 0x790,         "PinPoint" },
1672         { 0x310, 0x800,         "T-Mobile" },
1673         { 0x310, 0x830,         "Caprock" },
1674         { 0x310, 0x850,         "Aeris" },
1675         { 0x310, 0x870,         "PACE" },
1676         { 0x310, 0x880,         "Advantage" },
1677         { 0x310, 0x890,         "Unicel" },
1678         { 0x310, 0x900,         "Mid-Rivers Wireless" },
1679         { 0x310, 0x910,         "First Cellular" },
1680         { 0x310, 0x940,         "Iris Wireless LLC" },
1681         { 0x310, 0x950,         "XIT Wireless" },
1682         { 0x310, 0x960,         "Plateau Wireless" },
1683         { 0x310, 0x970,         "Globalstar" },
1684         { 0x310, 0x980,         "AT&T Mobility" },
1685         { 0x310, 0x990,         "AT&T Mobility" },
1686         { 0x311, 0x000,         "Mid-Tex Cellular" },
1687         { 0x311, 0x010,         "Chariton Valley" },
1688         { 0x311, 0x020,         "Missouri RSA 5 Partnership" },
1689         { 0x311, 0x030,         "Indigo Wireless" },
1690         { 0x311, 0x040,         "Commnet Wireless" },
1691         { 0x311, 0x050,         "Wikes Cellular" },
1692         { 0x311, 0x060,         "Farmers Cellular" },
1693         { 0x311, 0x070,         "Easterbrooke" },
1694         { 0x311, 0x080,         "Pine Cellular" },
1695         { 0x311, 0x090,         "Long Lines Wireless" },
1696         { 0x311, 0x100,         "High Plains Wireless" },
1697         { 0x311, 0x110,         "High Plains Wireless" },
1698         { 0x311, 0x120,         "Choice Phone" },
1699         { 0x311, 0x130,         "Cell One Amarillo" },
1700         { 0x311, 0x140,         "Sprocket" },
1701         { 0x311, 0x150,         "Wilkes Cellular" },
1702         { 0x311, 0x160,         "Endless Mountains Wireless" },
1703         { 0x311, 0x170,         "PetroCom" },
1704         { 0x311, 0x180,         "Cingular Wireless" },
1705         { 0x311, 0x190,         "Cellular Properties" },
1706         { 0x311, 0x210,         "Farmers Cellular" },
1707         { 0x316, 0x010,         "Nextel" },
1708         { 0x316, 0x011,         "Southern Communications Services" },
1709         { 0x748, -1,    "Uruguay" },
1710         { 0x748, 0x00f,         "Ancel" },
1711         { 0x748, 0x01f,         "Ancel" },
1712         { 0x748, 0x07f,         "Movistar" },
1713         { 0x748, 0x10f,         "Claro" },
1714         { 0x434, -1,    "Uzbekistan" },
1715         { 0x434, 0x01f,         "Buztel" },
1716         { 0x434, 0x02f,         "Uzmacom" },
1717         { 0x434, 0x04f,         "Beeline" },
1718         { 0x434, 0x05f,         "Ucell" },
1719         { 0x434, 0x06f,         "Perfectum Mobile" },
1720         { 0x434, 0x07f,         "MTS" },
1721         { 0x541, -1,    "Vanuatu" },
1722         { 0x541, 0x01f,         "SMILE" },
1723         { 0x225, -1,    "Vatican" },
1724         { 0x734, -1,    "Venezuela" },
1725         { 0x734, 0x01f,         "Digitel" },
1726         { 0x734, 0x02f,         "Digitel" },
1727         { 0x734, 0x03f,         "Digitel" },
1728         { 0x734, 0x04f,         "movistar" },
1729         { 0x734, 0x06f,         "Movilnet" },
1730         { 0x452, -1,    "Vietnam" },
1731         { 0x452, 0x01f,         "MobiFone" },
1732         { 0x452, 0x02f,         "Vinaphone" },
1733         { 0x452, 0x03f,         "S-Fone" },
1734         { 0x452, 0x04f,         "Viettel Mobile" },
1735         { 0x452, 0x05f,         "Vietnamobile" },
1736         { 0x452, 0x06f,         "E-Mobile" },
1737         { 0x452, 0x07f,         "Beeline VN" },
1738         { 0x421, -1,    "Yemen" },
1739         { 0x421, 0x01f,         "SabaFon" },
1740         { 0x421, 0x02f,         "MTN" },
1741         { 0x421, 0x03f,         "Yemen Mobile" },
1742         { 0x421, 0x04f,         "HiTS-UNITEL" },
1743         { 0x645, -1,    "Zambia" },
1744         { 0x645, 0x01f,         "Zain" },
1745         { 0x645, 0x02f,         "MTN" },
1746         { 0x645, 0x03f,         "ZAMTEL" },
1747         { 0x648, -1,    "Zimbabwe" },
1748         { 0x648, 0x01f,         "Net*One" },
1749         { 0x648, 0x03f,         "Telecel" },
1750         { 0x648, 0x04f,         "Econet" },
1751         { 0x901, -1,    "International" },
1752         { 0x901, 0x01f,         "ICO" },
1753         { 0x901, 0x02f,         "Sense Communications International" },
1754         { 0x901, 0x03f,         "Iridium" },
1755         { 0x901, 0x04f,         "Globalstar" },
1756         { 0x901, 0x05f,         "Thuraya RMSS Network" },
1757         { 0x901, 0x06f,         "Thuraya Satellite Telecommunications Company" },
1758         { 0x901, 0x07f,         "Ellipso" },
1759         { 0x901, 0x08f,         "" },
1760         { 0x901, 0x09f,         "Tele1 Europe" },
1761         { 0x901, 0x10f,         "ACeS" },
1762         { 0x901, 0x11f,         "Inmarsat" },
1763         { 0x901, 0x12f,         "MCP" },
1764         { 0x901, 0x13f,         "GSM.AQ" },
1765         { 0x901, 0x14f,         "AeroMobile AS" },
1766         { 0x901, 0x15f,         "OnAir Switzerland Sarl" },
1767         { 0x901, 0x16f,         "Jasper Systems" },
1768         { 0x901, 0x17f,         "Navitas" },
1769         { 0x901, 0x18f,         "Cellular @Sea" },
1770         { 0x901, 0x19f,         "Vodafone Malta Maritime" },
1771         { 0x901, 0x21f,         "Seanet" },
1772         { 0x901, 0x24f,         "iNum" },
1773         { 0x901, 0x29f,         "Telenor" },
1774         { 0, 0, NULL }
1775 };
1776
1777 /* GSM 03.22 Annex A */
1778 int gsm_match_mcc(uint16_t mcc, char *imsi)
1779 {
1780         uint16_t sim_mcc;
1781
1782         sim_mcc = ((imsi[0] - '0') << 8)
1783                  + ((imsi[1] - '0') << 4)
1784                  + imsi[2] - '0';
1785
1786         return (mcc == sim_mcc);
1787 }
1788
1789 /* GSM 03.22 Annex A */
1790 int gsm_match_mnc(uint16_t mcc, uint8_t mnc, char *imsi)
1791 {
1792         uint16_t sim_mnc;
1793
1794         /* 1. SIM-MCC = BCCH-MCC */
1795         if (!gsm_match_mcc(mcc, imsi))
1796                 return 0;
1797
1798         /* 2. 3rd digit of BCCH-MNC is not 0xf */
1799         if ((mnc & 0x00f) != 0x00f) {
1800                 /* 3. 3 digit SIM-MNC = BCCH-MNC */
1801                 sim_mnc = ((imsi[3] - '0') << 8)
1802                          + ((imsi[4] - '0') << 4)
1803                          + imsi[5] - '0';
1804
1805                 return (mnc == sim_mnc);
1806         }
1807
1808         /* 4. BCCH-MCC in the range 310-316 */
1809         if (mcc >= 310 && mcc <= 316) {
1810                 /* 5. 3rd diit of SIM-MNC is 0 */
1811                 if (imsi[5] != 0)
1812                         return 0;
1813         }
1814
1815         /* 6. 1st 2 digits of SIM-MNC and BCCH-MNC match */
1816         sim_mnc = ((imsi[3] - '0') << 8)
1817                  + ((imsi[4] - '0') << 4)
1818                  + 0x00f;
1819
1820         return (mnc == sim_mnc);
1821 }
1822
1823 const char *gsm_print_mcc(uint16_t mcc)
1824 {
1825         static char string[5] = "000";
1826
1827         snprintf(string, 4, "%03x", mcc);
1828         return string;
1829 }
1830
1831 const char *gsm_print_mnc(uint16_t mnc)
1832 {
1833         static char string[7];
1834
1835         /* invalid format: return hex value */
1836         if ((mnc & 0xf000)
1837          || (mnc & 0x0f00) > 0x0900
1838          || (mnc & 0x00f0) > 0x0090
1839          || ((mnc & 0x000f) > 0x0009 && (mnc & 0x000f) < 0x000f)) {
1840                 snprintf(string, 6, "0x%03x", mnc);
1841                 return string;
1842         }
1843
1844         /* two digits */
1845         if ((mnc & 0x000f) == 0x000f) {
1846                 snprintf(string, 6, "%02x", mnc >> 4);
1847                 return string;
1848         }
1849
1850         /* three digits */
1851         snprintf(string, 6, "%03x", mnc);
1852         return string;
1853 }
1854
1855 const uint16_t gsm_input_mcc(char *string)
1856 {
1857         uint16_t mcc;
1858
1859         if (strlen(string) != 3)
1860                 return GSM_INPUT_INVALID;
1861         if (string[0] < '0' || string [0] > '9'
1862          || string[1] < '0' || string [1] > '9'
1863          || string[2] < '0' || string [2] > '9')
1864                 return GSM_INPUT_INVALID;
1865
1866         mcc = ((string[0] - '0') << 8)
1867             | ((string[1] - '0') << 4)
1868             | ((string[2] - '0'));
1869
1870         if (mcc == 0x000)
1871                 return GSM_INPUT_INVALID;
1872
1873         return mcc;
1874 }
1875
1876 const uint16_t gsm_input_mnc(char *string)
1877 {
1878         uint16_t mnc = 0;
1879
1880         if (strlen(string) == 2) {
1881                 if (string[0] < '0' || string [0] > '9'
1882                  || string[1] < '0' || string [1] > '9')
1883                         return GSM_INPUT_INVALID;
1884
1885                 mnc = ((string[0] - '0') << 8)
1886                     | ((string[1] - '0') << 4)
1887                     | 0x00f;
1888         } else
1889         if (strlen(string) == 3) {
1890                 if (string[0] < '0' || string [0] > '9'
1891                  || string[1] < '0' || string [1] > '9'
1892                  || string[2] < '0' || string [2] > '9')
1893                         return GSM_INPUT_INVALID;
1894
1895                 mnc = ((string[0] - '0') << 8)
1896                     | ((string[1] - '0') << 4)
1897                     | ((string[2] - '0'));
1898         }
1899
1900         return mnc;
1901 }
1902
1903 const char *gsm_get_mcc(uint16_t mcc)
1904 {
1905         int i;
1906
1907         for (i = 0; gsm_networks[i].name; i++)
1908                 if (gsm_networks[i].mnc < 0 && gsm_networks[i].mcc == mcc)
1909                         return gsm_networks[i].name;
1910
1911         return gsm_print_mcc(mcc);
1912 }
1913
1914 const char *gsm_get_mnc(uint16_t mcc, uint16_t mnc)
1915 {
1916         int i;
1917
1918         for (i = 0; gsm_networks[i].name; i++)
1919                 if (gsm_networks[i].mcc == mcc && gsm_networks[i].mnc == mnc)
1920                         return gsm_networks[i].name;
1921
1922         return gsm_print_mnc(mnc);
1923 }
1924
1925 /* get MCC from IMSI */
1926 const char *gsm_imsi_mcc(char *imsi)
1927 {
1928         int i, found = 0;
1929         uint16_t mcc;
1930
1931         mcc = ((imsi[0] - '0') << 8)
1932             | ((imsi[1] - '0') << 4)
1933             | ((imsi[2] - '0'));
1934
1935         for (i = 0; gsm_networks[i].name; i++) {
1936                 if (gsm_networks[i].mcc == mcc) {
1937                         found = 1;
1938                         break;
1939                 }
1940         }
1941         if (found == 0)
1942                 return "Unknown";
1943
1944         return gsm_networks[i].name;
1945 }
1946
1947 /* get MNC from IMSI */
1948 const char *gsm_imsi_mnc(char *imsi)
1949 {
1950         int i, found = 0, position = 0;
1951         uint16_t mcc, mnc2, mnc3;
1952
1953         mcc = ((imsi[0] - '0') << 8)
1954             | ((imsi[1] - '0') << 4)
1955             | ((imsi[2] - '0'));
1956         mnc2 = ((imsi[3] - '0') << 8)
1957              + ((imsi[4] - '0') << 4)
1958              + 0x00f;
1959         mnc3 = ((imsi[3] - '0') << 8)
1960              + ((imsi[4] - '0') << 4)
1961              + imsi[5] - '0';
1962
1963         for (i = 0; gsm_networks[i].name; i++) {
1964                 if (gsm_networks[i].mcc != mcc)
1965                         continue;
1966                 if ((gsm_networks[i].mnc & 0x00f) == 0x00f) {
1967                         if (mnc2 == gsm_networks[i].mnc) {
1968                                 found++;
1969                                 position = i;
1970                         }
1971                 } else {
1972                         if (mnc3 == gsm_networks[i].mnc) {
1973                                 found++;
1974                                 position = i;
1975                         }
1976                 }
1977         }
1978
1979         if (found == 0)
1980                 return "Unknown";
1981         if (found > 1)
1982                 return "Ambiguous";
1983         return gsm_networks[position].name;
1984 }
1985
1986