我有一张Ncell(尼泊尔手机公司)SIM 卡,我想在基于 Ubuntu 的笔记本电脑的内置 3G 调制解调器(“Gobi 2000”硬件)中使用它。
该卡使用 Ncell 的“正常”资费,而不是Ncell Connect。因此,我无法预订便宜的、永不过期的 Ncell Connect 数据包,但想使用Daily Internet Packs,这似乎是下一个最便宜和最灵活的选择。
问题:如何使用任何选项在 Ubuntu 下使用笔记本中的 SIM 卡成功预订这些包?(例如 USSD 菜单选项,或 Ncell Ecare,需要短信确认)
理想情况下,该解决方案应尽可能自动化,并防止我在 Daily Internet Pack 的容量用完时遇到更昂贵的数据速率。
经过多次试验,以下是我迄今为止最好的解决方案。
解决方案:使用 atiout 通过 USSD 菜单预订
USSD 被移动网络运营商用于响应式服务菜单——请参阅关于 USSD 的维基百科。通过带有 SIM 卡的计算机通过Ncell 的
*17123#
USSD菜单进行预订是最舒适的选择。由于专用 USSD 客户端软件对我不起作用(见下文),我使用原始 AT 命令。为此,我将首先安装atiout,这是一个用于使用 AT 命令的小型命令行实用程序:
然后,我可以将它与 AT USSD 命令一起使用,例如,预订 40 MB 的 Daily Internet Pack。这是完整的成绩单。调制解调器用 确认您的命令后
OK
,等待几秒钟,然后按Enter显示 USSD 应答(届时应该已经到达)。然后按Ctrl+C终止atinout
(^C
在成绩单中),然后重新启动。您可以将以上内容组合成一个脚本(假设现在您不必重试任何命令;这
AT
只是为了显示 USSD 答案):(注意,这个脚本使用了一种技术来避免管道字符。)
故障排除
连续多个 AT+CUSD 命令。出于某种原因,我的3G modem(Gobi 2000),在90%的情况下,只有一个
AT+CUSD
可以成功执行,然后atinout
必须重新启动。为了防止困难,在上面的过程中,我们atinout
在上面的成绩单中每次都简单地重新启动。这不会结束 USSD 会话(一个“打开的”USSD 菜单)。如果调制解调器没有用 OK 应答。在进行上述记录时,请注意调制解调器使用“OK”确认每个命令。如果没有,请重新启动并重
atinout
试。如果这没有帮助,请重新开始整个过程。如果这没有帮助,您的调制解调器可能处于异常状态。重置它,或者让计算机经历一个挂起/恢复周期。一般使用 AT 命令。有关在 Linux 下使用 AT 命令与调制解调器通信的更多详细信息,请参阅此答案。
预订 Daily Internet Pack 失败时。Ncell Ecare 网站将在没有错误消息的情况下失败并再次显示服务列表,而不是输入 SMS 确认代码的成功消息。如果您仍然有一个活跃的每月(或每周?) Internet 包,就会发生这种情况。即使它没有留下任何数据平衡。您可以检查一下,如有必要,请在此处取消包。然而对我来说,即使在取消套餐后,通过短信查询数据余额也会返回“亲爱的客户,您的每月帐户中还剩下 [...] MB 数据,这些数据将过期 [...]。” 而且仍然无法预订 Daily Internet Pack。我将不得不等到到期日。也许尝试将 SIM 卡放入手机并通过 USSD 代码预订第一个 Daily Internet Pack(拨打
*17123#
并按照屏幕上的菜单进行操作。)未来的改进
自动化。使用上述解决方案,我们必须手动导航菜单,如果出现问题,请重试。有待改善。
自动重新预订。理想情况下,此解决方案将包括在数据余额不足时自动(重新)预订。这可以通过 Ncell 警告短信和/或流量监控来检测。这不会在自然过期时自动预订新套餐,而是随后使用状态图标通知用户她正在以昂贵的价格浏览。
当数据余额用完时收到通知。如果是这样,我们将不需要向 SIM 卡转移有限的金额,但可以转移大量金额并在遇到昂贵的费率时收到警告(例如任务栏中的红色大图标)。为此至少有两种方法:
在活动数据连接期间获取 Ncell 通知短信。Ncell 在数据余额不足时发送它。请参阅上面的要点
wvdial
等。这是如何工作的。它不适用于NetworkManager
开箱即用的 gammu,因为它会占用两个调制解调器控制通道。限制数据流量。 NTM将是一个候选工具,但它目前没有设置具有确切开始时间的一次性包数据限制的功能。
替代 USSD 客户端软件(不适合我)
Ubuntu Linux 下有专门的 USSD 客户端,但由于各种原因它们对我不起作用(我的 3G 调制解调器硬件:Gobi 2000)。但是,通过一些调试,您可能会让它们工作。some 的用法在这个问题和这个问题中有更详细的处理。
名单,最有前途的候选人排在第一位:
mmcli。ModemManager 及其命令行客户端
mmcli
似乎是很棒的软件,也是完成此任务的最佳选择。有关如何使用USSD 菜单导航的信息,请参阅StackOverflow 上的此答案。mmcli
但是,在解决了Ncell SIM卡上的always-on PIN2 lock问题后(解决方案与此类似),mmcli
仍然会拒绝通过Gobi 2000 3G调制解调器发送USSD命令,由于一个错误(因为调制解调器使用USSD与其他客户端软件成功地):gsm-ussd。
gsm-ussd
是一个专门用于发送 USSD 代码的命令行实用程序,它可以操作 USSD 菜单(请参阅此答案中的操作方法)。不过,对于 Ncell,我能够发送 USSD 代码并获得答案,但无法操作 USSD 菜单。会出现各种不一致的报错信息,我没有去查是我的硬件问题,gsm-ussd问题还是Ncell对USSD的实现。伽穆。
gammu
是一个可以发送USSD代码的Linux命令行实用程序,但是根据this question,它还不能使用USSD菜单。python-gammu
包含一个service_numbers.py
旨在启用此功能的脚本。虽然它对我不起作用。ofono. 与 ModemManager [来源
ofono
]具有相似的用途和界面,只是它是为 Ubuntu Touch(可以在手机上运行)制作的。它的主要界面是 DBus,但是你可以使用它的测试用例命令行工具来发送 USSD 命令和操作 USSD 菜单(示例,更多示例)。然而,它似乎需要一个(无线电接口层守护进程)实现才能运行,而且只能在实际手机上使用。开始时,会抱怨无法连接到,而且我找不到要在普通 Ubuntu Linux 安装上安装的软件。rild
ofonod
rild
rild
ussdq。
ussdq
是另一个用于 Linux 的小实用程序,它包含操作 USSD 菜单的功能。然而,自 2013 年以来,它不再积极开发,并且编译它有点费力(它使用 Gambas2 框架,但最近的 Ubuntu Linux 版本只包含 Gambas3 的包)。另请参阅我的其他答案,我认为这是更好的答案。
解决方案:通过 Ncell Ecare 网站预订
通过 USSD 命令预订是最舒适的解决方案(请参阅我的其他答案)。但是,如果由于某种原因它对您不起作用,这里还有另一种不太舒服但可行的选择。
将 25 NPR 转移到计算机的 SIM 卡中。您想同时购买 Daily Internet Packs 的次数不限。最快和最舒适的方法是从您的地址簿中拨打相应的 USSD 代码
*17122*<980… mobile number>*25#
[来源]。价格包括 1.25 NPR 的传输费用,以及以 20 NPR 预订 40MB Daily Internet Pack 时增加的税费。用手机创建一个wifi热点。并将计算机连接到它,或者使用现有的 wifi 连接(如果可用)。
在Ncell Ecare上预订一次性“40 MB Heavy”每日互联网包。可以连续预订多个,数据量会聚合。您必须使用短信收到的确认码来确认第一次预订。例如获取该短信如下:
执行
gammu deletesms 0 1
(假设您不需要插槽 1 中存储的 SMS)为传入的 SMS 腾出空间。会在第一个可用空间(这里保证1个)收到,但如果SIM卡上的20-30个存储空间全部用完,则不会收到。在Ncell Ecare网站的预订流程中点击“发送短信”。
执行
gammu getsms 0 1
以获得确认短信。在 Ncell Ecare 网站上输入确认码。
通过移动数据使用互联网,直到它停止工作。
通过余额检查确认余额已用完。简而言之:
如果它无法正常工作,请断开您的移动宽带连接(一些连接管理器会占用两个调制解调器控制通道,而不会留下一个
gammu
)。重复。
故障排除
简化 Ncell Ecare 的登录。经常使用Ncell Ecare 网站会让人感到不舒服,因为它会阻止浏览器保存登录数据,阻止复制和粘贴用于粘贴到密码字段,此外,在登录表单上有一个验证码。解决方案:
如果使用 Firefox,请安装Autofill Forms插件。
然后访问 Ncell 登录页面,右键单击一个字段并选择“将完整表格添加为配置文件……”。
在配置文件创建对话框中,将匹配的站点规则修改为
(?:ecare\.ncell\.com\.np:9443)
,并输入您的用户名和密码值。复制该配置文件并将其调整为您拥有的其他 SIM 卡。
从现在开始,要登录,请右键单击登录页面上除表单字段外的任意位置,然后选择“自动填写表单 →”。
(可选)要允许粘贴到密码字段,请安装FoxReplace Firefox 插件并为 URL
https://ecare.ncell.com.np:9443/nser/index.do?method=init
设置“用于输入和输出的 HTML”选项集的规则以及将文本替换为空的操作onkeydown="keyDownForbidCopyPaste(passwordIn)
。(可选)如果你真的想摆脱验证码解决,解决验证码问题,你可以使用Rumola 浏览器插件。但是请注意,验证码解决将花费 0.013 美元,因为它涉及(至少有时)人工处理。他们的验证码自动搜索功能不适用于 Ncell Ecare 登录表单。相反,右键单击验证码文本字段并选择“使用此字段输入验证码”。然后双击进入该字段让 Rumola 解决验证码。在此过程中,使用上面的“自动表单填写”步骤填写剩余的登录信息。
Ncell Ecare 网站显示 WSOD时的解决方案。WSOD = 白屏死机。访问该网站时,您只会在浏览器中看到一个白色的内容区域。这是他们的 Web 应用程序中的一个错误,当登录到 Ncell Ecare 时遇到 Internet 连接失败时会触发该错误。要解决此问题,至少有以下选项:
删除为Ncell Ecare登录存储的缓存和cookies,重新进入登录页面,重新登录。
切换到不同的Multifox配置文件(对于 Firefox)或MultiLogin配置文件(对于 Chrome),然后重新加载页面。
另请参阅我的其他答案。
未来可能的改进
使用移动宽带连接预订套餐。一旦我发现如何在数据连接处于活动状态时接收确认码短信(用于在 Ncell Ecare 网站预订数据包),这将起作用。不适用于
NetworkManager
开箱即用的 Linux 和 gammu,因为网络管理器将获取两个调制解调器控制通道,而不会为gammu
. 断开连接、获取 SMSgammu
然后重新连接的替代方法也不起作用,因为 Ncell 然后强制注销,这也会使 SMS 确认代码无效。有人报告说使用wvdial
instead ofNetworkManager
to connect 修复了这个 [ source ]。在通知中自动获取短信。与上述步骤一样,它需要一种在活动数据连接期间使用 SMS 的方法。通过 Ncell Ecare 网站预订 Internet Pack 时,它会显示确认短信,并将其移动到硬盘以保持 SIM 卡存储空间空闲以接收新的短信。与使用手动命令从 SIM 卡获取确认短信的当前提案相比,这将加快流程。
通过 Ncell Ecare 预订,无需短信确认。会大大简化流程,因为可以使用电脑的移动宽带连接来预订互联网套餐。需要 Ncell 操作。
通过 Ncell Ecare 网站预订,无需强制注销。就像不需要短信确认一样,会简化很多过程,因为可以使用电脑的移动宽带连接,将其关闭以获取短信,然后再次打开将确认码输入Ncell Ecare。目前这将强制注销,这也会使确认代码无效。
通过允许管理外部 SIM 卡的 Ncell 应用程序进行预订。在这种情况下,Ncell 应用程序将允许管理多张 SIM 卡,而不需要手机中的其他 SIM 卡。原则上类似于 Ncell Ecare 网站。同样,需要 Ncell 采取行动。
另请参阅我的其他答案。
非工作替代品
在智能手机浏览器中通过 Ncell Ecare 网站进行预订。试过了,但由于某种原因无法使用智能手机登录该网站。登录按钮什么都不做。此外,由于该网站不适合移动设备,因此通过 wifi 热点连接在计算机上预订似乎更舒服。
安装Ncell 应用程序两次。有多种方法可以下载和修改任何 Android,以便您可以安装它两次(我将此解决方案用于 Ncell 应用程序)。我希望它能让我使用两个不同的帐户登录,同时管理我的手机和计算机的 SIM 卡。但是,Ncell APP 的登录依赖于 SIM 卡检测,您不能使用它来管理不在场的 SIM 卡。
在模拟器中通过 Ncell 应用程序进行预订。你可以在像 OpenBox 这样的虚拟机中运行 Android 和 Ncell 应用程序,但很难伪造 SIM 卡检测到它。