diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/plmn_list.h | 611 | ||||
| -rwxr-xr-x | include/plmn_list.sh | 31 | ||||
| -rw-r--r-- | include/ril_oem.h | 52 | ||||
| -rw-r--r-- | include/samsung-ril-socket.h | 84 | ||||
| -rw-r--r-- | include/sim.h | 60 | 
5 files changed, 572 insertions, 266 deletions
diff --git a/include/plmn_list.h b/include/plmn_list.h index a415d35..8595e43 100644 --- a/include/plmn_list.h +++ b/include/plmn_list.h @@ -1,13 +1,17 @@ -/** - * This list was generated from http://en.wikipedia.org/wiki/Mobile_Network_Code - *  - * Date: 26/07/2013 16:36:48 - * Copyright: Wikipedia Contributors, Creative Commons Attribution-ShareAlike License +/* + * This list was generated from: + * http://en.wikipedia.org/wiki/Mobile_country_code + * + * Date: 07/08/2014 12:54:48 + * Copyright: Wikipedia Contributors, Creative Commons + * Attribution-ShareAlike License   */  #ifndef _PLMN_LIST_H_  #define _PLMN_LIST_H_ +#include <stdlib.h> +  struct plmn_list_entry {  	unsigned int mcc;  	unsigned int mnc; @@ -18,12 +22,20 @@ struct plmn_list_entry {  struct plmn_list_entry plmn_list[] = {  	{ 1, 1, "TEST", "TEST" }, +	// Abkhazia + +	{ 289, 67, "Aquafon", "Aquafon" }, +	{ 289, 88, "A-Mobile", "A-Mobile" }, +  	// Afghanistan - AF  	{ 412, 1, "AWCC", "AWCC" },  	{ 412, 20, "Roshan", "Roshan" },  	{ 412, 40, "MTN", "MTN" },  	{ 412, 50, "Etisalat", "Etisalat" }, +	{ 412, 55, "WASEL", "WASEL" }, +	{ 412, 80, "Salaam", "Salaam" }, +	{ 412, 88, "Salaam", "Salaam" },  	// Albania - AL @@ -36,7 +48,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 603, 1, "Mobilis", "Mobilis" },  	{ 603, 2, "Djezzy", "Djezzy" }, -	{ 603, 3, "Nedjma", "Nedjma" }, +	{ 603, 3, "Ooredoo", "Ooredoo" },  	// American Samoa (United States of America) - AS @@ -54,13 +66,14 @@ struct plmn_list_entry plmn_list[] = {  	// Anguilla (United Kingdom) - AI  	{ 365, 10, "Weblinks Limited", "Weblinks Limited" }, -	{ 365, 840, "Cable & Wireless", "Cable & Wireless" }, +	{ 365, 840, "LIME", "LIME" },  	// Antigua and Barbuda - AG  	{ 344, 30, "APUA", "APUA" }, -	{ 344, 920, "LIME", "LIME" },  	{ 344, 50, "Digicel", "Digicel" }, +	{ 344, 920, "LIME", "LIME" }, +	{ 344, 930, "AT&T Wireless", "AT&T Wireless" },  	// Argentina - AR @@ -74,10 +87,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 722, 340, "Personal", "Personal" },  	{ 722, 350, "PORT-HABLE", "PORT-HABLE" }, -	// Armenia -  AM +	// Armenia - AM  	{ 283, 1, "Beeline", "Beeline" }, -	{ 283, 5, "K Telecom CJSC", "K Telecom CJSC" }, +	{ 283, 4, "Karabakh Telecom", "Karabakh Telecom" }, +	{ 283, 5, "VivaCell-MTS", "VivaCell-MTS" }, +	{ 283, 10, "Orange", "Orange" },  	// Aruba (Kingdom of the Netherlands) - AW @@ -92,23 +107,31 @@ struct plmn_list_entry plmn_list[] = {  	{ 505, 4, "Department of Defence", "Department of Defence" },  	{ 505, 5, "Ozitel", "Ozitel" },  	{ 505, 6, "3", "3" }, +	{ 505, 7, "Vodafone", "Vodafone" },  	{ 505, 8, "One.Tel", "One.Tel" },  	{ 505, 9, "Airnet", "Airnet" },  	{ 505, 10, "Norfolk Is.", "Norfolk Is." }, +	{ 505, 11, "Telstra", "Telstra" },  	{ 505, 12, "3", "3" },  	{ 505, 13, "Railcorp", "Railcorp" },  	{ 505, 14, "AAPT", "AAPT" },  	{ 505, 15, "3GIS", "3GIS" }, -	{ 505, 16, "Victorian Rail Track", "Victorian Rail Track" }, +	{ 505, 16, "VicTrack", "VicTrack" }, +	{ 505, 17, "Vidid Wireless Pty. Ltd.", "Vidid Wireless Pty. Ltd." },  	{ 505, 18, "Pactel", "Pactel" }, -	{ 505, 19, "Lycamobile Pty Ltd", "Lycamobile Pty Ltd" }, -	{ 505, 21, "SOUL", "SOUL" }, +	{ 505, 19, "Lycamobile", "Lycamobile" }, +	{ 505, 20, "Ausgrid Corporation", "Ausgrid Corporation" }, +	{ 505, 21, "Queensland Rail Limited", "Queensland Rail Limited" }, +	{ 505, 22, "iiNet Ltd", "iiNet Ltd" },  	{ 505, 23, "Challenge Networks Pty. Ltd.", "Challenge Networks Pty. Ltd." }, -	{ 505, 24, "Advance Communications Technologies Pty. Ltd.", "Advance Communications Technologies Pty. Ltd." }, +	{ 505, 24, "Advanced Communications Technologies Pty. Ltd.", "Advanced Communications Technologies Pty. Ltd." }, +	{ 505, 25, "Pilbara Iron Company Services Pty Ltd", "Pilbara Iron Company Services Pty Ltd" },  	{ 505, 26, "Dialogue Communications Pty. Ltd.", "Dialogue Communications Pty. Ltd." },  	{ 505, 27, "Nexium Telecommunications", "Nexium Telecommunications" }, +	{ 505, 28, "RCOM International Pty Ltd", "RCOM International Pty Ltd" },  	{ 505, 38, "Crazy John's", "Crazy John's" },  	{ 505, 62, "NBN", "NBN" }, +	{ 505, 68, "NBN", "NBN" },  	{ 505, 71, "Telstra", "Telstra" },  	{ 505, 72, "Telstra", "Telstra" },  	{ 505, 88, "Localstar Holding Pty. Ltd.", "Localstar Holding Pty. Ltd." }, @@ -120,14 +143,16 @@ struct plmn_list_entry plmn_list[] = {  	{ 232, 1, "A1 TA", "A1 TA" },  	{ 232, 2, "A1 Telekom Austria", "A1 Telekom Austria" },  	{ 232, 3, "T-Mobile AT", "T-Mobile AT" }, +	{ 232, 4, "T-Mobile AT", "T-Mobile AT" },  	{ 232, 5, "Orange AT", "Orange AT" }, +	{ 232, 6, "Orange AT", "Orange AT" },  	{ 232, 7, "tele.ring", "tele.ring" },  	{ 232, 9, "Tele2Mobil", "Tele2Mobil" },  	{ 232, 10, "3AT", "3AT" },  	{ 232, 11, "bob", "bob" },  	{ 232, 12, "yesss!", "yesss!" },  	{ 232, 14, "Hutchison Drei Austria", "Hutchison Drei Austria" }, -	{ 232, 15, "A1 Telekom Austria", "A1 Telekom Austria" }, +	{ 232, 15, "Vectone", "Vectone" },  	{ 232, 16, "Hutchison Drei Austria", "Hutchison Drei Austria" },  	// Azerbaijan - AZ @@ -145,16 +170,18 @@ struct plmn_list_entry plmn_list[] = {  	{ 426, 1, "Batelco", "Batelco" },  	{ 426, 2, "zain BH", "zain BH" }, -	{ 426, 4, "VIVA", "VIVA" }, +	{ 426, 3, "Civil Aviation Authority", "Civil Aviation Authority" }, +	{ 426, 4, "VIVA Bahrain", "VIVA Bahrain" },  	{ 426, 5, "Batelco", "Batelco" },  	// Bangladesh - BD  	{ 470, 1, "Grameenphone", "Grameenphone" },  	{ 470, 2, "Robi", "Robi" }, -	{ 470, 3, "Banglalink Sheba", "Banglalink Sheba" }, +	{ 470, 3, "Banglalink", "Banglalink" },  	{ 470, 4, "TeleTalk", "TeleTalk" },  	{ 470, 5, "Citycell", "Citycell" }, +	{ 470, 6, "Beeong3G Warid Telekom", "Beeong3G Warid Telekom" },  	{ 470, 7, "Airtel", "Airtel" },  	// Barbados - BB @@ -169,18 +196,26 @@ struct plmn_list_entry plmn_list[] = {  	{ 257, 2, "MTS", "MTS" },  	{ 257, 3, "DIALLOG", "DIALLOG" },  	{ 257, 4, "life:)", "life:)" }, +	{ 257, 5, "Beltelecom", "Beltelecom" }, +	{ 257, 6, "Belorussian Cloud Technologies", "Belorussian Cloud Technologies" },  	{ 257, 501, "BelCel JV", "BelCel JV" },  	// Belgium - BE  	{ 206, 1, "Proximus", "Proximus" }, +	{ 206, 2, "N.M.B.S.", "N.M.B.S." },  	{ 206, 5, "Telenet", "Telenet" }, +	{ 206, 6, "Lycamobile", "Lycamobile" }, +	{ 206, 7, "Vectone Mobile", "Vectone Mobile" }, +	{ 206, 9, "Voxbone", "Voxbone" },  	{ 206, 10, "Mobistar", "Mobistar" }, +	{ 206, 15, "Elephant Talk Communications Schweiz GmbH", "Elephant Talk Communications Schweiz GmbH" },  	{ 206, 20, "BASE", "BASE" },  	// Belize - BZ  	{ 702, 67, "DigiCell", "DigiCell" }, +	{ 702, 68, "INTELCO", "INTELCO" },  	{ 702, 99, "Smart", "Smart" },  	// Benin - BJ @@ -189,15 +224,15 @@ struct plmn_list_entry plmn_list[] = {  	{ 616, 2, "Moov", "Moov" },  	{ 616, 3, "MTN", "MTN" },  	{ 616, 4, "BBCOM", "BBCOM" }, -	{ 616, 5, "Glo", "Glo" },  	{ 616, 4, "BLK", "BLK" }, +	{ 616, 5, "Glo", "Glo" },  	// Bermuda - BM +	{ 310, 59, "Cellular One", "Cellular One" }, +	{ 338, 50, "Digicel Bermuda", "Digicel Bermuda" },  	{ 350, 1, "Digicel Bermuda", "Digicel Bermuda" },  	{ 350, 2, "Mobility", "Mobility" }, -	{ 338, 50, "Digicel Bermuda", "Digicel Bermuda" }, -	{ 310, 59, "Cellular One", "Cellular One" },  	// Bhutan - BT @@ -213,7 +248,7 @@ struct plmn_list_entry plmn_list[] = {  	// Bosnia and Herzegovina - BA  	{ 218, 3, "HT-ERONET", "HT-ERONET" }, -	{ 218, 5, "m:tel ", "m:tel " }, +	{ 218, 5, "m:tel", "m:tel" },  	{ 218, 90, "BH Mobile", "BH Mobile" },  	// Botswana - BW @@ -228,8 +263,8 @@ struct plmn_list_entry plmn_list[] = {  	{ 724, 3, "TIM", "TIM" },  	{ 724, 4, "TIM", "TIM" },  	{ 724, 5, "Claro BR", "Claro BR" }, -	{ 724, 6, "Vivo", "Vivo" },  	{ 724, 55, "Sercomtel", "Sercomtel" }, +	{ 724, 6, "Vivo", "Vivo" },  	{ 724, 10, "Vivo", "Vivo" },  	{ 724, 11, "Vivo", "Vivo" },  	{ 724, 15, "CTBC Celular", "CTBC Celular" }, @@ -244,6 +279,7 @@ struct plmn_list_entry plmn_list[] = {  	// British Virgin Islands (United Kingdom) - VG  	{ 348, 170, "LIME", "LIME" }, +	{ 348, 370, "BVI Cable TV Ltd", "BVI Cable TV Ltd" },  	{ 348, 570, "CCT Boatphone", "CCT Boatphone" },  	{ 348, 770, "Digicel", "Digicel" }, @@ -257,14 +293,17 @@ struct plmn_list_entry plmn_list[] = {  	{ 284, 1, "M-Tel", "M-Tel" },  	{ 284, 3, "Vivacom", "Vivacom" }, -	{ 284, 4, "Undisclosed", "Undisclosed" },  	{ 284, 5, "GLOBUL", "GLOBUL" }, +	{ 284, 7, "НКЖИ", "НКЖИ" }, +	{ 284, 9, "COMPATEL LIMITED", "COMPATEL LIMITED" }, +	{ 284, 11, "Bulsatcom", "Bulsatcom" }, +	{ 284, 13, "Max Telecom", "Max Telecom" },  	// Burkina Faso - BF  	{ 613, 1, "Telmob", "Telmob" },  	{ 613, 2, "Airtel", "Airtel" }, -	{ 613, 3, "Telecel Faso ", "Telecel Faso " }, +	{ 613, 3, "Telecel Faso", "Telecel Faso" },  	// Burundi - BI @@ -278,15 +317,15 @@ struct plmn_list_entry plmn_list[] = {  	// Cambodia - KH  	{ 456, 1, "Cellcard", "Cellcard" }, -	{ 456, 2, "Latelz Company Limited", "Latelz Company Limited" }, -	{ 456, 3, "S Telecom", "S Telecom" }, +	{ 456, 2, "Smart", "Smart" }, +	{ 456, 3, "qb", "qb" },  	{ 456, 4, "qb", "qb" }, -	{ 456, 5, "Star-Cell", "Star-Cell" }, +	{ 456, 5, "Latelz Company Limited", "Latelz Company Limited" },  	{ 456, 6, "Latelz Company Limited", "Latelz Company Limited" }, -	{ 456, 18, "Cellcard", "Cellcard" }, -	{ 456, 11, "Excell", "Excell" }, +	{ 456, 8, "Cellcard", "Cellcard" },  	{ 456, 9, "Beeline", "Beeline" }, -	{ 456, 8, "Metfone", "Metfone" }, +	{ 456, 11, "Excell", "Excell" }, +	{ 456, 18, "Cellcard", "Cellcard" },  	// Cameroon - CM @@ -297,20 +336,28 @@ struct plmn_list_entry plmn_list[] = {  	{ 302, 220, "Telus", "Telus" },  	{ 302, 221, "Telus", "Telus" }, +	{ 302, 222, "Telus", "Telus" }, +	{ 302, 250, "ALO", "ALO" },  	{ 302, 270, "EastLink", "EastLink" },  	{ 302, 290, "Airtel Wireless", "Airtel Wireless" }, -	{ 302, 320, "Mobilicity ", "Mobilicity " }, +	{ 302, 320, "Mobilicity", "Mobilicity" }, +	{ 302, 340, "Execulink", "Execulink" },  	{ 302, 350, "FIRST", "FIRST" },  	{ 302, 360, "MiKe", "MiKe" },  	{ 302, 361, "Telus", "Telus" },  	{ 302, 370, "Fido", "Fido" },  	{ 302, 380, "DMTS", "DMTS" }, +	{ 302, 480, "SSi Connexions", "SSi Connexions" },  	{ 302, 490, "WIND Mobile", "WIND Mobile" },  	{ 302, 500, "Videotron", "Videotron" },  	{ 302, 510, "Videotron", "Videotron" }, -	{ 302, 610, "Bell", "Bell" }, +	{ 302, 530, "Keewatinook Okimacinac", "Keewatinook Okimacinac" }, +	{ 302, 560, "Lynx Mobility", "Lynx Mobility" }, +	{ 302, 570, "LightSquared", "LightSquared" }, +	{ 302, 590, "Quadro Communication", "Quadro Communication" },  	{ 302, 610, "Bell", "Bell" },  	{ 302, 620, "ICE Wireless", "ICE Wireless" }, +	{ 302, 630, "Aliant Mobility", "Aliant Mobility" },  	{ 302, 640, "Bell", "Bell" },  	{ 302, 652, "BC Tel Mobility (Telus)", "BC Tel Mobility (Telus)" },  	{ 302, 653, "Telus", "Telus" }, @@ -318,6 +365,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 302, 656, "TBay", "TBay" },  	{ 302, 657, "Telus", "Telus" },  	{ 302, 660, "MTS", "MTS" }, +	{ 302, 670, "CityTel Mobility", "CityTel Mobility" },  	{ 302, 680, "SaskTel", "SaskTel" },  	{ 302, 690, "Bell", "Bell" },  	{ 302, 701, "MB Tel Mobility", "MB Tel Mobility" }, @@ -325,8 +373,15 @@ struct plmn_list_entry plmn_list[] = {  	{ 302, 703, "New Tel Mobility (Aliant)", "New Tel Mobility (Aliant)" },  	{ 302, 710, "Globalstar", "Globalstar" },  	{ 302, 720, "Rogers Wireless", "Rogers Wireless" }, +	{ 302, 730, "TerreStar Solutions", "TerreStar Solutions" }, +	{ 302, 740, "Shaw Telecom G.P.", "Shaw Telecom G.P." }, +	{ 302, 750, "SaskTel", "SaskTel" }, +	{ 302, 760, "Public Mobile Inc.", "Public Mobile Inc." }, +	{ 302, 770, "Rural Com", "Rural Com" },  	{ 302, 780, "SaskTel", "SaskTel" }, +	{ 302, 860, "Telus", "Telus" },  	{ 302, 880, "Bell / Telus / SaskTel", "Bell / Telus / SaskTel" }, +	{ 302, 940, "Wightman Telecom", "Wightman Telecom" },  	// Cape Verde - CV @@ -349,7 +404,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 622, 1, "Airtel", "Airtel" },  	{ 622, 2, "Tchad Mobile", "Tchad Mobile" }, -	{ 622, 2, "Tawali ", "Tawali " }, +	{ 622, 2, "Tawali", "Tawali" },  	{ 622, 3, "Tigo", "Tigo" },  	{ 622, 4, "Salam", "Salam" }, @@ -359,10 +414,17 @@ struct plmn_list_entry plmn_list[] = {  	{ 730, 2, "movistar", "movistar" },  	{ 730, 3, "Claro", "Claro" },  	{ 730, 4, "Nextel", "Nextel" }, +	{ 730, 5, "Multikom S.A.", "Multikom S.A." }, +	{ 730, 6, "Blue Two Chile S.A.", "Blue Two Chile S.A." },  	{ 730, 7, "Virgin Mobile", "Virgin Mobile" },  	{ 730, 8, "VTR Móvil", "VTR Móvil" },  	{ 730, 9, "Nextel", "Nextel" },  	{ 730, 10, "entel", "entel" }, +	{ 730, 11, "Celupago S.A.", "Celupago S.A." }, +	{ 730, 12, "Telestar Móvil S.A.", "Telestar Móvil S.A." }, +	{ 730, 13, "Tribe Mobile Chile SPA", "Tribe Mobile Chile SPA" }, +	{ 730, 14, "Netline Telefónica Móvil Ltda", "Netline Telefónica Móvil Ltda" }, +	{ 730, 15, "Cibeles Telecom S.A.", "Cibeles Telecom S.A." },  	{ 730, 99, "Will", "Will" },  	// China - CN @@ -370,10 +432,11 @@ struct plmn_list_entry plmn_list[] = {  	{ 460, 1, "China Unicom", "China Unicom" },  	{ 460, 2, "China Mobile", "China Mobile" },  	{ 460, 3, "China Telecom", "China Telecom" }, +	{ 460, 4, "Global Star Satellite", "Global Star Satellite" },  	{ 460, 5, "China Telecom", "China Telecom" }, -	{ 460, 6, "China Unicom ", "China Unicom " }, +	{ 460, 6, "China Unicom", "China Unicom" },  	{ 460, 7, "China Mobile", "China Mobile" }, -	{ 460, 20, "China Tietong ", "China Tietong " }, +	{ 460, 20, "China Tietong", "China Tietong" },  	// Christmas Island (Australia) - CX @@ -385,21 +448,25 @@ struct plmn_list_entry plmn_list[] = {  	{ 732, 1, "Colombia Telecomunicaciones S.A.", "Colombia Telecomunicaciones S.A." },  	{ 732, 2, "Edatel", "Edatel" }, +	{ 732, 20, "Emtelsa", "Emtelsa" }, +	{ 732, 99, "EMCALI", "EMCALI" },  	{ 732, 101, "Claro", "Claro" },  	{ 732, 102, "movistar", "movistar" },  	{ 732, 103, "Tigo", "Tigo" },  	{ 732, 111, "Tigo", "Tigo" },  	{ 732, 123, "movistar", "movistar" }, +	{ 732, 130, "AVANTEL", "AVANTEL" }, +	{ 732, 123, "Virgin Mobile Colombia", "Virgin Mobile Colombia" },  	// Comoros - KM -	{ 654, 1, "HURI - SNPT", "HURI - SNPT" }, +	{ 654, 1, "Comoros Telecom", "Comoros Telecom" },  	// Republic of the Congo - CG  	{ 629, 1, "Airtel", "Airtel" }, -	{ 629, 10, "Libertis Telecom", "Libertis Telecom" },  	{ 629, 7, "Warid Telecom", "Warid Telecom" }, +	{ 629, 10, "Libertis Telecom", "Libertis Telecom" },  	// Cook Islands (New Zealand) - CK @@ -411,6 +478,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 712, 2, "Kolbi ICE", "Kolbi ICE" },  	{ 712, 3, "Claro", "Claro" },  	{ 712, 4, "movistar", "movistar" }, +	{ 712, 20, "'''full'''móvil", "'''full'''móvil" },  	// Croatia - HR @@ -427,6 +495,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 280, 1, "Cytamobile-Vodafone", "Cytamobile-Vodafone" },  	{ 280, 10, "MTN", "MTN" },  	{ 280, 20, "PrimeTel", "PrimeTel" }, +	{ 280, 22, "lemontel", "lemontel" },  	// Czech Republic - CZ @@ -436,37 +505,45 @@ struct plmn_list_entry plmn_list[] = {  	{ 230, 4, "U:fon", "U:fon" },  	{ 230, 5, "TRAVEL TELEKOMMUNIKATION, s.r.o.", "TRAVEL TELEKOMMUNIKATION, s.r.o." },  	{ 230, 6, "OSNO TELECOMUNICATION, s.r.o.", "OSNO TELECOMUNICATION, s.r.o." }, +	{ 230, 7, "ASTELNET, s.r.o.", "ASTELNET, s.r.o." }, +	{ 230, 8, "Compatel s.r.o.", "Compatel s.r.o." },  	{ 230, 98, "Správa železniční dopravní cesty, s.o.", "Správa železniční dopravní cesty, s.o." },  	{ 230, 99, "Vodafone", "Vodafone" },  	// Democratic Republic of the Congo - CD  	{ 630, 1, "Vodacom", "Vodacom" }, -	{ 630, 2, "Zain", "Zain" }, +	{ 630, 2, "airtel", "airtel" },  	{ 630, 4, "Cellco", "Cellco" },  	{ 630, 5, "Supercell", "Supercell" },  	{ 630, 10, "Libertis Telecom", "Libertis Telecom" }, -	{ 630, 86, "CCT", "CCT" }, -	{ 630, 89, "Tigo DRC", "Tigo DRC" }, -	{ 630, 992, "Africell", "Africell" }, +	{ 630, 86, "Orange", "Orange" }, +	{ 630, 88, "YTT", "YTT" }, +	{ 630, 89, "Tigo", "Tigo" }, +	{ 630, 90, "Africell", "Africell" },  	// Denmark (Kingdom of Denmark) - DK  	{ 238, 1, "TDC", "TDC" },  	{ 238, 2, "Telenor", "Telenor" },  	{ 238, 3, "End2End", "End2End" }, -	{ 238, 5, "ApS KBUS", "ApS KBUS" }, +	{ 238, 4, "NextGen Mobile Ltd", "NextGen Mobile Ltd" }, +	{ 238, 5, "TetraNet", "TetraNet" },  	{ 238, 6, "3", "3" }, -	{ 238, 7, "Barablu Mobile Ltd.", "Barablu Mobile Ltd." }, -	{ 238, 8, "Nordisk Mobiltelefon", "Nordisk Mobiltelefon" }, -	{ 238, 9, "Dansk Beredskabskommunikation A/S", "Dansk Beredskabskommunikation A/S" }, +	{ 238, 7, "Vectone Mobile", "Vectone Mobile" }, +	{ 238, 8, "Voxbone", "Voxbone" }, +	{ 238, 9, "SINE", "SINE" },  	{ 238, 10, "TDC", "TDC" }, -	{ 238, 11, "Dansk Beredskabskommunikation A/S", "Dansk Beredskabskommunikation A/S" }, -	{ 238, 12, "Lycamobile Denmark Ltd", "Lycamobile Denmark Ltd" }, +	{ 238, 11, "SINE", "SINE" }, +	{ 238, 12, "Lycamobile", "Lycamobile" }, +	{ 238, 13, "Compatel Limited", "Compatel Limited" },  	{ 238, 20, "Telia", "Telia" },  	{ 238, 23, "GSM-R DK", "GSM-R DK" }, -	{ 238, 30, "Telia", "Telia" }, +	{ 238, 28, "CoolTEL ApS", "CoolTEL ApS" }, +	{ 238, 30, "Interactive digital media GmbH", "Interactive digital media GmbH" },  	{ 238, 40, "Ericsson Danmark A/S", "Ericsson Danmark A/S" }, +	{ 238, 43, "MobiWeb Limited", "MobiWeb Limited" }, +	{ 238, 66, "TT-Netværket P/S", "TT-Netværket P/S" },  	{ 238, 77, "Telenor", "Telenor" },  	// Djibouti - DJ @@ -487,7 +564,7 @@ struct plmn_list_entry plmn_list[] = {  	// East Timor - TL -	{ 514, 1, "Telin", "Telin" }, +	{ 514, 1, "Telin Telkomcel", "Telin Telkomcel" },  	{ 514, 2, "Timor Telecom", "Timor Telecom" },  	{ 514, 3, "Viettel Timor-Leste", "Viettel Timor-Leste" }, @@ -526,6 +603,10 @@ struct plmn_list_entry plmn_list[] = {  	{ 248, 4, "OY Top Connect", "OY Top Connect" },  	{ 248, 5, "AS Bravocom Mobiil", "AS Bravocom Mobiil" },  	{ 248, 6, "Progroup Holding", "Progroup Holding" }, +	{ 248, 7, "Televõrgu AS", "Televõrgu AS" }, +	{ 248, 8, "VIVEX", "VIVEX" }, +	{ 248, 9, "Bravo Telecom", "Bravo Telecom" }, +	{ 248, 71, "Siseministeerium (Ministry of Interior)", "Siseministeerium (Ministry of Interior)" },  	// Ethiopia - ET @@ -535,11 +616,13 @@ struct plmn_list_entry plmn_list[] = {  	{ 288, 1, "Faroese Telecom", "Faroese Telecom" },  	{ 288, 2, "Vodafone", "Vodafone" }, +	{ 288, 3, "Edge Mobile Sp/F", "Edge Mobile Sp/F" },  	// Fiji - FJ  	{ 542, 1, "Vodafone", "Vodafone" },  	{ 542, 2, "Digicel", "Digicel" }, +	{ 542, 3, "Telecom Fiji Ltd", "Telecom Fiji Ltd" },  	// Finland - FI @@ -547,43 +630,69 @@ struct plmn_list_entry plmn_list[] = {  	{ 244, 4, "AINA", "AINA" },  	{ 244, 5, "Elisa", "Elisa" },  	{ 244, 7, "Nokia", "Nokia" }, -	{ 244, 8, "Unknown", "Unknown" }, -	{ 244, 9, "Finnet Group / NOKIA OYJ", "Finnet Group / NOKIA OYJ" }, +	{ 244, 8, "Nokia", "Nokia" }, +	{ 244, 9, "Finnet Group / Nokia Solutions and Networks", "Finnet Group / Nokia Solutions and Networks" },  	{ 244, 10, "TDC", "TDC" }, -	{ 244, 11, "VIRVE", "VIRVE" }, +	{ 244, 11, "Vectone Mobile", "Vectone Mobile" },  	{ 244, 12, "DNA", "DNA" }, -	{ 244, 14, "AMT", "AMT" }, +	{ 244, 13, "DNA", "DNA" }, +	{ 244, 14, "Ålcom", "Ålcom" },  	{ 244, 15, "SAMK", "SAMK" }, +	{ 244, 16, "Oy Finland Tele2 AB", "Oy Finland Tele2 AB" },  	{ 244, 21, "Saunalahti", "Saunalahti" }, -	{ 244, 29, "Scnl Truphone", "Scnl Truphone" }, +	{ 244, 25, "Datame", "Datame" }, +	{ 244, 26, "Compatel", "Compatel" }, +	{ 244, 29, "SCNL Truphone", "SCNL Truphone" }, +	{ 244, 30, "Vectone Mobile", "Vectone Mobile" }, +	{ 244, 31, "Ukko Mobile", "Ukko Mobile" }, +	{ 244, 32, "Voxbone", "Voxbone" },  	{ 244, 91, "Sonera", "Sonera" },  	// France - FR  	{ 208, 1, "Orange", "Orange" },  	{ 208, 2, "Orange", "Orange" }, -	{ 208, 4, "Sisteer ", "Sisteer " }, +	{ 208, 3, "MobiquiThings", "MobiquiThings" }, +	{ 208, 4, "Sisteer", "Sisteer" },  	{ 208, 5, "Globalstar Europe", "Globalstar Europe" },  	{ 208, 6, "Globalstar Europe", "Globalstar Europe" },  	{ 208, 7, "Globalstar Europe", "Globalstar Europe" }, +	{ 208, 8, "Completel Mobile", "Completel Mobile" }, +	{ 208, 9, "SFR", "SFR" },  	{ 208, 10, "SFR", "SFR" },  	{ 208, 11, "SFR", "SFR" },  	{ 208, 13, "SFR", "SFR" },  	{ 208, 14, "RFF", "RFF" },  	{ 208, 15, "Free Mobile", "Free Mobile" },  	{ 208, 16, "Free Mobile", "Free Mobile" }, +	{ 208, 17, "LEGOS", "LEGOS" }, +	{ 208, 18, "Voxbone", "Voxbone" },  	{ 208, 20, "Bouygues", "Bouygues" },  	{ 208, 21, "Bouygues", "Bouygues" },  	{ 208, 22, "Transatel Mobile", "Transatel Mobile" },  	{ 208, 23, "Virgin Mobile (MVNO)", "Virgin Mobile (MVNO)" }, +	{ 208, 24, "MobiquiThings", "MobiquiThings" },  	{ 208, 25, "LycaMobile", "LycaMobile" },  	{ 208, 26, "NRJ Mobile (MVNO)", "NRJ Mobile (MVNO)" }, +	{ 208, 27, "Afone", "Afone" }, +	{ 208, 28, "Astrium SAS", "Astrium SAS" }, +	{ 208, 29, "Société International Mobile Communication", "Société International Mobile Communication" }, +	{ 208, 30, "Symacom", "Symacom" }, +	{ 208, 31, "Vectone", "Vectone" }, +	{ 208, 88, "Bouygues", "Bouygues" }, +	{ 208, 89, "Omer Telecom Ltd", "Omer Telecom Ltd" }, +	{ 208, 90, "Images & Réseaux", "Images & Réseaux" }, +	{ 208, 91, "Orange S.A.", "Orange S.A." }, +	{ 208, 92, "Com4Innov", "Com4Innov" }, +	{ 208, 93, "TDF", "TDF" },  	// French Guiana (France) - GF  	// French Polynesia (France) - PF +	{ 547, 10, "Mara Telecom", "Mara Telecom" }, +	{ 547, 15, "Vodafone", "Vodafone" },  	{ 547, 20, "Vini", "Vini" },  	// French Southern Territories (France) - TF @@ -595,13 +704,14 @@ struct plmn_list_entry plmn_list[] = {  	{ 628, 2, "Moov", "Moov" },  	{ 628, 3, "Airtel", "Airtel" },  	{ 628, 4, "Azur", "Azur" }, +	{ 628, 5, "RAG", "RAG" },  	// Gambia - GM  	{ 607, 1, "Gamcel", "Gamcel" },  	{ 607, 2, "Africel", "Africel" },  	{ 607, 3, "Comium", "Comium" }, -	{ 607, 4, "QCell ", "QCell " }, +	{ 607, 4, "QCell", "QCell" },  	// Georgia - GE @@ -610,10 +720,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 282, 3, "MagtiCom", "MagtiCom" },  	{ 282, 4, "Beeline", "Beeline" },  	{ 282, 5, "Silknet", "Silknet" }, +	{ 282, 6, "JSC Compatel", "JSC Compatel" }, +	{ 282, 7, "GlobalCell Ltd", "GlobalCell Ltd" },  	// Germany - DE -	{ 262, 1, "T-Mobile", "T-Mobile" }, +	{ 262, 1, "Telekom", "Telekom" },  	{ 262, 2, "Vodafone", "Vodafone" },  	{ 262, 3, "E-Plus", "E-Plus" },  	{ 262, 4, "Vodafone", "Vodafone" }, @@ -622,19 +734,25 @@ struct plmn_list_entry plmn_list[] = {  	{ 262, 7, "O2", "O2" },  	{ 262, 8, "O2", "O2" },  	{ 262, 9, "Vodafone", "Vodafone" }, -	{ 262, 10, "Arcor AG & Co", "Arcor AG & Co" }, +	{ 262, 10, "DB Netz AG", "DB Netz AG" },  	{ 262, 11, "O2", "O2" },  	{ 262, 12, "Dolphin Telecom / sipgate", "Dolphin Telecom / sipgate" },  	{ 262, 13, "Mobilcom Multimedia", "Mobilcom Multimedia" },  	{ 262, 14, "Group 3G UMTS", "Group 3G UMTS" },  	{ 262, 15, "Airdata", "Airdata" },  	{ 262, 16, "Telogic ex. Vistream", "Telogic ex. Vistream" }, +	{ 262, 17, "E-Plus", "E-Plus" }, +	{ 262, 18, "NetCologne", "NetCologne" }, +	{ 262, 19, "Inquam Deutschland", "Inquam Deutschland" },  	{ 262, 20, "OnePhone", "OnePhone" }, -	{ 262, 42, "27C3", "27C3" }, +	{ 262, 41, "First Telecom GmbH", "First Telecom GmbH" }, +	{ 262, 42, "CCC Event", "CCC Event" },  	{ 262, 43, "LYCA", "LYCA" },  	{ 262, 60, "DB Telematik", "DB Telematik" },  	{ 262, 76, "Siemens AG", "Siemens AG" },  	{ 262, 77, "E-Plus", "E-Plus" }, +	{ 262, 78, "T-Mobile", "T-Mobile" }, +	{ 262, 79, "ng4T GmbH", "ng4T GmbH" },  	{ 262, 92, "Nash Technologies", "Nash Technologies" },  	{ 262, 901, "Debitel", "Debitel" }, @@ -643,9 +761,10 @@ struct plmn_list_entry plmn_list[] = {  	{ 620, 1, "MTN", "MTN" },  	{ 620, 2, "Vodafone", "Vodafone" },  	{ 620, 3, "tiGO", "tiGO" }, -	{ 620, 4, "Expresso ", "Expresso " }, +	{ 620, 4, "Expresso", "Expresso" },  	{ 620, 6, "Airtel", "Airtel" }, -	{ 620, 7, "Globacom (Zain)", "Globacom (Zain)" }, +	{ 620, 7, "Globacom", "Globacom" }, +	{ 620, 11, "Netafrique Dot Com Ltd", "Netafrique Dot Com Ltd" },  	// Gibraltar (United Kingdom) - GI @@ -656,7 +775,12 @@ struct plmn_list_entry plmn_list[] = {  	// Greece - GR  	{ 202, 1, "Cosmote", "Cosmote" }, +	{ 202, 2, "Cosmote", "Cosmote" }, +	{ 202, 3, "OTE", "OTE" }, +	{ 202, 4, "EDISY", "EDISY" },  	{ 202, 5, "Vodafone", "Vodafone" }, +	{ 202, 6, "Cosmoline", "Cosmoline" }, +	{ 202, 7, "AMD Telecom", "AMD Telecom" },  	{ 202, 9, "Wind", "Wind" },  	{ 202, 10, "Wind", "Wind" }, @@ -682,21 +806,21 @@ struct plmn_list_entry plmn_list[] = {  	{ 310, 32, "IT&E Wireless", "IT&E Wireless" },  	{ 310, 33, "Guam Telephone Authority", "Guam Telephone Authority" },  	{ 310, 140, "mPulse", "mPulse" }, -	{ 310, 370, "docomo", "docomo" },  	{ 311, 250, "i CAN_GSM", "i CAN_GSM" }, -	{ 310, 470, "docomo", "docomo" }, +	{ 310, 370, "Docomo", "Docomo" }, +	{ 310, 470, "Docomo", "Docomo" },  	// Guatemala - GT  	{ 704, 1, "Claro", "Claro" }, -	{ 704, 201, "Tigo", "Tigo" }, +	{ 704, 2, "Tigo", "Tigo" },  	{ 704, 3, "movistar", "movistar" },  	// Guernsey (United Kingdom) - GG -	{ 234, 55, "Sure Mobile", "Sure Mobile" }, -	{ 234, 50, "Wave Telecom", "Wave Telecom" },  	{ 234, 3, "Airtel Vodafone", "Airtel Vodafone" }, +	{ 234, 50, "Wave Telecom", "Wave Telecom" }, +	{ 234, 55, "Sure Mobile", "Sure Mobile" },  	// Guinea - GN @@ -708,7 +832,8 @@ struct plmn_list_entry plmn_list[] = {  	// Guinea-Bissau - GW -	{ 632, 2, "Areeba", "Areeba" }, +	{ 632, 1, "Guinetel", "Guinetel" }, +	{ 632, 2, "MTN Areeba", "MTN Areeba" },  	{ 632, 3, "Orange", "Orange" },  	{ 632, 7, "Guinetel", "Guinetel" }, @@ -721,20 +846,20 @@ struct plmn_list_entry plmn_list[] = {  	{ 372, 1, "Voila", "Voila" },  	{ 372, 2, "Digicel", "Digicel" }, -	{ 372, 3, "Telecommunication S.A.", "Telecommunication S.A." }, +	{ 372, 3, "Natcom", "Natcom" },  	// Honduras - HN  	{ 708, 1, "Claro", "Claro" },  	{ 708, 2, "Tigo", "Tigo" },  	{ 708, 30, "Hondutel", "Hondutel" }, -	{ 708, 40, "DIGICEL ", "DIGICEL " }, +	{ 708, 40, "Digicel", "Digicel" },  	// Hong Kong - HK  	{ 454, 1, "CITIC Telecom 1616", "CITIC Telecom 1616" }, -	{ 454, 2, "CSL Limited ", "CSL Limited " }, -	{ 454, 3, "3 (3G) ", "3 (3G) " }, +	{ 454, 2, "CSL Limited", "CSL Limited" }, +	{ 454, 3, "3", "3" },  	{ 454, 4, "3 (2G)", "3 (2G)" },  	{ 454, 5, "3 (CDMA)", "3 (CDMA)" },  	{ 454, 6, "SmarTone", "SmarTone" }, @@ -749,17 +874,19 @@ struct plmn_list_entry plmn_list[] = {  	{ 454, 15, "SmarTone Mobile Communications Limited", "SmarTone Mobile Communications Limited" },  	{ 454, 16, "PCCW Mobile (2G)", "PCCW Mobile (2G)" },  	{ 454, 17, "SmarTone Mobile Communications Limited", "SmarTone Mobile Communications Limited" }, -	{ 454, 18, "CSL Limited ", "CSL Limited " }, -	{ 454, 19, "PCCW Mobile (3G)", "PCCW Mobile (3G)" }, +	{ 454, 18, "CSL Limited", "CSL Limited" }, +	{ 454, 19, "PCCW Mobile (3G/4G)", "PCCW Mobile (3G/4G)" },  	{ 454, 22, "P Plus", "P Plus" },  	{ 454, 29, "PCCW Mobile (CDMA)", "PCCW Mobile (CDMA)" },  	// Hungary - HU  	{ 216, 1, "Telenor", "Telenor" }, +	{ 216, 20, "Telenor", "Telenor" },  	{ 216, 30, "T-Mobile", "T-Mobile" },  	{ 216, 70, "Vodafone", "Vodafone" },  	{ 216, 71, "UPC Hungary", "UPC Hungary" }, +	{ 216, 99, "MAV GSM-R", "MAV GSM-R" },  	// Iceland - IS @@ -862,31 +989,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 404, 97, "AirTel", "AirTel" },  	{ 404, 98, "AirTel", "AirTel" },  	{ 405, 1, "Reliance", "Reliance" }, -	{ 405, 3, "Reliance", "Reliance" }, -	{ 405, 4, "Reliance", "Reliance" }, -	{ 405, 5, "Reliance", "Reliance" }, -	{ 405, 6, "Reliance", "Reliance" }, -	{ 405, 7, "Reliance", "Reliance" }, -	{ 405, 8, "Reliance", "Reliance" }, -	{ 405, 9, "Reliance", "Reliance" }, -	{ 405, 10, "Reliance", "Reliance" }, -	{ 405, 11, "Reliance", "Reliance" }, -	{ 405, 12, "Reliance", "Reliance" }, -	{ 405, 13, "Reliance", "Reliance" }, -	{ 405, 14, "Reliance", "Reliance" }, -	{ 405, 15, "Reliance", "Reliance" }, -	{ 405, 17, "Reliance", "Reliance" }, -	{ 405, 18, "Reliance", "Reliance" }, -	{ 405, 19, "Reliance", "Reliance" }, -	{ 405, 20, "Reliance", "Reliance" }, -	{ 405, 21, "Reliance", "Reliance" }, -	{ 405, 22, "Reliance", "Reliance" }, -	{ 405, 23, "Reliance", "Reliance" },  	{ 405, 25, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 26, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 27, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 28, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 29, "TATA DOCOMO", "TATA DOCOMO" }, +	{ 405, 3, "Reliance", "Reliance" },  	{ 405, 30, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 31, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 32, "TATA DOCOMO", "TATA DOCOMO" }, @@ -897,6 +1005,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 405, 37, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 38, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 39, "TATA DOCOMO", "TATA DOCOMO" }, +	{ 405, 4, "Reliance", "Reliance" },  	{ 405, 41, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 42, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 43, "TATA DOCOMO", "TATA DOCOMO" }, @@ -904,6 +1013,24 @@ struct plmn_list_entry plmn_list[] = {  	{ 405, 45, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 46, "TATA DOCOMO", "TATA DOCOMO" },  	{ 405, 47, "TATA DOCOMO", "TATA DOCOMO" }, +	{ 405, 5, "Reliance", "Reliance" }, +	{ 405, 6, "Reliance", "Reliance" }, +	{ 405, 7, "Reliance", "Reliance" }, +	{ 405, 8, "Reliance", "Reliance" }, +	{ 405, 9, "Reliance", "Reliance" }, +	{ 405, 10, "Reliance", "Reliance" }, +	{ 405, 11, "Reliance", "Reliance" }, +	{ 405, 12, "Reliance", "Reliance" }, +	{ 405, 13, "Reliance", "Reliance" }, +	{ 405, 14, "Reliance", "Reliance" }, +	{ 405, 15, "Reliance", "Reliance" }, +	{ 405, 17, "Reliance", "Reliance" }, +	{ 405, 18, "Reliance", "Reliance" }, +	{ 405, 19, "Reliance", "Reliance" }, +	{ 405, 20, "Reliance", "Reliance" }, +	{ 405, 21, "Reliance", "Reliance" }, +	{ 405, 22, "Reliance", "Reliance" }, +	{ 405, 23, "Reliance", "Reliance" },  	{ 405, 51, "AirTel", "AirTel" },  	{ 405, 52, "AirTel", "AirTel" },  	{ 405, 53, "AirTel", "AirTel" }, @@ -911,6 +1038,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 405, 55, "Airtel", "Airtel" },  	{ 405, 56, "AirTel", "AirTel" },  	{ 405, 66, "Vodafone IN", "Vodafone IN" }, +	{ 405, 67, "Vodafone IN", "Vodafone IN" },  	{ 405, 70, "IDEA", "IDEA" },  	{ 405, 750, "Vodafone IN", "Vodafone IN" },  	{ 405, 751, "Vodafone IN", "Vodafone IN" }, @@ -942,6 +1070,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 405, 827, "Videocon Datacom", "Videocon Datacom" },  	{ 405, 834, "Videocon Datacom", "Videocon Datacom" },  	{ 405, 844, "Uninor", "Uninor" }, +	{ 405, 840, "Jio", "Jio" },  	{ 405, 845, "IDEA", "IDEA" },  	{ 405, 846, "IDEA", "IDEA" },  	{ 405, 847, "IDEA", "IDEA" }, @@ -951,27 +1080,27 @@ struct plmn_list_entry plmn_list[] = {  	{ 405, 851, "IDEA", "IDEA" },  	{ 405, 852, "IDEA", "IDEA" },  	{ 405, 853, "IDEA", "IDEA" }, -	{ 405, 854, "Loop Mobile", "Loop Mobile" }, -	{ 405, 855, "Loop Mobile", "Loop Mobile" }, -	{ 405, 856, "Loop Mobile", "Loop Mobile" }, -	{ 405, 857, "Loop Mobile", "Loop Mobile" }, -	{ 405, 858, "Loop Mobile", "Loop Mobile" }, -	{ 405, 859, "Loop Mobile", "Loop Mobile" }, -	{ 405, 860, "Loop Mobile", "Loop Mobile" }, -	{ 405, 861, "Loop Mobile", "Loop Mobile" }, -	{ 405, 862, "Loop Mobile", "Loop Mobile" }, -	{ 405, 863, "Loop Mobile", "Loop Mobile" }, -	{ 405, 864, "Loop Mobile", "Loop Mobile" }, -	{ 405, 865, "Loop Mobile", "Loop Mobile" }, -	{ 405, 866, "Loop Mobile", "Loop Mobile" }, -	{ 405, 867, "Loop Mobile", "Loop Mobile" }, -	{ 405, 868, "Loop Mobile", "Loop Mobile" }, -	{ 405, 869, "Loop Mobile", "Loop Mobile" }, -	{ 405, 870, "Loop Mobile", "Loop Mobile" }, -	{ 405, 871, "Loop Mobile", "Loop Mobile" }, -	{ 405, 872, "Loop Mobile", "Loop Mobile" }, -	{ 405, 873, "Loop Mobile", "Loop Mobile" }, -	{ 405, 874, "Loop Mobile", "Loop Mobile" }, +	{ 405, 854, "Jio", "Jio" }, +	{ 405, 855, "Jio", "Jio" }, +	{ 405, 856, "Jio", "Jio" }, +	{ 405, 857, "Jio", "Jio" }, +	{ 405, 858, "Jio", "Jio" }, +	{ 405, 859, "Jio", "Jio" }, +	{ 405, 860, "Jio", "Jio" }, +	{ 405, 861, "Jio", "Jio" }, +	{ 405, 862, "Jio", "Jio" }, +	{ 405, 863, "Jio", "Jio" }, +	{ 405, 864, "Jio", "Jio" }, +	{ 405, 865, "Jio", "Jio" }, +	{ 405, 866, "Jio", "Jio" }, +	{ 405, 867, "Jio", "Jio" }, +	{ 405, 868, "Jio", "Jio" }, +	{ 405, 869, "Jio", "Jio" }, +	{ 405, 870, "Jio", "Jio" }, +	{ 405, 871, "Jio", "Jio" }, +	{ 405, 872, "Jio", "Jio" }, +	{ 405, 873, "Jio", "Jio" }, +	{ 405, 874, "Jio", "Jio" },  	{ 405, 875, "Uninor", "Uninor" },  	{ 405, 880, "Uninor", "Uninor" },  	{ 405, 881, "S Tel", "S Tel" }, @@ -992,7 +1121,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 510, 3, "StarOne", "StarOne" },  	{ 510, 7, "TelkomFlexi", "TelkomFlexi" },  	{ 510, 8, "AXIS", "AXIS" }, -	{ 510, 9, "SMART", "SMART" }, +	{ 510, 9, "SMARTFREN", "SMARTFREN" },  	{ 510, 10, "Telkomsel", "Telkomsel" },  	{ 510, 11, "XL", "XL" },  	{ 510, 20, "TELKOMMobile", "TELKOMMobile" }, @@ -1002,6 +1131,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 510, 89, "3", "3" },  	{ 510, 99, "Esia", "Esia" },  	{ 510, 995, "Komselindo", "Komselindo" }, +	{ 510, 996, "Komselindo", "Komselindo" },  	// Iran - IR @@ -1039,8 +1169,8 @@ struct plmn_list_entry plmn_list[] = {  	// Isle of Man (United Kingdom) - IM -	{ 234, 58, "Pronto GSM", "Pronto GSM" },  	{ 234, 9, "Sure Mobile", "Sure Mobile" }, +	{ 234, 58, "Pronto GSM", "Pronto GSM" },  	// Israel - IL @@ -1049,10 +1179,17 @@ struct plmn_list_entry plmn_list[] = {  	{ 425, 3, "Pelephone", "Pelephone" },  	{ 425, 7, "Hot Mobile", "Hot Mobile" },  	{ 425, 8, "Golan Telecom", "Golan Telecom" }, +	{ 425, 11, "365 Telecom", "365 Telecom" }, +	{ 425, 12, "Free Telecom", "Free Telecom" }, +	{ 425, 13, "Ituran Cellular Communications", "Ituran Cellular Communications" },  	{ 425, 14, "Youphone", "Youphone" },  	{ 425, 15, "Home Cellular", "Home Cellular" },  	{ 425, 16, "Rami Levy", "Rami Levy" }, +	{ 425, 17, "Gale Phone", "Gale Phone" },  	{ 425, 18, "Cellact Communications", "Cellact Communications" }, +	{ 425, 19, "Azi Communications Ltd.", "Azi Communications Ltd." }, +	{ 425, 20, "Bezeq Ltd", "Bezeq Ltd" }, +	{ 425, 21, "B.I.P. Communications Ltd.", "B.I.P. Communications Ltd." },  	// Italy - IT @@ -1063,6 +1200,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 222, 7, "Noverca", "Noverca" },  	{ 222, 10, "Vodafone", "Vodafone" },  	{ 222, 30, "RFI", "RFI" }, +	{ 222, 34, "BT Italia", "BT Italia" },  	{ 222, 35, "Lyca Italy", "Lyca Italy" },  	{ 222, 77, "IPSE 2000", "IPSE 2000" },  	{ 222, 88, "Wind", "Wind" }, @@ -1082,6 +1220,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 338, 20, "LIME", "LIME" },  	{ 338, 50, "Digicel", "Digicel" }, +	{ 338, 110, "LIME", "LIME" },  	{ 338, 180, "LIME", "LIME" },  	// Japan - JP @@ -1184,14 +1323,14 @@ struct plmn_list_entry plmn_list[] = {  	// Jersey (United Kingdom) - JE +	{ 234, 3, "Airtel Vodafone", "Airtel Vodafone" },  	{ 234, 50, "JT", "JT" },  	{ 234, 55, "Sure Mobile", "Sure Mobile" }, -	{ 234, 3, "Airtel Vodafone", "Airtel Vodafone" },  	// Jordan - JO  	{ 416, 1, "zain JO", "zain JO" }, -	{ 416, 74, "XPress Telecom", "XPress Telecom" }, +	{ 416, 2, "XPress Telecom", "XPress Telecom" },  	{ 416, 3, "Umniah", "Umniah" },  	{ 416, 77, "Orange", "Orange" }, @@ -1201,19 +1340,18 @@ struct plmn_list_entry plmn_list[] = {  	{ 401, 2, "Kcell", "Kcell" },  	{ 401, 7, "Dalacom", "Dalacom" },  	{ 401, 8, "Kazakhtelecom", "Kazakhtelecom" }, -	{ 401, 10, "Dontelecom", "Dontelecom" },  	{ 401, 77, "Tele2.kz", "Tele2.kz" },  	// Kenya - KE  	{ 639, 2, "Safaricom", "Safaricom" },  	{ 639, 3, "Airtel", "Airtel" }, -	{ 639, 7, "Orange Kenya", "Orange Kenya" },  	{ 639, 5, "yu", "yu" }, +	{ 639, 7, "Orange Kenya", "Orange Kenya" },  	// Kiribati - KI -	{ 545, 1, "Kiribati - Frigate Net", "Kiribati - Frigate Net" }, +	{ 545, 1, "Kiribati - TSKL", "Kiribati - TSKL" },  	{ 545, 9, "Kiribati - Frigate Net", "Kiribati - Frigate Net" },  	// North Korea - KP @@ -1231,12 +1369,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 450, 8, "olleh", "olleh" },  	{ 450, 11, "SKTelecom", "SKTelecom" }, -	// Kosovo - RKS +	// Kosovo - XK  	{ 212, 1, "Vala", "Vala" }, +	{ 212, 1, "Z Mobile", "Z Mobile" },  	{ 293, 41, "IPKO", "IPKO" },  	{ 293, 41, "D3 Mobile", "D3 Mobile" }, -	{ 212, 1, "Z Mobile", "Z Mobile" },  	// Kuwait - KW @@ -1263,6 +1401,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 247, 1, "LMT", "LMT" },  	{ 247, 2, "Tele2", "Tele2" },  	{ 247, 3, "TRIATEL", "TRIATEL" }, +	{ 247, 4, "Beta Telecom", "Beta Telecom" },  	{ 247, 5, "Bite", "Bite" },  	{ 247, 6, "Rigatta", "Rigatta" },  	{ 247, 7, "MTS", "MTS" }, @@ -1300,21 +1439,24 @@ struct plmn_list_entry plmn_list[] = {  	{ 295, 1, "Swisscom", "Swisscom" },  	{ 295, 2, "Orange", "Orange" },  	{ 295, 5, "FL1", "FL1" }, -	{ 295, 77, "Alpmobil", "Alpmobil" },  	{ 295, 6, "Cubic Telecom", "Cubic Telecom" }, +	{ 295, 77, "Alpmobil", "Alpmobil" },  	// Lithuania - LT  	{ 246, 1, "Omnitel", "Omnitel" }, -	{ 246, 2, "BITE", "BITE" }, +	{ 246, 2, "BITĖ", "BITĖ" },  	{ 246, 3, "Tele 2", "Tele 2" },  	{ 246, 5, "LitRail", "LitRail" },  	{ 246, 6, "Mediafon", "Mediafon" },  	// Luxembourg - LU -	{ 270, 1, "LuxGSM", "LuxGSM" }, +	{ 270, 1, "POST", "POST" }, +	{ 270, 2, "MTX Connect S.a.r.l.", "MTX Connect S.a.r.l." }, +	{ 270, 10, "Blue Communications", "Blue Communications" },  	{ 270, 77, "Tango", "Tango" }, +	{ 270, 78, "Interactive digital media GmbH", "Interactive digital media GmbH" },  	{ 270, 99, "Orange", "Orange" },  	// Macau (People's Republic of China) - MO @@ -1324,6 +1466,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 455, 3, "3", "3" },  	{ 455, 4, "CTM", "CTM" },  	{ 455, 5, "3", "3" }, +	{ 455, 6, "SmarTone", "SmarTone" },  	// Macedonia - MK @@ -1335,7 +1478,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 646, 1, "Airtel", "Airtel" },  	{ 646, 2, "Orange", "Orange" }, -	{ 646, 3, "Sacel ", "Sacel " }, +	{ 646, 3, "Sacel", "Sacel" },  	{ 646, 4, "Telma", "Telma" },  	// Malawi - MW @@ -1351,20 +1494,22 @@ struct plmn_list_entry plmn_list[] = {  	{ 502, 12, "Maxis", "Maxis" },  	{ 502, 13, "Celcom", "Celcom" },  	{ 502, 14, "Telekom Malaysia Berhad for PSTN SMS", "Telekom Malaysia Berhad for PSTN SMS" }, +	{ 502, 150, "Tune Talk", "Tune Talk" }, +	{ 502, 151, "Baraka Telecom Sdn Bhd (MVNE)", "Baraka Telecom Sdn Bhd (MVNE)" }, +	{ 502, 152, "Yes", "Yes" }, +	{ 502, 156, "Altel", "Altel" },  	{ 502, 16, "DiGi", "DiGi" },  	{ 502, 17, "Hotlink", "Hotlink" },  	{ 502, 18, "U Mobile", "U Mobile" },  	{ 502, 18, "TM Homeline", "TM Homeline" },  	{ 502, 19, "Celcom", "Celcom" },  	{ 502, 20, "Electcoms Wireless Sdn Bhd", "Electcoms Wireless Sdn Bhd" }, -	{ 502, 150, "Tune Talk", "Tune Talk" }, -	{ 502, 151, "Baraka Telecom Sdn Bhd (MVNE)", "Baraka Telecom Sdn Bhd (MVNE)" }, -	{ 502, 152, "Yes", "Yes" }, +	{ 502, 12, "Kartu As", "Kartu As" },  	// Maldives - MV  	{ 472, 1, "Dhiraagu", "Dhiraagu" }, -	{ 472, 2, "Wataniya", "Wataniya" }, +	{ 472, 2, "Ooredoo", "Ooredoo" },  	// Mali - ML @@ -1379,7 +1524,7 @@ struct plmn_list_entry plmn_list[] = {  	// Marshall Islands - MH -	{ 551, 1, "Marshall Islands National Telecommunications Authority (MINTA) ", "Marshall Islands National Telecommunications Authority (MINTA) " }, +	{ 551, 1, "Marshall Islands National Telecommunications Authority (MINTA)", "Marshall Islands National Telecommunications Authority (MINTA)" },  	// Martinique (France) - MQ @@ -1407,6 +1552,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 334, 10, "Nextel", "Nextel" },  	{ 334, 20, "Telcel", "Telcel" },  	{ 334, 30, "movistar", "movistar" }, +	{ 334, 30, "Virgin Mobile", "Virgin Mobile" },  	{ 334, 40, "Iusacell / Unefon", "Iusacell / Unefon" },  	{ 334, 50, "Iusacell", "Iusacell" },  	{ 334, 90, "Nextel", "Nextel" }, @@ -1462,12 +1608,14 @@ struct plmn_list_entry plmn_list[] = {  	// Myanmar - MM  	{ 414, 1, "MPT", "MPT" }, +	{ 414, 5, "Ooredoo", "Ooredoo" }, +	{ 414, 6, "NA", "NA" },  	// Namibia - NA  	{ 649, 1, "MTC", "MTC" },  	{ 649, 2, "switch", "switch" }, -	{ 649, 3, "Leo", "Leo" }, +	{ 649, 3, "TN Mobile", "TN Mobile" },  	// Nauru - NR @@ -1482,20 +1630,21 @@ struct plmn_list_entry plmn_list[] = {  	// Netherlands (Kingdom of the Netherlands) - NL -	{ 204, 1, "VastMobiel B.V.", "VastMobiel B.V." }, +	{ 204, 1, "RadioAccess Network Services BV", "RadioAccess Network Services BV" },  	{ 204, 2, "Tele2", "Tele2" },  	{ 204, 3, "Voiceworks", "Voiceworks" }, -	{ 204, 4, "Vodafone Libertel B.V.", "Vodafone Libertel B.V." }, +	{ 204, 4, "Vodafone", "Vodafone" },  	{ 204, 5, "Elephant Talk Communications Premium Rate Services", "Elephant Talk Communications Premium Rate Services" }, -	{ 204, 6, "Vectone Mobile Delight Mobile  ", "Vectone Mobile Delight Mobile  " }, +	{ 204, 6, "Vectone Mobile Delight Mobile", "Vectone Mobile Delight Mobile" },  	{ 204, 7, "Teleena (MVNE)", "Teleena (MVNE)" },  	{ 204, 8, "KPN", "KPN" },  	{ 204, 9, "Lycamobile", "Lycamobile" },  	{ 204, 10, "KPN", "KPN" }, +	{ 204, 11, "VoipIT B.V.", "VoipIT B.V." },  	{ 204, 12, "Telfort", "Telfort" },  	{ 204, 13, "Unica Installatietechniek B.V.", "Unica Installatietechniek B.V." },  	{ 204, 14, "6GMOBILE B.V.", "6GMOBILE B.V." }, -	{ 204, 15, "Ziggo B.V.", "Ziggo B.V." }, +	{ 204, 15, "Ziggo", "Ziggo" },  	{ 204, 16, "T-Mobile (BEN)", "T-Mobile (BEN)" },  	{ 204, 17, "Intercity Zakelijk", "Intercity Zakelijk" },  	{ 204, 18, "UPC Nederland B.V.", "UPC Nederland B.V." }, @@ -1509,17 +1658,23 @@ struct plmn_list_entry plmn_list[] = {  	{ 204, 26, "SpeakUp B.V.", "SpeakUp B.V." },  	{ 204, 27, "Breezz Nederland B.V.", "Breezz Nederland B.V." },  	{ 204, 28, "Lancelot B.V.", "Lancelot B.V." }, +	{ 204, 60, "Nextgen Mobile Ltd", "Nextgen Mobile Ltd" }, +	{ 204, 61, "BodyTrace Netherlands B.V.", "BodyTrace Netherlands B.V." }, +	{ 204, 62, "Voxbone", "Voxbone" }, +	{ 204, 64, "Zetacom B.V.", "Zetacom B.V." }, +	{ 204, 65, "AGMS Netherlands B.V.", "AGMS Netherlands B.V." }, +	{ 204, 66, "Utility Connect B.V.", "Utility Connect B.V." },  	{ 204, 67, "RadioAccess B.V.", "RadioAccess B.V." }, -	{ 204, 68, "Unify Group Holding B.V.", "Unify Group Holding B.V." }, +	{ 204, 68, "Roamware (Netherlands) B.V.", "Roamware (Netherlands) B.V." },  	{ 204, 69, "KPN Mobile The Netherlands B.V.", "KPN Mobile The Netherlands B.V." }, -	// Netherlands Antilles (Kingdom of the Netherlands) - AN +	// Former Netherlands Antilles (Kingdom of the Netherlands) - AN  	{ 362, 51, "Telcell", "Telcell" },  	{ 362, 69, "Digicel", "Digicel" },  	{ 362, 91, "UTS", "UTS" }, -	{ 362, 95, "MIO", "MIO" },  	{ 362, 94, "Bayòs", "Bayòs" }, +	{ 362, 95, "MIO", "MIO" },  	// New Caledonia (France) - NC @@ -1532,8 +1687,8 @@ struct plmn_list_entry plmn_list[] = {  	{ 530, 3, "Woosh", "Woosh" },  	{ 530, 4, "TelstraClear", "TelstraClear" },  	{ 530, 5, "XT Mobile Network", "XT Mobile Network" }, -	{ 530, 24, "2degrees", "2degrees" },  	{ 530, 6, "Skinny", "Skinny" }, +	{ 530, 24, "2degrees", "2degrees" },  	// Nicaragua - NI @@ -1577,10 +1732,14 @@ struct plmn_list_entry plmn_list[] = {  	{ 242, 5, "Network Norway", "Network Norway" },  	{ 242, 6, "Ice", "Ice" },  	{ 242, 7, "Ventelo", "Ventelo" }, -	{ 242, 8, "TDC ", "TDC " }, +	{ 242, 8, "TDC", "TDC" },  	{ 242, 9, "Com4", "Com4" },  	{ 242, 11, "SystemNet", "SystemNet" }, +	{ 242, 12, "Telenor", "Telenor" },  	{ 242, 20, "Jernbaneverket AS", "Jernbaneverket AS" }, +	{ 242, 21, "Jernbaneverket AS", "Jernbaneverket AS" }, +	{ 242, 23, "Lyca", "Lyca" }, +	{ 242, 24, "Mobile Norway AS", "Mobile Norway AS" },  	// Oman - OM @@ -1592,15 +1751,16 @@ struct plmn_list_entry plmn_list[] = {  	{ 410, 1, "Mobilink", "Mobilink" },  	{ 410, 3, "Ufone", "Ufone" },  	{ 410, 4, "Zong", "Zong" }, +	{ 410, 5, "SCO Mobile", "SCO Mobile" },  	{ 410, 6, "Telenor", "Telenor" }, -	{ 410, 7, "Warid", "Warid" }, +	{ 410, 7, "Warid Pakistan", "Warid Pakistan" },  	// Palau - PW  	{ 552, 1, "PNCC", "PNCC" },  	{ 552, 80, "Palau Mobile", "Palau Mobile" }, -	// State of Palestine - PS +	// Palestine, State of - PS  	{ 425, 5, "Jawwal", "Jawwal" },  	{ 425, 6, "Wataniya", "Wataniya" }, @@ -1609,12 +1769,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 714, 1, "Cable & Wireless", "Cable & Wireless" },  	{ 714, 2, "movistar", "movistar" }, -	{ 714, 4, "Digicel", "Digicel" },  	{ 714, 3, "Claro", "Claro" }, +	{ 714, 4, "Digicel", "Digicel" },  	// Papua New Guinea - PG -	{ 537, 1, "BeMobile", "BeMobile" }, +	{ 537, 1, "bmobile", "bmobile" },  	{ 537, 3, "Digicel", "Digicel" },  	// Paraguay - PY @@ -1629,7 +1789,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 716, 6, "Movistar", "Movistar" },  	{ 716, 7, "NEXTEL", "NEXTEL" }, -	{ 716, 10, "Claro(TIM)", "Claro(TIM)" }, +	{ 716, 10, "Claro (TIM)", "Claro (TIM)" },  	{ 716, 15, "Viettel Mobile", "Viettel Mobile" },  	{ 716, 17, "NEXTEL", "NEXTEL" }, @@ -1641,6 +1801,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 515, 5, "Sun", "Sun" },  	{ 515, 11, "PLDT via ACeS Philippines", "PLDT via ACeS Philippines" },  	{ 515, 18, "Cure", "Cure" }, +	{ 515, 24, "ABS-CBN", "ABS-CBN" },  	{ 515, 88, "Nextel", "Nextel" },  	// Pitcairn Islands (United Kingdom) - PN @@ -1665,6 +1826,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 260, 15, "CenterNet", "CenterNet" },  	{ 260, 16, "Mobyland", "Mobyland" },  	{ 260, 17, "Aero2", "Aero2" }, +	{ 260, 32, "Voxbone", "Voxbone" },  	{ 260, 34, "T-Mobile Polska S.A.", "T-Mobile Polska S.A." },  	{ 260, 98, "P4 Sp. z o.o.", "P4 Sp. z o.o." }, @@ -1672,24 +1834,26 @@ struct plmn_list_entry plmn_list[] = {  	{ 268, 1, "Vodafone", "Vodafone" },  	{ 268, 3, "Optimus", "Optimus" }, -	{ 268, 7, "Vectonemobile - Delightmobile", "Vectonemobile - Delightmobile" },  	{ 268, 4, "LycaMobile", "LycaMobile" },  	{ 268, 6, "TMN", "TMN" }, +	{ 268, 7, "Vectonemobile - Delightmobile", "Vectonemobile - Delightmobile" },  	{ 268, 21, "Zapp", "Zapp" },  	// Puerto Rico - PR -	{ 330, 110, "Claro", "Claro" }, -	{ 330, 120, "Open Mobile", "Open Mobile" }, +	{ 330, 110, "Claro Puerto Rico", "Claro Puerto Rico" }, +	{ 330, 120, "tmobile", "tmobile" },  	// Qatar - QA  	{ 427, 1, "ooredoo", "ooredoo" },  	{ 427, 2, "Vodafone", "Vodafone" },  	{ 427, 5, "Ministry of Interior", "Ministry of Interior" }, +	{ 427, 6, "Ministry of Interior", "Ministry of Interior" },  	// Réunion (France) - RE +	{ 647, 1, "BJT Partners", "BJT Partners" },  	{ 647, 2, "Outremer", "Outremer" },  	{ 647, 10, "SFR Reunion", "SFR Reunion" }, @@ -1702,6 +1866,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 226, 5, "Digi.Mobil", "Digi.Mobil" },  	{ 226, 6, "Cosmote/Zapp", "Cosmote/Zapp" },  	{ 226, 10, "Orange", "Orange" }, +	{ 226, 15, "Idilis", "Idilis" },  	// Russian Federation - RU @@ -1718,9 +1883,11 @@ struct plmn_list_entry plmn_list[] = {  	{ 250, 12, "Baykalwestcom", "Baykalwestcom" },  	{ 250, 12, "Akos", "Akos" },  	{ 250, 13, "KUGSM", "KUGSM" }, +	{ 250, 14, "MegaFon", "MegaFon" },  	{ 250, 15, "SMARTS", "SMARTS" },  	{ 250, 16, "NTC", "NTC" },  	{ 250, 17, "Utel", "Utel" }, +	{ 250, 18, "Osnova Telecom", "Osnova Telecom" },  	{ 250, 19, "INDIGO", "INDIGO" },  	{ 250, 20, "Tele2", "Tele2" },  	{ 250, 23, "Mobicom - Novosibirsk", "Mobicom - Novosibirsk" }, @@ -1741,6 +1908,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 635, 12, "Rwandatel", "Rwandatel" },  	{ 635, 13, "Tigo", "Tigo" },  	{ 635, 14, "Airtel", "Airtel" }, +	{ 635, 17, "Olleh Rwanda Networks", "Olleh Rwanda Networks" },  	// Saint Kitts and Nevis - KN @@ -1750,7 +1918,7 @@ struct plmn_list_entry plmn_list[] = {  	// Saint Lucia - LC -	{ 358, 358, "| 358  || 050 ||Unknown", "| 358  || 050 ||Unknown" }, +	{ 358, 50, "Digicel", "Digicel" },  	{ 358, 110, "Cable &  Wireless", "Cable &  Wireless" },  	// Saint Pierre and Miquelon (France) - PM @@ -1789,6 +1957,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 608, 1, "Orange", "Orange" },  	{ 608, 2, "Tigo", "Tigo" },  	{ 608, 3, "Expresso", "Expresso" }, +	{ 608, 4, "CSU-SA", "CSU-SA" },  	// Serbia - RS @@ -1806,10 +1975,10 @@ struct plmn_list_entry plmn_list[] = {  	// Sierra Leone - SL  	{ 619, 1, "Airtel", "Airtel" }, -	{ 619, 2, "Tigo", "Tigo" },  	{ 619, 3, "Africell", "Africell" },  	{ 619, 4, "Comium", "Comium" },  	{ 619, 5, "Africell", "Africell" }, +	{ 619, 6, "SierraTel", "SierraTel" },  	{ 619, 25, "Mobitel", "Mobitel" },  	// Singapore - SG @@ -1825,16 +1994,18 @@ struct plmn_list_entry plmn_list[] = {  	// Slovakia - SK  	{ 231, 1, "Orange", "Orange" }, -	{ 231, 2, "T-Mobile", "T-Mobile" }, +	{ 231, 2, "Telekom", "Telekom" },  	{ 231, 3, "Unient Communications", "Unient Communications" },  	{ 231, 4, "T-Mobile", "T-Mobile" }, -	{ 231, 6, "O2 ", "O2 " }, +	{ 231, 6, "O2", "O2" },  	{ 231, 99, "ŽSR", "ŽSR" },  	// Slovenia - SI +	{ 293, 31, "Mobitel", "Mobitel" },  	{ 293, 40, "Si.mobil", "Si.mobil" },  	{ 293, 41, "Mobitel", "Mobitel" }, +	{ 293, 51, "Mobitel", "Mobitel" },  	{ 293, 64, "T-2", "T-2" },  	{ 293, 70, "Tušmobil", "Tušmobil" }, @@ -1845,11 +2016,11 @@ struct plmn_list_entry plmn_list[] = {  	// Somalia - SO -	{ 637, 4, "SomaCyber", "SomaCyber" },  	{ 637, 1, "Telesom", "Telesom" }, +	{ 637, 4, "SomaCyber", "SomaCyber" },  	{ 637, 4, "Somafone", "Somafone" },  	{ 637, 10, "Nationlink", "Nationlink" }, -	{ 637, 25, "Hormuud", "Hormuud" }, +	{ 637, 50, "Hormuud", "Hormuud" },  	{ 637, 30, "Golis", "Golis" },  	{ 637, 57, "Unittel", "Unittel" },  	{ 637, 60, "Nationlink Telecom", "Nationlink Telecom" }, @@ -1865,12 +2036,15 @@ struct plmn_list_entry plmn_list[] = {  	{ 655, 10, "MTN", "MTN" },  	{ 655, 11, "South African Police Service Gauteng", "South African Police Service Gauteng" },  	{ 655, 13, "Neotel", "Neotel" }, +	{ 655, 14, "Neotel", "Neotel" },  	{ 655, 19, "iBurst", "iBurst" },  	{ 655, 21, "Cape Town Metropolitan Council", "Cape Town Metropolitan Council" },  	{ 655, 30, "Bokamoso Consortium", "Bokamoso Consortium" },  	{ 655, 31, "Karabo Telecoms (Pty) Ltd.", "Karabo Telecoms (Pty) Ltd." },  	{ 655, 32, "Ilizwi Telecommunications", "Ilizwi Telecommunications" },  	{ 655, 33, "Thinta Thinta Telecommunications", "Thinta Thinta Telecommunications" }, +	{ 655, 50, "Ericsson South Africa (Pty) Ltd", "Ericsson South Africa (Pty) Ltd" }, +	{ 655, 51, "Integrat (Pty) Ltd", "Integrat (Pty) Ltd" },  	// South Sudan - SS @@ -1900,7 +2074,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 214, 22, "DigiMobil", "DigiMobil" },  	{ 214, 23, "Barablu", "Barablu" },  	{ 214, 24, "Eroski", "Eroski" }, -	{ 214, 25, "LycaMobile", "LycaMobile" }, +	{ 214, 25, "Lycamobile", "Lycamobile" }, +	{ 214, 28, "Consorcio de Telecomunicaciones Avanzadas, S.A.", "Consorcio de Telecomunicaciones Avanzadas, S.A." }, +	{ 214, 29, "NEO-SKY 2002, S.A.", "NEO-SKY 2002, S.A." }, +	{ 214, 30, "Compatel Limited", "Compatel Limited" }, +	{ 214, 31, "Red Digital De Telecomunicaciones de las Islas Baleares, S.L.", "Red Digital De Telecomunicaciones de las Islas Baleares, S.L." }, +	{ 214, 32, "Tuenti", "Tuenti" },  	// Sri Lanka - LK @@ -1914,6 +2093,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 634, 1, "Zain SD", "Zain SD" },  	{ 634, 2, "MTN", "MTN" }, +	{ 634, 5, "Canar Telecom", "Canar Telecom" },  	{ 634, 7, "Sudani One", "Sudani One" },  	{ 634, 9, "Privet Network", "Privet Network" }, @@ -1931,7 +2111,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 240, 1, "Telia", "Telia" },  	{ 240, 2, "3", "3" }, -	{ 240, 3, "Ice.net", "Ice.net" }, +	{ 240, 3, "Net 1", "Net 1" },  	{ 240, 4, "SWEDEN", "SWEDEN" },  	{ 240, 5, "Sweden 3G", "Sweden 3G" },  	{ 240, 6, "Telenor", "Telenor" }, @@ -1939,20 +2119,40 @@ struct plmn_list_entry plmn_list[] = {  	{ 240, 8, "Telenor", "Telenor" },  	{ 240, 9, "djuice", "djuice" },  	{ 240, 10, "Spring Mobil", "Spring Mobil" }, -	{ 240, 11, "Lindholmen Science Park", "Lindholmen Science Park" }, -	{ 240, 12, "Lycamobile Sweden ", "Lycamobile Sweden " }, -	{ 240, 13, "Ventelo Sverige", "Ventelo Sverige" }, -	{ 240, 14, "TDC Mobil", "TDC Mobil" }, -	{ 240, 15, "Wireless Maingate Nordic", "Wireless Maingate Nordic" }, -	{ 240, 16, "42IT", "42IT" }, -	{ 240, 17, "Götalandsnätet", "Götalandsnätet" }, -	{ 240, 20, "Wireless Maingate Message Services", "Wireless Maingate Message Services" }, +	{ 240, 11, "Lindholmen Science Park AB", "Lindholmen Science Park AB" }, +	{ 240, 12, "Lycamobile", "Lycamobile" }, +	{ 240, 13, "Alltele Företag Sverige AB", "Alltele Företag Sverige AB" }, +	{ 240, 14, "TDC Sverige AB", "TDC Sverige AB" }, +	{ 240, 15, "Wireless Maingate Nordic AB", "Wireless Maingate Nordic AB" }, +	{ 240, 16, "42 Telecom AB", "42 Telecom AB" }, +	{ 240, 17, "Götalandsnätet AB", "Götalandsnätet AB" }, +	{ 240, 18, "Generic Mobile Systems Sweden AB", "Generic Mobile Systems Sweden AB" }, +	{ 240, 19, "Vectone Mobile / Delight Mobile", "Vectone Mobile / Delight Mobile" }, +	{ 240, 20, "Wireless Maingate Messaging Services AB", "Wireless Maingate Messaging Services AB" },  	{ 240, 21, "MobiSir", "MobiSir" }, +	{ 240, 22, "EuTel AB", "EuTel AB" }, +	{ 240, 23, "Infobip Limited", "Infobip Limited" },  	{ 240, 24, "Sweden 2G", "Sweden 2G" }, -	{ 240, 25, "DigiTelMobile", "DigiTelMobile" }, -	{ 240, 26, "Beepsend", "Beepsend" }, +	{ 240, 25, "Digitel Mobile Srl", "Digitel Mobile Srl" }, +	{ 240, 26, "Beepsend AB", "Beepsend AB" }, +	{ 240, 27, "Fogg Mobile AB", "Fogg Mobile AB" }, +	{ 240, 28, "CoolTEL Aps", "CoolTEL Aps" }, +	{ 240, 29, "Mercury International Carrier Services", "Mercury International Carrier Services" }, +	{ 240, 30, "NextGen Mobile Ltd.", "NextGen Mobile Ltd." }, +	{ 240, 31, "Mobimax AB", "Mobimax AB" }, +	{ 240, 32, "Compatel Limited", "Compatel Limited" },  	{ 240, 33, "Mobile Arts AB", "Mobile Arts AB" }, -	{ 240, 41, "Shyam Telecom UK Ltd", "Shyam Telecom UK Ltd" }, +	{ 240, 34, "Pro Net Telecommunications Services Ltd.", "Pro Net Telecommunications Services Ltd." }, +	{ 240, 35, "42 Telecom LTD", "42 Telecom LTD" }, +	{ 240, 36, "interactive digital media GmbH", "interactive digital media GmbH" }, +	{ 240, 37, "CLX Networks AB", "CLX Networks AB" }, +	{ 240, 38, "Voxbone", "Voxbone" }, +	{ 240, 39, "iCentrex Sweden AB", "iCentrex Sweden AB" }, +	{ 240, 40, "ReWiCom Scandinavia AB", "ReWiCom Scandinavia AB" }, +	{ 240, 41, "Shyam Telecom UK Ltd.", "Shyam Telecom UK Ltd." }, +	{ 240, 42, "Telenor Connexion AB", "Telenor Connexion AB" }, +	{ 240, 43, "MobiWeb Ltd.", "MobiWeb Ltd." }, +	{ 240, 44, "Limitless Mobile AB", "Limitless Mobile AB" },  	// Switzerland - CH @@ -1970,6 +2170,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 228, 52, "Barablu", "Barablu" },  	{ 228, 53, "UPC", "UPC" },  	{ 228, 54, "Lyca Mobile", "Lyca Mobile" }, +	{ 228, 99, "Swisscom", "Swisscom" },  	// Syria - SY @@ -1980,9 +2181,9 @@ struct plmn_list_entry plmn_list[] = {  	{ 466, 1, "FarEasTone", "FarEasTone" },  	{ 466, 5, "APTG", "APTG" }, -	{ 466, 6, "Tuntex", "Tuntex" }, +	{ 466, 6, "FarEasTone", "FarEasTone" },  	{ 466, 11, "Chunghwa LDM", "Chunghwa LDM" }, -	{ 466, 88, "KG Telecom", "KG Telecom" }, +	{ 466, 88, "FarEasTone", "FarEasTone" },  	{ 466, 89, "VIBO", "VIBO" },  	{ 466, 92, "Chungwa", "Chungwa" },  	{ 466, 93, "MobiTai", "MobiTai" }, @@ -1993,9 +2194,9 @@ struct plmn_list_entry plmn_list[] = {  	{ 436, 1, "Tcell", "Tcell" },  	{ 436, 2, "Tcell", "Tcell" }, -	{ 436, 3, "Megafon", "Megafon" }, +	{ 436, 3, "Megafon Tajikistan", "Megafon Tajikistan" },  	{ 436, 4, "Babilon-M", "Babilon-M" }, -	{ 436, 5, "Tacom", "Tacom" }, +	{ 436, 5, "Beeline", "Beeline" },  	{ 436, 12, "Tcell", "Tcell" },  	// Tanzania - TZ @@ -2012,17 +2213,18 @@ struct plmn_list_entry plmn_list[] = {  	// Thailand - TH -	{ 520, 1, "AIS ", "AIS " }, +	{ 520, 1, "AIS", "AIS" },  	{ 520, 2, "CAT CDMA", "CAT CDMA" },  	{ 520, 3, "AIS 3G", "AIS 3G" }, -	{ 520, 4, "True Move H 4G LTE", "True Move H 4G LTE" }, -	{ 520, 5, "dtac 3G", "dtac 3G" }, +	{ 520, 4, "truemove H 4G LTE", "truemove H 4G LTE" }, +	{ 520, 5, "dtac TriNet", "dtac TriNet" },  	{ 520, 10, "?", "?" },  	{ 520, 15, "TOT 3G", "TOT 3G" },  	{ 520, 18, "dtac", "dtac" },  	{ 520, 23, "AIS GSM 1800", "AIS GSM 1800" }, -	{ 520, 99, "True Move", "True Move" },  	{ 520, 25, "WE PCT", "WE PCT" }, +	{ 520, 47, "Telephone Organization of Thailand (TOT)", "Telephone Organization of Thailand (TOT)" }, +	{ 520, 99, "truemove", "truemove" },  	// Togo - TG @@ -2055,7 +2257,7 @@ struct plmn_list_entry plmn_list[] = {  	// Turkmenistan - TM -	{ 438, 1, "MTS (BARASH Communication) ", "MTS (BARASH Communication) " }, +	{ 438, 1, "MTS (BARASH Communication)", "MTS (BARASH Communication)" },  	{ 438, 2, "TM-Cell", "TM-Cell" },  	// Turks and Caicos Islands - TC @@ -2072,9 +2274,12 @@ struct plmn_list_entry plmn_list[] = {  	{ 641, 1, "Airtel", "Airtel" },  	{ 641, 10, "MTN", "MTN" }, -	{ 641, 11, "UTL", "UTL" }, +	{ 641, 11, "UTL ( Telecom Limited)", "UTL ( Telecom Limited)" },  	{ 641, 14, "Orange", "Orange" },  	{ 641, 22, "Warid Telecom", "Warid Telecom" }, +	{ 641, 33, "Smile", "Smile" }, +	{ 641, 44, "K2", "K2" }, +	{ 641, 66, "i-Tel", "i-Tel" },  	// Ukraine - UA @@ -2111,31 +2316,41 @@ struct plmn_list_entry plmn_list[] = {  	{ 234, 13, "Railtrack", "Railtrack" },  	{ 234, 14, "Hay Systems Ltd", "Hay Systems Ltd" },  	{ 234, 15, "Vodafone UK", "Vodafone UK" }, -	{ 234, 16, "Talk Talk (Opal Tel Ltd)", "Talk Talk (Opal Tel Ltd)" }, +	{ 234, 16, "Talk Talk", "Talk Talk" },  	{ 234, 17, "FleXtel Limited", "FleXtel Limited" },  	{ 234, 18, "Cloud9", "Cloud9" },  	{ 234, 19, "Private Mobile Networks PMN", "Private Mobile Networks PMN" },  	{ 234, 20, "3", "3" },  	{ 234, 22, "RoutoMessaging", "RoutoMessaging" }, +	{ 234, 23, "Icron Network Limited", "Icron Network Limited" },  	{ 234, 24, "Greenfone", "Greenfone" },  	{ 234, 25, "Truphone", "Truphone" }, -	{ 234, 27, "United Kingdom of Great Britain and Northern Ireland", "United Kingdom of Great Britain and Northern Ireland" }, -	{ 234, 30, "T-Mobile (UK)", "T-Mobile (UK)" }, +	{ 234, 26, "Lycamobile", "Lycamobile" }, +	{ 234, 27, "Teleena UK Limited", "Teleena UK Limited" }, +	{ 234, 28, "Marathon Telecom Ltd", "Marathon Telecom Ltd" }, +	{ 234, 29, "aql", "aql" }, +	{ 234, 30, "T-Mobile UK", "T-Mobile UK" },  	{ 234, 31, "Virgin Mobile UK", "Virgin Mobile UK" },  	{ 234, 32, "Virgin Mobile UK", "Virgin Mobile UK" },  	{ 234, 33, "Orange (UK)", "Orange (UK)" },  	{ 234, 34, "Orange (UK)", "Orange (UK)" },  	{ 234, 35, "JSC Ingenium (UK) Limited", "JSC Ingenium (UK) Limited" }, -	{ 234, 36, "Cable and Wireless Isle of Man Limited", "Cable and Wireless Isle of Man Limited" }, +	{ 234, 36, "Sure (Isle of Man) Limited", "Sure (Isle of Man) Limited" },  	{ 234, 37, "Synectiv Ltd", "Synectiv Ltd" }, +	{ 234, 38, "Virgin Mobile UK", "Virgin Mobile UK" }, +	{ 234, 39, "SSE Energy Supply Limited", "SSE Energy Supply Limited" },  	{ 234, 50, "JT", "JT" }, -	{ 234, 51, "UK Broadband Limited", "UK Broadband Limited" }, +	{ 234, 51, "UK Broadband", "UK Broadband" }, +	{ 234, 52, "Shyam Telecom UK Ltd", "Shyam Telecom UK Ltd" }, +	{ 234, 53, "Limitless Mobile Ltd", "Limitless Mobile Ltd" },  	{ 234, 55, "Cable & Wireless Guernsey / Sure Mobile (Jersey)", "Cable & Wireless Guernsey / Sure Mobile (Jersey)" },  	{ 234, 58, "Manx Telecom", "Manx Telecom" },  	{ 234, 76, "BT", "BT" },  	{ 234, 78, "Airwave", "Airwave" }, +	{ 234, 86, "EE", "EE" },  	{ 235, 1, "EE", "EE" },  	{ 235, 2, "EE", "EE" }, +	{ 235, 3, "UK Broadband", "UK Broadband" },  	{ 235, 77, "BT", "BT" },  	{ 235, 91, "Vodafone United Kingdom", "Vodafone United Kingdom" },  	{ 235, 92, "Cable & Wireless UK", "Cable & Wireless UK" }, @@ -2144,13 +2359,9 @@ struct plmn_list_entry plmn_list[] = {  	// United States of America - US -	{ 310, 53, "Virgin Mobile US", "Virgin Mobile US" }, -	{ 310, 54, "Alltel US", "Alltel US" }, -	{ 310, 66, "U.S. Cellular", "U.S. Cellular" },  	{ 310, 4, "Verizon", "Verizon" },  	{ 310, 5, "Verizon", "Verizon" },  	{ 310, 10, "MCI", "MCI" }, -	{ 310, 12, "Verizon", "Verizon" },  	{ 310, 13, "MobileTel", "MobileTel" },  	{ 310, 14, "Testing", "Testing" },  	{ 310, 16, "Cricket Communications", "Cricket Communications" }, @@ -2161,11 +2372,14 @@ struct plmn_list_entry plmn_list[] = {  	{ 310, 34, "Airpeak", "Airpeak" },  	{ 310, 40, "Concho", "Concho" },  	{ 310, 46, "SIMMETRY", "SIMMETRY" }, +	{ 310, 53, "Virgin Mobile US", "Virgin Mobile US" }, +	{ 310, 54, "Alltel US", "Alltel US" },  	{ 310, 60, "Consolidated Telcom", "Consolidated Telcom" }, +	{ 310, 66, "U.S. Cellular", "U.S. Cellular" },  	{ 310, 70, "Highland Cellular", "Highland Cellular" },  	{ 310, 80, "Corr", "Corr" },  	{ 310, 90, "Cricket Communications", "Cricket Communications" }, -	{ 310, 100, "Plateau Wireless ", "Plateau Wireless " }, +	{ 310, 100, "Plateau Wireless", "Plateau Wireless" },  	{ 310, 110, "PTI Pacifica", "PTI Pacifica" },  	{ 310, 120, "Sprint", "Sprint" },  	{ 310, 150, "AT&T", "AT&T" }, @@ -2243,6 +2457,7 @@ struct plmn_list_entry plmn_list[] = {  	{ 310, 980, "AT&T", "AT&T" },  	{ 310, 990, "AT&T", "AT&T" },  	{ 311, 10, "Chariton Valley", "Chariton Valley" }, +	{ 311, 12, "Verizon", "Verizon" },  	{ 311, 20, "Missouri RSA 5 Partnership", "Missouri RSA 5 Partnership" },  	{ 311, 30, "Indigo Wireless", "Indigo Wireless" },  	{ 311, 40, "Commnet Wireless", "Commnet Wireless" }, @@ -2267,9 +2482,13 @@ struct plmn_list_entry plmn_list[] = {  	{ 311, 330, "Bug Tussel Wireless", "Bug Tussel Wireless" },  	{ 311, 480, "Verizon", "Verizon" },  	{ 311, 481, "Verizon", "Verizon" }, -	{ 311, 660, "metroPCS ", "metroPCS " }, +	{ 311, 490, "Sprint Corporation", "Sprint Corporation" }, +	{ 311, 580, "U.S. Cellular", "U.S. Cellular" }, +	{ 311, 660, "metroPCS", "metroPCS" }, +	{ 311, 870, "Boost", "Boost" },  	{ 311, 960, "Lycamobile", "Lycamobile" },  	{ 311, 970, "Big River Broadband", "Big River Broadband" }, +	{ 312, 590, "NMU", "NMU" },  	{ 313, 100, "700 MHz Public Safety Broadband", "700 MHz Public Safety Broadband" },  	{ 313, 101, "700 MHz Public Safety Broadband", "700 MHz Public Safety Broadband" },  	{ 316, 10, "Nextel", "Nextel" }, @@ -2289,18 +2508,20 @@ struct plmn_list_entry plmn_list[] = {  	{ 434, 5, "Ucell", "Ucell" },  	{ 434, 6, "Perfectum Mobile", "Perfectum Mobile" },  	{ 434, 7, "MTS", "MTS" }, +	{ 434, 3, "UzMobile", "UzMobile" },  	// Vanuatu - VU  	{ 541, 1, "SMILE", "SMILE" },  	{ 541, 5, "Digicel", "Digicel" }, +	{ 541, 7, "WanTok", "WanTok" },  	// Vatican - VA  	// Venezuela - VE -	{ 734, 1, "Digitel ", "Digitel " }, +	{ 734, 1, "Digitel", "Digitel" },  	{ 734, 2, "Digitel GSM", "Digitel GSM" },  	{ 734, 3, "Digitel", "Digitel" },  	{ 734, 4, "movistar", "movistar" }, @@ -2308,14 +2529,14 @@ struct plmn_list_entry plmn_list[] = {  	// Vietnam - VN -	{ 452, 1, "MobiFone ", "MobiFone " }, +	{ 452, 1, "MobiFone", "MobiFone" },  	{ 452, 2, "Vinaphone", "Vinaphone" },  	{ 452, 3, "S-Fone", "S-Fone" },  	{ 452, 4, "Viettel Mobile", "Viettel Mobile" },  	{ 452, 5, "Vietnamobile (HT Mobile )", "Vietnamobile (HT Mobile )" },  	{ 452, 6, "EVNTelecom", "EVNTelecom" }, -	{ 452, 8, "3G EVNTelecom", "3G EVNTelecom" },  	{ 452, 7, "G-Mobile", "G-Mobile" }, +	{ 452, 8, "3G EVNTelecom", "3G EVNTelecom" },  	// Yemen - YE @@ -2371,7 +2592,11 @@ struct plmn_list_entry plmn_list[] = {  	{ 901, 34, "tyntec GmbH", "tyntec GmbH" },  	{ 901, 35, "Globecomm Network Services", "Globecomm Network Services" },  	{ 901, 36, "Azerfon", "Azerfon" }, +	{ 901, 39, "MTX Connect Ltd", "MTX Connect Ltd" },  	{ 901, 88, "UN Office for the Coordination of Humanitarian Affairs (OCHA)", "UN Office for the Coordination of Humanitarian Affairs (OCHA)" },  }; +unsigned int plmn_list_count = sizeof(plmn_list) / +	sizeof(struct plmn_list_entry); +  #endif diff --git a/include/plmn_list.sh b/include/plmn_list.sh index 26e9616..0a17068 100755 --- a/include/plmn_list.sh +++ b/include/plmn_list.sh @@ -1,22 +1,26 @@  #!/bin/sh  # -# Copyright 2012 Paul Kocialkowski, GPLv3+ +# Copyright 2012-2014 Paul Kocialkowski, GPLv3+  #  # This script is a dirty hack, keep in mind that is was written in a hurry -# and doesn't reflect our code cleanness standards.  +# and doesn't reflect our code cleanness standards.  # Any (working) replacement written in a cleaner way, such as a perl script  # would be greatly appreciated. -echo "/**" -echo " * This list was generated from http://en.wikipedia.org/wiki/Mobile_Network_Code" -echo " * " +echo "/*" +echo " * This list was generated from:" +echo " * http://en.wikipedia.org/wiki/Mobile_country_code" +echo " *"  echo " * Date: "$( date "+%x %X" ) -echo " * Copyright: Wikipedia Contributors, Creative Commons Attribution-ShareAlike License" +echo " * Copyright: Wikipedia Contributors, Creative Commons" +echo " * Attribution-ShareAlike License"  echo " */"  echo ""  echo "#ifndef _PLMN_LIST_H_"  echo "#define _PLMN_LIST_H_"  echo "" +echo "#include <stdlib.h>" +echo ""  echo "struct plmn_list_entry {"  echo "	unsigned int mcc;"  echo "	unsigned int mnc;" @@ -26,7 +30,7 @@ echo "};"  echo ""  echo "struct plmn_list_entry plmn_list[] = {" -wget "http://en.wikipedia.org/w/index.php?title=Special:Export&pages=Mobile_country_code&action=submit" --quiet -O - | tr -d '\n' | sed -e "s|.*<text[^>]*>\(.*\)</text>.*|\1|g" -e "s/|-/\n|-\n/g" | sed -e "s/\(}===.*\)/\n\1/g" -e "s/===={.*/===={\n/g" -e "s/\&/\&/g" -e "s/\<[^\&]*\>//g" -e "s/"//g" -e "s#\[http[^]]*\]##g" -e "s#\[\[\([^]|]*\)|\([^]]*\)\]\]#\2#g" -e "s#\[\[\([^]]*\)\]\]#\1#g" -e "s#\[\([^] ]*\) \([^]]*\)\]#\2#g" | tail -n +2 | sed "s|.*=== \(.*\) ===.*|// \1|g" | grep -v "|-" | while read line +wget "http://en.wikipedia.org/w/index.php?title=Special:Export&pages=Mobile_country_code&action=submit" --quiet -O - | tr -d '\n' | sed -e "s|.*<text[^>]*>\(.*\)</text>.*|\1|g" -e "s/|-/\n|-\n/g" | sed -e "s/\(}===.*\)/\n\1/g" -e "s/===={.*/===={\n/g" -e "s/\&/\&/g" -e "s/\<[^\&]*\>//g" -e "s/"//g" -e "s#\[http[^]]*\]##g" -e "s#\[\[\([^]|]*\)|\([^]]*\)\]\]#\2#g" -e "s#\[\[\([^]]*\)\]\]#\1#g" -e "s#\[\([^] ]*\) \([^]]*\)\]#\2#g" -e "s#{{[^}]*}}##g" | tail -n +2 | sed "s|.*==== *\([^=]*\) *====.*|// \1|g" | grep -v "|-" | while read line  do  	if [ "$line" = "" ]  	then @@ -37,7 +41,7 @@ do  	if [ ! "$test" = "" ]  	then -		echo "\n\t$line\n" | sed -e "s#[^|]*|\(.*\)#// \1#g" -e "s/^ //g" -e "s/ $//g" +		echo "\n\t$line\n" | sed -e "s#[^|]*|\(.*\)#// \1#g" -e "s/^ //g" -e "s/ $//g" -e "s/  / /g"  		continue  	fi @@ -48,10 +52,10 @@ do  		continue  	fi -	mcc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\1#g" -e "s/^ //g" -e "s/ $//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g") -	mnc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\2#g" -e "s/^ //g" -e "s/ $//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g") -	brand=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\3#g" -e "s/^ //g" -e "s/ $//g" ) -	operator=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\4#g" -e "s/^ //g" -e "s/ $//g" ) +	mcc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\1#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g") +	mnc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\2#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g") +	brand=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\3#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" ) +	operator=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\4#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" )  	if [ "$mcc" = "" ] || [ "$mcc" = "?" ]  	then @@ -78,4 +82,7 @@ done  echo "};"  echo "" +echo "unsigned int plmn_list_count = sizeof(plmn_list) /" +echo "\tsizeof(struct plmn_list_entry);" +echo ""  echo "#endif" diff --git a/include/ril_oem.h b/include/ril_oem.h new file mode 100644 index 0000000..c38db00 --- /dev/null +++ b/include/ril_oem.h @@ -0,0 +1,52 @@ +/* + * This file is part of Samsung-RIL. + * + * Copyright (C) 2013-2014 Paul Kocialkowski <contact@paulk.fr> + * + * Samsung-RIL is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Samsung-RIL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Samsung-RIL.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _RIL_OEM_H_ +#define _RIL_OEM_H_ + +#include <stdlib.h> + +#define RIL_OEM_HOOK_TAG_SVC					1 + +#define RIL_OEM_COMMAND_SVC_ENTER_MODE				1 +#define RIL_OEM_COMMAND_SVC_END_MODE				2 +#define RIL_OEM_COMMAND_SVC_KEY					3 + +typedef struct { +	unsigned char tag; +	unsigned char command; +	unsigned short length; +} RIL_OEMHookHeader; + +typedef struct { +	unsigned char mode; +	unsigned char type; +	unsigned char query; +} RIL_OEMHookSvcEnterMode; + +typedef struct { +	unsigned char mode; +} RIL_OEMHookSvcEndMode; + +typedef struct { +	unsigned char key; +	unsigned char query; +} RIL_OEMHookSvcKey; + +#endif diff --git a/include/samsung-ril-socket.h b/include/samsung-ril-socket.h index d231e62..9e919d1 100644 --- a/include/samsung-ril-socket.h +++ b/include/samsung-ril-socket.h @@ -1,7 +1,7 @@  /*   * This file is part of Samsung-RIL.   * - * Copyright (C) 2011-2013 Paul Kocialkowski <contact@oaulk.fr> + * Copyright (C) 2011-2014 Paul Kocialkowski <contact@paulk.fr>   *   * Samsung-RIL is free software: you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -17,40 +17,36 @@   * along with Samsung-RIL.  If not, see <http://www.gnu.org/licenses/>.   */ -/* Samsung RIL Socket protocol defines */ -  #ifndef _SAMSUNG_RIL_SOCKET_H_  #define _SAMSUNG_RIL_SOCKET_H_ -#define SRS_COMMAND(f)  ((f->group << 8) | f->index) -#define SRS_GROUP(m)    (m >> 8) -#define SRS_INDEX(m)    (m & 0xff) +#include <stdlib.h> -#define SRS_SOCKET_NAME			"samsung-ril-socket" -#define SRS_DATA_MAX_SIZE		0x1000 +/* + * Groups + */ -#define SRS_CONTROL			0x01 -#define SRS_CONTROL_PING		0x0101 +#define SRS_GROUP_CONTROL					0x01 +#define SRS_GROUP_SND						0x02 -#define SRS_SND				0x02 -#define SRS_SND_SET_CALL_VOLUME		0x0201 -#define SRS_SND_SET_CALL_AUDIO_PATH	0x0202 -#define SRS_SND_SET_CALL_CLOCK_SYNC	0x0203 +/* + * Commands + */ -#define SRS_CONTROL_CAFFE		0xCAFFE +#define SRS_CONTROL_PING					0x0101 -struct srs_header { -	unsigned int length; -	unsigned char group; -	unsigned char index; -} __attribute__((__packed__)); +#define SRS_SND_SET_CALL_VOLUME					0x0201 +#define SRS_SND_SET_CALL_AUDIO_PATH				0x0202 +#define SRS_SND_SET_CALL_CLOCK_SYNC				0x0203 -struct srs_message { -	unsigned short command; -	int length; -	void *data; -}; +/* + * Values + */ + +#define SRS_SOCKET_NAME				"samsung-ril-socket" +#define SRS_BUFFER_LENGTH					0x1000 +#define SRS_CONTROL_CAFFE					0xCAFFE  enum srs_snd_type {  	SRS_SND_TYPE_VOICE, @@ -73,21 +69,45 @@ enum srs_snd_clock {  	SND_CLOCK_START  }; -struct srs_snd_call_volume { +/* + * Macros + */ + +#define SRS_COMMAND(group, index)		((group << 8) | index) +#define SRS_GROUP(command)			(command >> 8) +#define SRS_INDEX(command)			(command & 0xff) + +/* + * Structures + */ + +struct srs_message { +	unsigned short command; +	void *data; +	size_t size; +}; + +struct srs_header { +	unsigned int length; +	unsigned char group; +	unsigned char index; +} __attribute__((__packed__)); + +struct srs_control_ping_data { +	unsigned int caffe; +} __attribute__((__packed__)); + +struct srs_snd_call_volume_data {  	enum srs_snd_type type;  	int volume;  } __attribute__((__packed__)); -struct srs_snd_call_audio_path { +struct srs_snd_call_audio_path_data {  	enum srs_snd_path path;  } __attribute__((__packed__)); -struct srs_snd_call_clock_sync { +struct srs_snd_call_clock_sync_data {  	unsigned char sync;  } __attribute__((__packed__)); -struct srs_control_ping { -	int caffe; -} __attribute__((__packed__)); -  #endif diff --git a/include/sim.h b/include/sim.h index dc16808..d3ec95c 100644 --- a/include/sim.h +++ b/include/sim.h @@ -1,7 +1,7 @@  /*   * This file is part of Samsung-RIL.   * - * Copyright (C) 2013 Paul Kocialkowski <contact@paulk.fr> + * Copyright (C) 2013-2014 Paul Kocialkowski <contact@paulk.fr>   *   * Samsung-RIL is free software: you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -20,22 +20,36 @@  #ifndef _SIM_H_  #define _SIM_H_ -// Values from TS 11.11 -#define SIM_COMMAND_READ_BINARY		0xB0 -#define SIM_COMMAND_UPDATE_BINARY	0xD6 -#define SIM_COMMAND_READ_RECORD		0xB2 -#define SIM_COMMAND_UPDATE_RECORD	0xDC -#define SIM_COMMAND_SEEK		0xA2 -#define SIM_COMMAND_GET_RESPONSE	0xC0 +#include <stdlib.h> -#define SIM_FILE_STRUCTURE_TRANSPARENT	0x00 -#define SIM_FILE_STRUCTURE_LINEAR_FIXED	0x01 -#define SIM_FILE_STRUCTURE_CYCLIC	0x03 +#define SIM_COMMAND_READ_BINARY					0xB0 +#define SIM_COMMAND_UPDATE_BINARY				0xD6 +#define SIM_COMMAND_READ_RECORD					0xB2 +#define SIM_COMMAND_UPDATE_RECORD				0xDC +#define SIM_COMMAND_SEEK					0xA2 +#define SIM_COMMAND_GET_RESPONSE				0xC0 -#define SIM_FILE_TYPE_RFU		0x00 -#define SIM_FILE_TYPE_MF		0x01 -#define SIM_FILE_TYPE_DF		0x02 -#define SIM_FILE_TYPE_EF		0x04 +#define SIM_FILE_STRUCTURE_TRANSPARENT				0x00 +#define SIM_FILE_STRUCTURE_LINEAR_FIXED				0x01 +#define SIM_FILE_STRUCTURE_CYCLIC				0x03 + +#define SIM_FILE_TYPE_RFU					0x00 +#define SIM_FILE_TYPE_MF					0x01 +#define SIM_FILE_TYPE_DF					0x02 +#define SIM_FILE_TYPE_EF					0x04 + +struct sim_file_response { +	unsigned char rfu12[2]; +	unsigned char file_size[2]; +	unsigned char file_id[2]; +	unsigned char file_type; +	unsigned char rfu3; +	unsigned char access_condition[3]; +	unsigned char file_status; +	unsigned char file_length; +	unsigned char file_structure; +	unsigned char record_length; +} __attribute__((__packed__));  struct sim_file_id {  	unsigned short file_id; @@ -85,19 +99,7 @@ struct sim_file_id sim_file_ids[] = {  	{ 0x7F20, SIM_FILE_TYPE_DF },  }; -int sim_file_ids_count = sizeof(sim_file_ids) / sizeof(sim_file_ids[0]); - -struct sim_file_response { -	unsigned char rfu12[2]; -	unsigned char file_size[2]; -	unsigned char file_id[2]; -	unsigned char file_type; -	unsigned char rfu3; -	unsigned char access_condition[3]; -	unsigned char file_status; -	unsigned char file_length; -	unsigned char file_structure; -	unsigned char record_length; -} __attribute__((__packed__)); +unsigned int sim_file_ids_count = sizeof(sim_file_ids) / +	sizeof(struct sim_file_id);  #endif  | 
