MTK平台apn&spn的配置

 

APN的类型分为web(internet),wap,mms三种类型,用于手机中上网时数据交换的接入点名称配置与显示。

APN配置的时候,出现的type的值主要有:default,mms,supl,dun。Default常用于一般的数据业务,主要有internet,wap,web;mms类型用于彩信接收发送的业务;supl用于gprs上网;dun用于wifi等上网类型。

配置时注意事项:

1. 在合入完成之后注意检查authtype=” ”。authtype=“” 这种字串是不允许在apns-conf.xml 文件中出现的,会导致所有项目apn读取失败。

2. Type=””这个也不能为空,需求有时会省略它的配置,apn的Type=””值主要分为default,dun,mms,supl等,在不确定的情况下,与需求工程师沟通清楚再合入。

3. 注释的错误,在xml文件中,注释的格式为如 ,注意后面的必须是-->,否则会有编译不过的错误。

4. mcc和mnc一般合起来为五位也有可能是6位,其中mnc的位数为2,如果出现个位数应该自动补全,如1,补为01。

5. 如果需求中存在Authentication:normal。说明没有用户名和密码的话,这个鉴权是不需要的。

6. 注意检查wap和web一般不涉及彩信等相关端口的配置,没有mmsport,mmsproxy..注意端口写正确。

7. 关于authtype,需求表中没有注明的情况下置为PAP or CHAP或者空(没有authtype这一项)都可以的。authtype这一项未填写,不管有无用户名,会自动默认为PAP or CHAP。

8. dun类型的apn就是专门用做tethering的。如果没有dun类型的apn,默认用default的。dun后面加上default,是为了在tethering模式下可以进行下载操作。目前很多需求上明确写明只有dun,则按照需求处理。

 

 

MVNO(MobileVirtaul Network Operator)虚拟网络运营商,没有自己的实体网络,通过租用MNO(Mobile Network Operator)的网络来提供网络服务。

我们知道Spec规定operator之间是通过MCC/MNC (Mobile Country Code/Mobile Network Code)来区分的;而MVNO和对应MNO的MCC/MNC是相同的,那就需要MVNO定义额外的栏位(通常都是SIM卡中某支文件)来和对应MNO做区分;具体这个额外的栏位是什么是每个MVNO自己定义的,需要向MVNO确认。

 

目前MTK支持区分MVNO的方式有四种(KK以前没有EF_GID1方式),每种包含运营商名称Spn显示和APN两个方面的需求;Spn显示方面每种区分方式对应一个xml的配置表:

1.EF_SPN方式,对应MVNO配置到Virtual-spn-conf-by-efspn.xml中

2.EF_IMSI方式,对应MVNO配置到Virtual-spn-conf-by-imsi.xml中

3.EF_PNN方式,对应MVNO配置到Virtual-spn-conf-by-efpnn.xml中

4.EF_GID1方式,对应MVNO配置到Virtual-spn-conf-by-efgid1.xml中

 

需要向MVNO确认的信息如下:

1. 区分方式是以上哪种,从而决定相关信息需要配置到哪个xml中

2.MVNO的MCC/MNC是什么

3.MVNO的区分栏位的值是什么

4.MVNO需要显示成什么

5.MVNO是否有自己的APN需要配置(还是直接使用对应MNO的),如果需要,值是什么

 

一 SPN的设定:

所有MVNO区分方式的virtual xml的构成都应该是mccmnc+pattern

 

(1)通过EF_SPN区分

这中方式是读取SIM中的文件EF_SPN,结合SIM的mccmnc+spn,在virtual-spn-conf-by-efspn.xml 中查找有没有对应的记录,如果有这表示这个SIM是MVNO的卡,同时取name字段的内容当作运营商名称。

如果知道MVNO的SIM卡中的SPN是“abc”,MNO的MCC/MNC是10000,期望显示运营商名是”MVNO“,那就这样加记录(在Virtual-spn-conf-by-efspn.xml中)

 

(2)通过EF_IMSI区分

这中方式是imsi中有一段特殊的数字标识用于和MNO区分

例如MNO的MCC/MNC是46692,MVNO的IMSI是466923302848289,IMSI的第9位起连续2个数字为特殊标识(28),期望显示的运营商名称是“MVNO”,那就这样加记录(Virtual-spn-conf-by-imsi.xml中)

 

(3)通过EF_PNN区分

EF_PNN是SIM中的一个option的文件,里面存放一组网络运营商名称(PLMN Network Name)。这种方式即是读取EF_PNN中的第一个pnn来匹配。如果MNO的MCC/MNC是10000,MVNO中EF_PNN的第一个pnn是“abc”,期望显示的运营商名称是“MVNO”,那就这样加记录(Virtual-spn-conf-by-efpnn.xml中)

 

(4)通过EF_GID1区分

EF_GID1是SIM中的一个option的文件,里面存放了n个byte的数据;如果MNO的MCC/MNC是10000,MVNO的EF_GID1的内容是"11",期望显示的运营商名称是"MVNO",那就这样加记录(Virtual-spn-conf-by-efgid1.xml中)

 

 

二 APN的设定

其对应的文件是apns-conf.xml,和spn-conf.xml相同的目录。对比SPN,APN就简单许多,APN填写和SPN区分选择有联系。这里举例说明,原MNO的APN的设定

 

      mcc="100"

      mnc="00"

      apn="MNO的apn" 

      user="MNO的user"

      password="MNO的password"

      type="default,supl"

  />

 

(1)通过EF_SPN区分

区分是通过spn字段,和spn记录中的spn字段相同

假如spn中MVNO对应记录是;

 

      mcc="100"

      mnc="00"

      apn="MVNO的apn" 

      user="MVNO的user"

      password="MVNO的password"

      type="default,supl"

      mvno_type="spn"                  <<增加这两个字段

      mvno_match_data="abc"

  />

 

(2)通过EF_IMSI区分

通过imsi的pattern区分,和spn中的pattern相同。

假如spn中的MVNO记录是

那这个对应的MVNO的APN是

 

      mcc="100"

      mnc="00"

      apn="MVNO的apn" 

      user="MVNO的user"

      password="MVNO的password"

      type="default,supl"

      mvno_type="imsi"                  <<增加这两个字段

     mvno_match_data="46692×××28×××××"

  />

 

(3)通过EF_PNN区分

区分是通过pnn字段,和spn记录中的pnn字段相同

假如spn中MVNO对应记录是;

 

      mcc="100"

      mnc="00"

      apn="MVNO的apn" 

      user="MVNO的user"

      password="MVNO的password"

      type="default,supl"

      mvno_type="pnn"                  <<增加这两个字段

      mvno_match_data="abc"

  />

 

(4)通过EF_GID1区分

区分是通过gid1字段,和spn记录中的gid1字段相同

假如spn中MVNO对应记录是;

 

      mcc="100"

      mnc="00"

      apn="MVNO的apn" 

      user="MVNO的user"

      password="MVNO的password"

      type="default,supl"

      mvno_type="gid"                  <<增加这两个字段, 注意是gid而不是gid1

      mvno_match_data="11"

  />

你可能感兴趣的:(settings)