/usr/local/CPAN/Device-Gsm/Device/Gsm/Networks.pm


package Device::Gsm::Networks;

#
# Gsm networks data stolen from Gnokii
#
our %COUNTRIES = (
	'202'=> 'Greece',
	'204'=> 'Netherlands',
	'206'=> 'Belgium',
	'208'=> 'France',
	'213'=> 'Andorra',
	'214'=> 'Spain',
	'216'=> 'Hungary',
	'218'=> 'Bosnia Herzegovina',
	'219'=> 'Croatia',
	'220'=> 'Yugoslavia',
	'222'=> 'Italy',
	'226'=> 'Romania',
	'228'=> 'Switzerland',
	'230'=> 'Czech Republic',
	'231'=> 'Slovak Republic',
	'232'=> 'Austria',
	'234'=> 'United Kingdom',
	'238'=> 'Denmark',
	'240'=> 'Sweden',
	'242'=> 'Norway',
	'244'=> 'Finland',
	'246'=> 'Lithuania',
	'247'=> 'Latvia',
	'248'=> 'Estonia',
	'250'=> 'Russia',
	'255'=> 'Ukraine',
	'259'=> 'Moldova',
	'260'=> 'Poland',
	'262'=> 'Germany',
	'266'=> 'Gibraltar',
	'268'=> 'Portugal',
	'270'=> 'Luxembourg',
	'272'=> 'Ireland',
	'274'=> 'Iceland',
	'276'=> 'Albania',
	'278'=> 'Malta',
	'280'=> 'Cyprus',
	'282'=> 'Georgia',
	'283'=> 'Armenia',
	'284'=> 'Bulgaria',
	'286'=> 'Turkey',
	'290'=> 'Greenland',
	'293'=> 'Slovenia',
	'294'=> 'Macedonia',
	'302'=> 'Canada',
	'310'=> 'U.S.A.',
	'340'=> 'French West Indies',
	'400'=> 'Azerbaijan',
	'404'=> 'India',
	'410'=> 'Pakistan',
	'413'=> 'Sri Lanka',
	'415'=> 'Lebanon',
	'416'=> 'Jordan',
	'417'=> 'Syria',
	'418'=> 'Iraq',
	'419'=> 'Kuwait',
	'420'=> 'Saudi Arabia',
	'422'=> 'Oman',
	'424'=> 'United Arab Emirates',
	'425'=> 'Israel',
	'426'=> 'Bahrain',
	'427'=> 'Qatar',
	'432'=> 'Iran',
	'434'=> 'Uzbekistan',
	'437'=> 'Kyrgyz Republic',
	'452'=> 'Vietnam',
	'454'=> 'Hong Kong',
	'455'=> 'Macau',
	'456'=> 'Cambodia',
	'457'=> 'Lao',
	'460'=> 'China',
	'466'=> 'Taiwan',
	'470'=> 'Bangladesh',
	'502'=> 'Malaysia',
	'505'=> 'Australia',
	'510'=> 'Indonesia',
	'515'=> 'Philippines',
	'520'=> 'Thailand',
	'525'=> 'Singapore',
	'528'=> 'Brunei Darussalam',
	'530'=> 'New Zealand',
	'542'=> 'Fiji',
	'546'=> 'New Caledonia',
	'547'=> 'French Polynesia',
	'602'=> 'Egypt',
	'603'=> 'Algeria',
	'604'=> 'Morocco',
	'605'=> 'Tunisia',
	'608'=> 'Senegal',
	'611'=> 'Guinea',
	'612'=> 'Cote d\'Ivoire',
	'615'=> 'Togo',
	'617'=> 'Mauritius',
	'618'=> 'Liberia',
	'620'=> 'Ghana',
	'624'=> 'Cameroon',
	'625'=> 'Cape Verde',
	'633'=> 'Seychelles',
	'634'=> 'Mozambique',
	'634'=> 'Sudan',
	'635'=> 'Rwanda',
	'636'=> 'Ethiopia',
	'640'=> 'Tanzania',
	'641'=> 'Uganda',
	'645'=> 'Zambia',
	'646'=> 'Madagascar',
	'647'=> 'Reunion',
	'648'=> 'Zimbabwe',
	'649'=> 'Namibia',
	'650'=> 'Malawi',
	'651'=> 'Lesotho',
	'652'=> 'Botswana',
	'655'=> 'South Africa',
	'730'=> 'Chile',
	'734'=> 'Venezuela',
	undef=> 'unknown',
);

our %NETWORKS = (
	"20201"=> "Cosmote",
	"20205"=> "PANAFON",
	"20210"=> "TELESTET",
	"20404"=> "LIBERTEL",
	"20408"=> "KPN Telecom",
	"20412"=> "O2",
	"20416"=> "BEN",
	"20420"=> "Dutchtone NV",
	"20601"=> "PROXIMUS",
	"20610"=> "Mobistar",
	"20620"=> "Base",
	"20801"=> "ITINERIS",
	"20810"=> "SFR",
	"20820"=> "Bouygues Telecom",
	"21303"=> "MOBILAND",
	"21401"=> "Airtel GSM 900-Spain",
	"21403"=> "Retevision Movil",
	"21407"=> "MOVISTAR",
	"21601"=> "Pannon GSM",
	"21670"=> "Vodafone",
	"21630"=> "Westel 900",
	"21890"=> "GSMBIH",
	"21901"=> "CRONET",
	"21910"=> "VIP",
	"22001"=> "MOBTEL",
	"22002"=> "ProMonte GSM",
	"22003"=> "Telekom Srbije",
	"22201"=> "Telecom Italia Mobile",
	"22210"=> "OMNITEL",
	"22288"=> "Wind Telecomunicazioni SpA",
	"22601"=> "CONNEX GSM",
	"22610"=> "DIALOG",
	"22801"=> "NATEL International",
	"22802"=> "diAx Mobile AG",
	"23001"=> "T-Mobile CZ",
	"23002"=> "EuroTel",
	"23003"=> "Oskar",
	"23101"=> "Orange",
	"23102"=> "EuroTel GSM",
	"23201"=> "A1",
	"23203"=> "T-Mobile AT",
	"23205"=> "ONE",
	"23207"=> "tele.ring",
	"23410"=> "Cellnet",
	"23415"=> "Vodafone",
	"23430"=> "T-Mobile UK",
	"23433"=> "ORANGE",
	"23450"=> "Jersey Telecoms GSM",
	"23455"=> "Guernsey Telecoms GSM",
	"23458"=> "PRONTO GSM",
	"23801"=> "TDK-MOBIL",
	"23802"=> "SONOFON",
	"23820"=> "TELIA DK",
	"23830"=> "Mobilix",
	"24001"=> "Telia AB",
	"24007"=> "COMVIQ",
	"24008"=> "EUROPOLITAN",
	"24201"=> "Telenor Mobil",
	"24202"=> "NetCom GSM",
	"24403"=> "Telia City (Finland)",
	"24405"=> "Radiolinja",
	"24409"=> "Finnet",
	"24491"=> "Sonera",
	"24601"=> "OMNITEL",
	"24602"=> "Bite GSM",
	"24701"=> "LMT LV",
	"24702"=> "BALTCOM GSM",
	"24801"=> "EMT GSM",
	"24802"=> "Radiolinja Eesti AS",
	"24803"=> "Q GSM",
	"25001"=> "Mobile Telesystems",
	"25002"=> "North-West GSM",
	"25005"=> "Siberian Cellular Systems 900",
	"25007"=> "BM Telecom",
	"25010"=> "Don Telecom",
	"25012"=> "FECS-900",
	"25013"=> "Kuban GSM",
	"25039"=> "Uraltel",
	"25044"=> "North Caucasian GSM",
	"25099"=> "BeeLine",
	"25501"=> "UMC",
	"25502"=> "WellCOM",
	"25503"=> "Kyivstar",
	"25505"=> "Golden Telecom",
	"25901"=> "VOXTEL",
	"26001"=> "PLUS GSM",
	"26002"=> "ERA GSM",
	"26003"=> "IDEA Centertel",
	"26201"=> "T-Mobile D",
	"26202"=> "D2 PRIVAT",
	"26203"=> "E-Plus",
	"26207"=> "Interkom",
	"26601"=> "Gibtel GSM",
	"26801"=> "TELECEL",
	"26803"=> "OPTIMUS",
	"26806"=> "TMN",
	"27001"=> "LUXGSM",
	"27077"=> "TANGO",
	"27201"=> "EIRCELL-GSM",
	"27202"=> "Digifone",
	"27401"=> "Landssiminn GSM 900",
	"27402"=> "TAL hf",
	"27601"=> "AMC",
	"27801"=> "Vodafone Malta Limited",
	"28001"=> "CYTAGSM",
	"28201"=> "Geocell Limited",
	"28202"=> "Magti GSM",
	"28301"=> "ArmGSM",
	"28401"=> "M-TEL GSM BG",
	"28601"=> "Turkcell",
	"28602"=> "TELSIM GSM",
	"28801"=> "Faroese Telecom",
	"29001"=> "Tele Greenland",
	"29340"=> "SI.MOBIL d. d.",
	"29341"=> "MOBITEL",
	"29370"=> "SI VEGA 070",
	"29401"=> "MobiMak",
	"30237"=> "Microcell Connexions Inc",
	"30272"=> "Rogers AT&T",
	"31001"=> "Cellnet",
	"31002"=> "Sprint Spectrum",
	"31011"=> "Wireless 2000 Telephone Co.",
	"31015"=> "BellSouth Mobility DCS",
	"31016"=> "T-Mobile",
	"31017"=> "Pac Bell",
	"31020"=> "T-Mobile",
	"31021"=> "T-Mobile",
	"31022"=> "T-Mobile",
	"31023"=> "T-Mobile",
	"31024"=> "T-Mobile",
	"31025"=> "T-Mobile",
	"31026"=> "T-Mobile",
	"31027"=> "T-Mobile",
	"31031"=> "T-Mobile",
	"31038"=> "AT&T Wireless",
	"31058"=> "T-Mobile",
	"31066"=> "T-Mobile",
	"31077"=> "Iowa Wireless Services LP",
	"31080"=> "T-Mobile",
	"34001"=> "AMERIS",
	"40001"=> "AZERCELL GSM",
	"40002"=> "Bakcell GSM 2000",
	"40407"=> "TATA Cellular",
	"40410"=> "AirTel",
	"40411"=> "Essar Cellphone",
	"40412"=> "Escotel",
	"40414"=> "Modicom",
	"40415"=> "Essar Cellphone",
	"40420"=> "Max Touch",
	"40421"=> "BPL - Mobile",
	"40427"=> "BPL USWEST Cellular",
	"40430"=> "Command",
	"40440"=> "SkyCell",
	"40441"=> "RPG Cellular",
	"40442"=> "AIRCEL",
	"41001"=> "Mobilink",
	"41302"=> "DIALOG GSM",
	"41501"=> "CELLIS",
	"41503"=> "LIBANCELL",
	"41601"=> "Fastlink",
	"41709"=> "MOBILE SYRIA",
	"41902"=> "MTCNet",
	"42001"=> "Al Jawwal",
	"42007"=> "E.A.E",
	"42202"=> "GTO",
	"42402"=> "UAE-ETISALAT",
	"42501"=> "Partner Communications Company Ltd",
	"42601"=> "BHR MOBILE PLUS",
	"42701"=> "QATARNET",
	"43211"=> "TCI",
	"43404"=> "Daewoo Unitel",
	"43405"=> "Coscom",
	"43701"=> "Bitel",
	"45400"=> "TCSL GSM",
	"45404"=> "HKGHT",
	"45406"=> "SMARTONE GSM",
	"45410"=> "New World PCS",
	"45412"=> "PEOPLES",
	"45416"=> "SUNDAY",
	"45501"=> "TELEMOVEL+ GSM900-Macau",
	"45601"=> "MobiTel",
	"45602"=> "SAMART-GSM",
	"45701"=> "Lao Shinawatra Telecom",
	"46000"=> "China Telecom GSM",
	"46001"=> "CU-GSM",
	"46601"=> "Far EasTone Telecoms 900",
	"46606"=> "TUNTEX GSM 1800",
	"46688"=> "KG Telecom",
	"46692"=> "Chunghwa GSM",
	"46693"=> "MobiTai",
	"46697"=> "TWNGSM",
	"46699"=> "TransAsia",
	"47001"=> "GrameenPhone Ltd",
	"47019"=> "Mobile 2000",
	"50212"=> "Maxis Mobile",
	"50213"=> "TM Touch",
	"50216"=> "DiGi 1800",
	"50217"=> "ADAM",
	"50219"=> "CELCOM",
	"50501"=> "MobileNet",
	"50502"=> "OPTUS",
	"50503"=> "VODAFONE",
	"50508"=> "One.Tel",
	"51001"=> "SATELINDO",
	"51008"=> "LIPPO TELECOM",
	"51010"=> "TELKOMSEL",
	"51011"=> "Excelcom",
	"51021"=> "INDOSAT",
	"51501"=> "ISLACOM",
	"51502"=> "Globe Telecom",
	"52001"=> "AIS GSM",
	"52010"=> "WCS",
	"52018"=> "Worldphone 1800",
	"52023"=> "HELLO",
	"52501"=> "SingTel Mobile",
	"52502"=> "ST-PCN",
	"52503"=> "MOBILEONE",
	"52811"=> "DSTCom",
	"53001"=> "Vodafone New Zealand Limited",
	"54201"=> "Vodafone",
	"54601"=> "Mobilis",
	"54720"=> "VINI",
	"60201"=> "MobiNil",
	"60202"=> "Tunicell",
	"60301"=> "ALGERIAN MOBILE NETWORK",
	"60401"=> "I A M",
	"60801"=> "ALIZE",
	"61102"=> "Lagui",
	"61203"=> "IVOIRIS",
	"61205"=> "Telecel",
	"61501"=> "TOGO CELL",
	"61701"=> "Cellplus Mobile Comms",
	"61801"=> "Omega",
	"62001"=> "SPACEFON",
	"62501"=> "CVMOVEL",
	"63301"=> "Seychelles Cellular Services",
	"63310"=> "AIRTEL",
	"63401"=> "MobiTel",
	"63510"=> "Rwandacell",
	"63601"=> "ETMTN",
	"64001"=> "TRITEL",
	"64110"=> "MTN-Uganda",
	"64202"=> "ANTARIS",
	"64301"=> "T.D.M GSM 900",
	"64501"=> "ZAMCELL",
	"64601"=> "Madacom",
	"64603"=> "Sacel Madagascar S.A.",
	"64710"=> "SRR",
	"64801"=> "NET*ONE",
	"64803"=> "Telecel",
	"64901"=> "MTC",
	"65001"=> "Callpoint 900",
	"65101"=> "Vodacom Lesotho (Pty) Ltd",
	"65501"=> "Vodacom",
	"65510"=> "MTN",
	"68038"=> "NPI Wireless",
	"73001"=> "Entel Telefonia Movi",
	"73010"=> "Entel PCS",
	"73401"=> "Infonet",
	undef   => 'unknown',
);

sub name
{
    my $number = $_[0];
    $number =~ s/\D//;
    return exists $NETWORKS{$number}
        ? $NETWORKS{$number}
        : 'unknown';
}

sub country
{
    my $number = $_[0];
    $number =~ s/\D//;
    return exists $COUNTRIES{$number}
        ? $COUNTRIES{$number}
        : 'unknown';
}

1;

#
# End of module