Fork of Ublox Lib

Fork of C027_Support by u-blox

Revision:
139:5df09023c4e9
Parent:
138:dafbbf31bf76
--- a/MDMAPN.h	Thu Feb 25 13:22:34 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-#pragma once 
-
-/* ----------------------------------------------------------------
-   APN stands for Access Point Name, a setting on your modem or phone
-   that identifies an external network your phone can access for data 
-   (e.g. 3G or 4G Internet service on your phone). 
-   
-   The APN settings can be forced when calling the join function.
-   Below is a list of known APNs that us used if no apn config 
-   is forced. This list could be extended by other settings.
-   
-   For further reading:
-   wiki apn: http://en.wikipedia.org/wiki/Access_Point_Name
-   wiki mcc/mnc: http://en.wikipedia.org/wiki/Mobile_country_code
-   google: https://www.google.de/search?q=APN+list   
----------------------------------------------------------------- */
-
-//! helper to generate the APN string
-#define _APN(apn,username,password) apn "\0" username "\0" password "\0"
-
-//! helper to extract a field from the config string 
-#define _APN_GET(cfg) \
-    *cfg ? cfg : ""; \
-    cfg  += strlen(cfg) + 1
-                    
-//! APN lookup struct
-typedef struct { 
-    const char* mccmnc; //!< mobile country code (MCC) and mobile network code MNC  
-    const char* cfg;    //!< APN configuartion string, use _APN macro to generate
-} APN_t;
-
-//! default APN settings used by many networks
-static const char* apndef = _APN(,,)
-                            _APN("internet",,);
-
-/*! this is a list of special APNs for different network operators 
-    There is no need to enter the default apn internet in the table; 
-    apndef will be used if no entry matches.
-    
-    The APN without username/password have to be listed first.
-*/
-static const APN_t apnlut[] = {
-// MCC Country
-//  { /* Operator */ "MCC-MNC[,MNC]" _APN(APN,USERNAME,PASSWORD) },
-// MCC must be 3 digits
-// MNC must be either 2 or 3 digits
-// MCC must be separated by '-' from MNC, multiple MNC can be separated by ','
-
-// 232 Austria - AUT
-    { /* T-Mobile */ "232-03",  _APN("m2m.business",,) },
-
-// 460 China - CN
-    { /* CN Mobile */"460-00",  _APN("cmnet",,)
-                                _APN("cmwap",,) },
-    { /* Unicom */   "460-01",  _APN("3gnet",,)
-                                _APN("uninet","uninet","uninet") },
-                                
-// 262 Germany - DE
-    { /* T-Mobile */ "262-01",  _APN("internet.t-mobile","t-mobile","tm") },
-    { /* T-Mobile */ "262-02,06", 
-                                _APN("m2m.business",,) },
-
-// 222 Italy - IT
-    { /* TIM */      "222-01",  _APN("ibox.tim.it",,) },
-    { /* Vodafone */ "222-10",  _APN("web.omnitel.it",,) },
-    { /* Wind */     "222-88",  _APN("internet.wind.biz",,) },
-
-// 440 Japan - JP
-    { /* Softbank */ "440-04,06,20,40,41,42,43,44,45,46,47,48,90,91,92,93,94,95"
-                         ",96,97,98"
-                                _APN("open.softbank.ne.jp","opensoftbank","ebMNuX1FIHg9d3DA")
-                                _APN("smile.world","dna1trop","so2t3k3m2a") },
-    { /* NTTDoCoMo */"440-09,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,"
-                         "28,29,30,31,32,33,34,35,36,37,38,39,58,59,60,61,62,63,"
-                         "64,65,66,67,68,69,87,99",
-                                _APN("bmobilewap",,) /*BMobile*/
-                                _APN("mpr2.bizho.net","Mopera U",) /* DoCoMo */
-                                _APN("bmobile.ne.jp","bmobile@wifi2","bmobile") /*BMobile*/ },
-
-// 204 Netherlands - NL
-    { /* Vodafone */ "204-04",  _APN("public4.m2minternet.com",,) },
-
-// 293 Slovenia - SI
-    { /* Si.mobil */ "293-40",  _APN("internet.simobil.si",,) },
-    { /* Tusmobil */ "293-70",  _APN("internet.tusmobil.si",,) },
-
-// 240 Sweden SE 
-    { /* Telia */    "240-01",  _APN("online.telia.se",,) },
-    { /* Telenor */  "240-06,08",
-                                _APN("services.telenor.se",,) },              
-    { /* Tele2 */    "240-07",  _APN("mobileinternet.tele2.se",,) },
-    
-// 228 Switzerland - CH
-    { /* Swisscom */ "228-01",  _APN("gprs.swisscom.ch",,) },
-    { /* Orange */   "228-03",  _APN("internet",,) /* contract */
-                                _APN("click",,)    /* pre-pay */ },
-
-// 234 United Kingdom - GB
-    { /* O2 */       "234-02,10,11",
-                                _APN("mobile.o2.co.uk","faster","web") /* contract */
-                                _APN("mobile.o2.co.uk","bypass","web") /* pre-pay */
-                                _APN("payandgo.o2.co.uk","payandgo","payandgo") },
-    { /* Vodafone */ "234-15",  _APN("internet","web","web")          /* contract */
-                                _APN("pp.vodafone.co.uk","wap","wap")  /* pre-pay */ },
-    { /* Three */    "234-20",  _APN("three.co.uk",,) },
-
-// 310 United States of America - US
-    { /* T-Mobile */ "310-026,260,490",
-                                _APN("epc.tmobile.com",,)
-                                _APN("fast.tmobile.com",,) /* LTE */ },
-    { /* AT&T */     "310-030,150,170,260,410,560,680",
-                                _APN("phone",,)
-                                _APN("wap.cingular","WAP@CINGULARGPRS.COM","CINGULAR1")
-                                _APN("isp.cingular","ISP@CINGULARGPRS.COM","CINGULAR1") },
-
-// 901 International - INT
-    { /* Transatel */ "901-37", _APN("netgprs.com","tsl","tsl") },
-};
-
-inline const char* apnconfig(const char* imsi)
-{
-    const char* config = NULL;
-    if (imsi && *imsi) {
-        // many carriers use internet without username and password, os use this as default
-        // now try to lookup the setting for our table
-        for (int i = 0; i < sizeof(apnlut)/sizeof(*apnlut) && !config; i ++) {
-            const char* p = apnlut[i].mccmnc;
-            // check the MCC
-            if ((0 == memcmp(imsi, p, 3))) {
-                p += 3;
-                // check all the MNC, MNC length can be 2 or 3 digits
-                while (((p[0] == '-') || (p[0] == ',')) && 
-                        (p[1] >= '0') && (p[1] <= '9') && 
-                        (p[2] >= '0') && (p[2] <= '9') && !config) {
-                    int l = ((p[3] >= '0') && (p[3] <= '9')) ? 3 : 2;
-                    if (0 == memcmp(imsi+3,p+1,l))
-                        config = apnlut[i].cfg;
-                    p += 1 + l;
-                } 
-            }
-        }
-    }
-    // use default if not found
-    if (!config)
-        config = apndef;
-    return config;
-}
\ No newline at end of file