首页 > 解决方案 > 是否有任何用于 USB 调制解调器的 USSD 请求的 API

问题描述

我在我的国家开始了一个小型充值业务,出于不同的原因,我不得不使用 USB 调制解调器来发出我的业务所依赖的 USSD 请求

我找到的最好的调制解调器是Huwaui e3531USB 调制解调器

我正在考虑构建我的网站的方式是创建一个小守护程序,它不断检查网站是否有新订单并使用执行 USSD 请求mmcli(这是我能找到的最好的实用程序,但我愿意接受建议)

此解决方案的问题是我必须编辑mmcli源代码以仅输出 USSD 响应(正常响应中有很多额外的单词)而且 mmcli cancel USSD 请求不起作用(不知道为什么)更不用说不同的事情了这可能会出错并停止影响业务的守护进程

我的第二个选择是使用Hilink固件,它给了我一个 API 来直接从我的网站发出 USSD 请求(正是我正在寻找的),但这也有 2 个小问题,第一个是它没有给我取消 USSD 请求的选项,第二个是发出请求有点慢

所以我正在寻找中间的东西,拥有 API 的能力,这样我就可以从我的网站运行 USSD 命令,它既快速又可靠

我能找到的最好的是这个项目,但我在阅读源代码后发现它正在使用Hilink固件 API 工作。

标签: usbmodemsms-gateway

解决方案


我们必须在我们公司为此做一个“黑客”解决方案。由于我们没有足够的时间来学习 mmcli 库,我们的解决方案是使用 C++ 中的“popen”来管道 linux 终端命令并对其进行解析以生成并充分响应我们传递的 USSD 命令;IE。我们通过“popen”发送 USSD 命令并解析响应并发送所需的响应。我们在默认安装了 mmcli lib 的 Ubuntu 上运行我们的服务器,这是我们使用的。所以我们不必查看源代码,只需使用简单的管道将我们的命令通过管道传输到终端。我应该注意到它只产生了我们期望的完美输出并且没有额外的信息,并且您可以设置重试计数以防出错。

以下是我们设置架构的方式,以防万一:

网络服务器

  • 有一个在专用端口上运行的开放式 websocket,它侦听来自服务器的传入请求并推送到与其连接的所有客户端(本地服务器)。

本地linux终端

  • 有一个 websocket 客户端等待来自服务器的消息
  • 当它收到一条消息时,它会解析并执行 USSD 代码,然后向我们的回调 api url 发送一条关于执行状态的消息。

    我们已经运行了几个月了,我们唯一担心的是电源和稳定的互联网连接;我们的本地服务器必须始终开机并在线。

我很乐意分享我们用于 linux 命令的代码,它在 github 上。


推荐阅读