2

我正在从事一个涉及 GPRS 的项目。特别是我使用 u-blox Lisa-U200 GPRS/GSM 芯片。当我开始使用不同的运营商进行测试时,遇到了 PDP 上下文的问题。在谷歌上呆了几天后,我似乎在任何地方都找不到答案。

为什么有些手机/设备需要 APN 身份验证 (PAP/CHAP/None) 而有些不需要?或者正如我将问题命名为 - 移动设备(智能手机)如何自动检测 APN 身份验证方法?或者他们根本没有?

我测试它的方式是这样的——Linux 机器,使用聊天脚本运行 pppd。聊天脚本定义上下文(AT+CGDCONT=1,"IP" 等)并启动连接。

症状 - 如果我没有在 PDP 上下文中明确指定身份验证方法,它甚至不会激活(或者 LCP 协商在 ppp 中失败)。从我对 GPRS 网络的了解来看,这是有道理的——我想是因为网关节点拒绝上下文,如果它没有指示将要进行身份验证。

用少数操作员进行了测试,最奇怪的部分出现了——我测试的一些操作员只有在我将其设置为 PAP 或 CHAP(并提供正确的用户名和密码)时才能工作。有些工作我指定的任何东西(NOAUTH,错误的用户/密码等)。

到目前为止,我提出的想法是:

1) 为用户提供选择身份验证类型的选项。(不是我喜欢的方法,因为我更喜欢用户尽可能少地输入。)

2) 如果用户为 APN 设置了用户名/密码 - 将身份验证方法设置为 CHAP(我注意到大多数运营商都支持 CHAP 和 PAP)。如果不是 - 使用 None 作为方法。(听起来很合理?)

3)蛮力-设置为CHAP,激活-注意错误;如果失败 - 设置为 PAP 并激活等...(不能说我对此感到太高兴)

如果我用移动行业众所周知的答案回答了一个非常愚蠢和常见的问题,或者我在这里的逻辑完全偏离了轨道,请原谅我,但我是一名软件开发人员,这对我来说没有任何意义:)

感谢任何分享有关该主题的经验和知识的人!

4

0 回答 0