APN配置
一、APN 概述
1.1 什么是 APN?
APN(Access Point Name)是一种网络接入技术,终端模组在接入到网络时必须配置该参数,该参数决定了模组以何种方式接入网络;用户在上网时,针对不同的 APN,核心网网元 GGSN/P-GW 将会把用户转接代理到不同的网络,所以如需通过模组设置 APN,所设置的 APN 要与 SIM 卡开卡时配置的 APN 一致。
1.2 什么情况下需要配置 APN?
1. 如果是专网卡,首先咨询 SIM 卡供应商 APN 参数,然后在 main.lua 尽可能靠前的位置调用接口进行设置。
2. 如果是公网卡,不需要用户主动设置 APN,软件自动去网络端查询 APN 进行设置。
1.3 如何区分专网卡和公网卡?
根据使用的网络类型来分,SIM 卡可以分为公网卡和专网卡两种 如何判断 SIM 卡是公网卡还是专网卡,可按照如下顺序确认:
1. 咨询 SIM 卡供应商
2. 如果 APN 有账号、或者有密码、或者有加密类型,则可以认为是专网卡
使用专网卡,需要参考下面章节内容,设置 APN,并将需要访问的域名或 IP 加入专网卡白名单,以下是模块会访问的域名或 IP 服务器:
功能 | 地址 | 端口 | 协议 |
远程升级 | iot.openluat.com | 80 | http |
基站WIFI定位 | bs.openluat.com | 12411 | udp |
基站WIFI定位(收费) | airlbs.openluat.com | 12413 | udp |
AGPS星历下载 | download.openluat.com | 80 | http |
NTP时间同步 | ntp.aliyun.com | 123 | udp |
errdump | dev_msg1.openluat.com | 12425 | udp |
二、功能概述
本教程使用 Air780EPM 开发板,演示专网卡设置 APN 的流程。
三、准备硬件环境
参考:硬件环境清单第二章节内容,准备以及组装好硬件环境。
四、准备软件环境
在开始实践本示例之前,先筹备一下软件环境:
1. LuaTools 工具;
2. 内核固件文件(底层 core 固件文件):LuatOS-SoC_最新固件_Air780EPM;参考 Air780EPM LuatOS 固件版本;
3. luatos 需要的脚本和资源文件
脚本和资源文件:https://gitee.com/openLuat/LuatOS/blob/master/module/Air780EPM/demo/apn/main.lua
lib 脚本文件:使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件;
准备好软件环境之后,接下来查看如何烧录项目文件到 Air780EPM 开发板中,将本篇文章中演示使用的项目文件烧录到 Air780EPM 开发板中。
五、API 说明
mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol)
获取或设置 APN,设置 APN 必须在入网前就设置好,比如在 SIM 卡识别完成前就设置好。
具体传入参数以及返回值请查阅 API 核心库之 mobile:43 mobile - 合宙模组资料中心
示例如下:
mobile.apn(0,1,"name","user","password",nil,3) -- 专网卡设置,其中name,user,password需联系卡商获取
六、功能验证
6.1 main.lua 代码
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "setApnDemo"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
sys = require("sys")
mobile.apn(0,1,"name","user","password",nil,3)
-- 专网卡设置的name,user,password联系卡商获取
local function main_task()
while true do
sys.wait(2000)
local apn = mobile.apn(0,1,"","","",nil,0) --获取APN,第三个参数不填就是获取APN
log.info("main apn", apn)
end
end
sys.taskInit(main_task)
sys.run()-- sys.run()之后后面不要加任何语句!!!!!
6.2 luatools 日志信息
七、常见问题
7.1 专网卡设置主要事项
设置 APN 必须在入网前就设置好,比如在 SIM 卡识别完成前就设置好。
7.2 专网卡连接服务器失败
1. 有的专网卡没设置 APN 的情况下也能激活 PDP,但是不能连专网卡指定的服务器,或者开机后模块没自动激活 PDP,这个时候参考上面示例,检查 APN 参数是否设置正确。
2. 如果无法百分百保证服务器配置没问题,最好在服务器端用 wireshark 抓包,或者在服务器上安装一个第三方工具,开启一个服务器端口来对比测试。
3. 用定向 IP 的物联网卡,需要把域名或 IP 加入白名单才能使用。
7.3 专网卡访问白名单
用定向 IP 的物联网卡,需要把域名或 IP 加入白名单才能使用,下面列出模块会访问的域名或 IP 服务器。
功能 | 地址 | 端口 | 协议 |
远程升级 | iot.openluat.com | 80 | http |
基站WIFI定位 | bs.openluat.com | 12411 | udp |
基站WIFI定位(收费) | airlbs.openluat.com | 12413 | udp |
AGPS星历下载 | download.openluat.com | 80 | http |
NTP时间同步 | ntp.aliyun.com | 123 | udp |
errdump | dev_msg1.openluat.com | 12425 | udp |