File Coverage

blib/lib/Device/Gsm/Networks.pm
Criterion Covered Total %
statement 12 12 100.0
branch 2 4 50.0
condition n/a
subroutine 4 4 100.0
pod 0 2 0.0
total 18 22 81.8


line stmt bran cond sub pod time code
1             package Device::Gsm::Networks;
2              
3 1     1   545 use strict;
  1         1  
  1         22  
4 1     1   3 use warnings;
  1         1  
  1         669  
5              
6             #
7             # Gsm networks data stolen from Gnokii
8             #
9             our %COUNTRIES = (
10             '202' => 'Greece',
11             '204' => 'Netherlands',
12             '206' => 'Belgium',
13             '208' => 'France',
14             '213' => 'Andorra',
15             '214' => 'Spain',
16             '216' => 'Hungary',
17             '218' => 'Bosnia Herzegovina',
18             '219' => 'Croatia',
19             '220' => 'Yugoslavia',
20             '222' => 'Italy',
21             '226' => 'Romania',
22             '228' => 'Switzerland',
23             '230' => 'Czech Republic',
24             '231' => 'Slovak Republic',
25             '232' => 'Austria',
26             '234' => 'United Kingdom',
27             '238' => 'Denmark',
28             '240' => 'Sweden',
29             '242' => 'Norway',
30             '244' => 'Finland',
31             '246' => 'Lithuania',
32             '247' => 'Latvia',
33             '248' => 'Estonia',
34             '250' => 'Russia',
35             '255' => 'Ukraine',
36             '259' => 'Moldova',
37             '260' => 'Poland',
38             '262' => 'Germany',
39             '266' => 'Gibraltar',
40             '268' => 'Portugal',
41             '270' => 'Luxembourg',
42             '272' => 'Ireland',
43             '274' => 'Iceland',
44             '276' => 'Albania',
45             '278' => 'Malta',
46             '280' => 'Cyprus',
47             '282' => 'Georgia',
48             '283' => 'Armenia',
49             '284' => 'Bulgaria',
50             '286' => 'Turkey',
51             '290' => 'Greenland',
52             '293' => 'Slovenia',
53             '294' => 'Macedonia',
54             '302' => 'Canada',
55             '310' => 'U.S.A.',
56             '340' => 'French West Indies',
57             '400' => 'Azerbaijan',
58             '404' => 'India',
59             '410' => 'Pakistan',
60             '413' => 'Sri Lanka',
61             '415' => 'Lebanon',
62             '416' => 'Jordan',
63             '417' => 'Syria',
64             '418' => 'Iraq',
65             '419' => 'Kuwait',
66             '420' => 'Saudi Arabia',
67             '422' => 'Oman',
68             '424' => 'United Arab Emirates',
69             '425' => 'Israel',
70             '426' => 'Bahrain',
71             '427' => 'Qatar',
72             '432' => 'Iran',
73             '434' => 'Uzbekistan',
74             '437' => 'Kyrgyz Republic',
75             '452' => 'Vietnam',
76             '454' => 'Hong Kong',
77             '455' => 'Macau',
78             '456' => 'Cambodia',
79             '457' => 'Lao',
80             '460' => 'China',
81             '466' => 'Taiwan',
82             '470' => 'Bangladesh',
83             '502' => 'Malaysia',
84             '505' => 'Australia',
85             '510' => 'Indonesia',
86             '515' => 'Philippines',
87             '520' => 'Thailand',
88             '525' => 'Singapore',
89             '528' => 'Brunei Darussalam',
90             '530' => 'New Zealand',
91             '542' => 'Fiji',
92             '546' => 'New Caledonia',
93             '547' => 'French Polynesia',
94             '602' => 'Egypt',
95             '603' => 'Algeria',
96             '604' => 'Morocco',
97             '605' => 'Tunisia',
98             '608' => 'Senegal',
99             '611' => 'Guinea',
100             '612' => 'Cote d\'Ivoire',
101             '615' => 'Togo',
102             '617' => 'Mauritius',
103             '618' => 'Liberia',
104             '620' => 'Ghana',
105             '624' => 'Cameroon',
106             '625' => 'Cape Verde',
107             '633' => 'Seychelles',
108             '634' => 'Mozambique',
109             '634' => 'Sudan',
110             '635' => 'Rwanda',
111             '636' => 'Ethiopia',
112             '640' => 'Tanzania',
113             '641' => 'Uganda',
114             '645' => 'Zambia',
115             '646' => 'Madagascar',
116             '647' => 'Reunion',
117             '648' => 'Zimbabwe',
118             '649' => 'Namibia',
119             '650' => 'Malawi',
120             '651' => 'Lesotho',
121             '652' => 'Botswana',
122             '655' => 'South Africa',
123             '730' => 'Chile',
124             '734' => 'Venezuela',
125             undef => 'unknown',
126             );
127              
128             our %NETWORKS = (
129             "20201" => "Cosmote",
130             "20205" => "PANAFON",
131             "20210" => "TELESTET",
132             "20404" => "LIBERTEL",
133             "20408" => "KPN Telecom",
134             "20412" => "O2",
135             "20416" => "BEN",
136             "20420" => "Dutchtone NV",
137             "20601" => "PROXIMUS",
138             "20610" => "Mobistar",
139             "20620" => "Base",
140             "20801" => "ITINERIS",
141             "20810" => "SFR",
142             "20820" => "Bouygues Telecom",
143             "21303" => "MOBILAND",
144             "21401" => "Airtel GSM 900-Spain",
145             "21403" => "Retevision Movil",
146             "21407" => "MOVISTAR",
147             "21601" => "Pannon GSM",
148             "21670" => "Vodafone",
149             "21630" => "Westel 900",
150             "21890" => "GSMBIH",
151             "21901" => "CRONET",
152             "21910" => "VIP",
153             "22001" => "MOBTEL",
154             "22002" => "ProMonte GSM",
155             "22003" => "Telekom Srbije",
156             "22201" => "Telecom Italia Mobile",
157             "22210" => "OMNITEL",
158             "22288" => "Wind Telecomunicazioni SpA",
159             "22601" => "CONNEX GSM",
160             "22610" => "DIALOG",
161             "22801" => "NATEL International",
162             "22802" => "diAx Mobile AG",
163             "23001" => "T-Mobile CZ",
164             "23002" => "EuroTel",
165             "23003" => "Oskar",
166             "23101" => "Orange",
167             "23102" => "EuroTel GSM",
168             "23201" => "A1",
169             "23203" => "T-Mobile AT",
170             "23205" => "ONE",
171             "23207" => "tele.ring",
172             "23410" => "Cellnet",
173             "23415" => "Vodafone",
174             "23430" => "T-Mobile UK",
175             "23433" => "ORANGE",
176             "23450" => "Jersey Telecoms GSM",
177             "23455" => "Guernsey Telecoms GSM",
178             "23458" => "PRONTO GSM",
179             "23801" => "TDK-MOBIL",
180             "23802" => "SONOFON",
181             "23820" => "TELIA DK",
182             "23830" => "Mobilix",
183             "24001" => "Telia AB",
184             "24007" => "COMVIQ",
185             "24008" => "EUROPOLITAN",
186             "24201" => "Telenor Mobil",
187             "24202" => "NetCom GSM",
188             "24403" => "Telia City (Finland)",
189             "24405" => "Radiolinja",
190             "24409" => "Finnet",
191             "24491" => "Sonera",
192             "24601" => "OMNITEL",
193             "24602" => "Bite GSM",
194             "24701" => "LMT LV",
195             "24702" => "BALTCOM GSM",
196             "24801" => "EMT GSM",
197             "24802" => "Radiolinja Eesti AS",
198             "24803" => "Q GSM",
199             "25001" => "Mobile Telesystems",
200             "25002" => "North-West GSM",
201             "25005" => "Siberian Cellular Systems 900",
202             "25007" => "BM Telecom",
203             "25010" => "Don Telecom",
204             "25012" => "FECS-900",
205             "25013" => "Kuban GSM",
206             "25039" => "Uraltel",
207             "25044" => "North Caucasian GSM",
208             "25099" => "BeeLine",
209             "25501" => "UMC",
210             "25502" => "WellCOM",
211             "25503" => "Kyivstar",
212             "25505" => "Golden Telecom",
213             "25901" => "VOXTEL",
214             "26001" => "PLUS GSM",
215             "26002" => "ERA GSM",
216             "26003" => "IDEA Centertel",
217             "26201" => "T-Mobile D",
218             "26202" => "D2 PRIVAT",
219             "26203" => "E-Plus",
220             "26207" => "Interkom",
221             "26601" => "Gibtel GSM",
222             "26801" => "TELECEL",
223             "26803" => "OPTIMUS",
224             "26806" => "TMN",
225             "27001" => "LUXGSM",
226             "27077" => "TANGO",
227             "27201" => "EIRCELL-GSM",
228             "27202" => "Digifone",
229             "27401" => "Landssiminn GSM 900",
230             "27402" => "TAL hf",
231             "27601" => "AMC",
232             "27801" => "Vodafone Malta Limited",
233             "28001" => "CYTAGSM",
234             "28201" => "Geocell Limited",
235             "28202" => "Magti GSM",
236             "28301" => "ArmGSM",
237             "28401" => "M-TEL GSM BG",
238             "28601" => "Turkcell",
239             "28602" => "TELSIM GSM",
240             "28801" => "Faroese Telecom",
241             "29001" => "Tele Greenland",
242             "29340" => "SI.MOBIL d. d.",
243             "29341" => "MOBITEL",
244             "29370" => "SI VEGA 070",
245             "29401" => "MobiMak",
246             "30237" => "Microcell Connexions Inc",
247             "30272" => "Rogers AT&T",
248             "31001" => "Cellnet",
249             "31002" => "Sprint Spectrum",
250             "31011" => "Wireless 2000 Telephone Co.",
251             "31015" => "BellSouth Mobility DCS",
252             "31016" => "T-Mobile",
253             "31017" => "Pac Bell",
254             "31020" => "T-Mobile",
255             "31021" => "T-Mobile",
256             "31022" => "T-Mobile",
257             "31023" => "T-Mobile",
258             "31024" => "T-Mobile",
259             "31025" => "T-Mobile",
260             "31026" => "T-Mobile",
261             "31027" => "T-Mobile",
262             "31031" => "T-Mobile",
263             "31038" => "AT&T Wireless",
264             "31058" => "T-Mobile",
265             "31066" => "T-Mobile",
266             "31077" => "Iowa Wireless Services LP",
267             "31080" => "T-Mobile",
268             "34001" => "AMERIS",
269             "40001" => "AZERCELL GSM",
270             "40002" => "Bakcell GSM 2000",
271             "40407" => "TATA Cellular",
272             "40410" => "AirTel",
273             "40411" => "Essar Cellphone",
274             "40412" => "Escotel",
275             "40414" => "Modicom",
276             "40415" => "Essar Cellphone",
277             "40420" => "Max Touch",
278             "40421" => "BPL - Mobile",
279             "40427" => "BPL USWEST Cellular",
280             "40430" => "Command",
281             "40440" => "SkyCell",
282             "40441" => "RPG Cellular",
283             "40442" => "AIRCEL",
284             "41001" => "Mobilink",
285             "41302" => "DIALOG GSM",
286             "41501" => "CELLIS",
287             "41503" => "LIBANCELL",
288             "41601" => "Fastlink",
289             "41709" => "MOBILE SYRIA",
290             "41902" => "MTCNet",
291             "42001" => "Al Jawwal",
292             "42007" => "E.A.E",
293             "42202" => "GTO",
294             "42402" => "UAE-ETISALAT",
295             "42501" => "Partner Communications Company Ltd",
296             "42601" => "BHR MOBILE PLUS",
297             "42701" => "QATARNET",
298             "43211" => "TCI",
299             "43404" => "Daewoo Unitel",
300             "43405" => "Coscom",
301             "43701" => "Bitel",
302             "45400" => "TCSL GSM",
303             "45404" => "HKGHT",
304             "45406" => "SMARTONE GSM",
305             "45410" => "New World PCS",
306             "45412" => "PEOPLES",
307             "45416" => "SUNDAY",
308             "45501" => "TELEMOVEL+ GSM900-Macau",
309             "45601" => "MobiTel",
310             "45602" => "SAMART-GSM",
311             "45701" => "Lao Shinawatra Telecom",
312             "46000" => "China Telecom GSM",
313             "46001" => "CU-GSM",
314             "46601" => "Far EasTone Telecoms 900",
315             "46606" => "TUNTEX GSM 1800",
316             "46688" => "KG Telecom",
317             "46692" => "Chunghwa GSM",
318             "46693" => "MobiTai",
319             "46697" => "TWNGSM",
320             "46699" => "TransAsia",
321             "47001" => "GrameenPhone Ltd",
322             "47019" => "Mobile 2000",
323             "50212" => "Maxis Mobile",
324             "50213" => "TM Touch",
325             "50216" => "DiGi 1800",
326             "50217" => "ADAM",
327             "50219" => "CELCOM",
328             "50501" => "MobileNet",
329             "50502" => "OPTUS",
330             "50503" => "VODAFONE",
331             "50508" => "One.Tel",
332             "51001" => "SATELINDO",
333             "51008" => "LIPPO TELECOM",
334             "51010" => "TELKOMSEL",
335             "51011" => "Excelcom",
336             "51021" => "INDOSAT",
337             "51501" => "ISLACOM",
338             "51502" => "Globe Telecom",
339             "52001" => "AIS GSM",
340             "52010" => "WCS",
341             "52018" => "Worldphone 1800",
342             "52023" => "HELLO",
343             "52501" => "SingTel Mobile",
344             "52502" => "ST-PCN",
345             "52503" => "MOBILEONE",
346             "52811" => "DSTCom",
347             "53001" => "Vodafone New Zealand Limited",
348             "54201" => "Vodafone",
349             "54601" => "Mobilis",
350             "54720" => "VINI",
351             "60201" => "MobiNil",
352             "60202" => "Tunicell",
353             "60301" => "ALGERIAN MOBILE NETWORK",
354             "60401" => "I A M",
355             "60801" => "ALIZE",
356             "61102" => "Lagui",
357             "61203" => "IVOIRIS",
358             "61205" => "Telecel",
359             "61501" => "TOGO CELL",
360             "61701" => "Cellplus Mobile Comms",
361             "61801" => "Omega",
362             "62001" => "SPACEFON",
363             "62501" => "CVMOVEL",
364             "63301" => "Seychelles Cellular Services",
365             "63310" => "AIRTEL",
366             "63401" => "MobiTel",
367             "63510" => "Rwandacell",
368             "63601" => "ETMTN",
369             "64001" => "TRITEL",
370             "64110" => "MTN-Uganda",
371             "64202" => "ANTARIS",
372             "64301" => "T.D.M GSM 900",
373             "64501" => "ZAMCELL",
374             "64601" => "Madacom",
375             "64603" => "Sacel Madagascar S.A.",
376             "64710" => "SRR",
377             "64801" => "NET*ONE",
378             "64803" => "Telecel",
379             "64901" => "MTC",
380             "65001" => "Callpoint 900",
381             "65101" => "Vodacom Lesotho (Pty) Ltd",
382             "65501" => "Vodacom",
383             "65510" => "MTN",
384             "68038" => "NPI Wireless",
385             "73001" => "Entel Telefonia Movi",
386             "73010" => "Entel PCS",
387             "73401" => "Infonet",
388             undef => 'unknown',
389             );
390              
391             sub name {
392 2     2 0 263 my $number = $_[0];
393 2         5 $number =~ s/\D//;
394             return exists $NETWORKS{$number}
395 2 50       10 ? $NETWORKS{$number}
396             : 'unknown';
397             }
398              
399             sub country {
400 1     1 0 2 my $number = $_[0];
401 1         2 $number =~ s/\D//;
402             return exists $COUNTRIES{$number}
403 1 50       5 ? $COUNTRIES{$number}
404             : 'unknown';
405             }
406              
407             1;
408              
409             #
410             # End of module