我在互联网上浏览了很长时间,但未能找到有关在我的 PC 上设置用于开发和测试 USSD 服务的环境的信息。
我需要一个基于 Web 的应用程序,该应用程序使用 RESP API 发送请求,并将其发送到 USSD 服务器,该服务器将它们转发到 GSM 手机。我怎样才能开始开发这个?
我在互联网上浏览了很长时间,但未能找到有关在我的 PC 上设置用于开发和测试 USSD 服务的环境的信息。
我需要一个基于 Web 的应用程序,该应用程序使用 RESP API 发送请求,并将其发送到 USSD 服务器,该服务器将它们转发到 GSM 手机。我怎样才能开始开发这个?
这并不像乍一看那么容易。
前段时间我在中东开展了一个项目,我们有这个确切的要求,我们实际上不得不寻求当地电信公司的帮助来支持我们的工作。
从本质上讲,这完全取决于 SMS 的一般工作方式。
大多数人认为 SMS 是通过 8 位通道以面向字节的方式发送的,就像 MMS 和 GPRS 数据一样,但实际上并非如此。
SMS 实际上是在大多数基于 GSM 的设备的信令通道上发送的(这就是为什么当手机响铃时您的 SMS 不起作用的原因)
更重要的是,仅使用了该信令通道的一小部分,并且通常是带外串行数据。
鉴于该信息,您至少需要一个本地 GSM 连接,该连接可以使用标准 msisdn(这是电话号码的真实名称)进行寻址,然后该连接必须提供可以响应的标准 C7 信令环境和解码的串行数据,然后在连接端推送到基于 SMPP 的服务器(或类似服务器)。
一旦您在服务器中获得了解码的消息,并且您已经分析了 PDU 中的各种标志以知道它是一条 USSD 消息,那么您需要从队列中删除该消息,对其进行处理,找出命令的含义,然后将其发送到应用程序服务器,该服务器将决定调用哪个 URL,或者将其传递给哪个肥皂端点以及许多其他因素,以及获取任何响应,将其转换回 SMPP,然后重新序列化并将其沿信令通道发送回原始设备。
现在,有了正确的专业知识和设备,当然可以自行设置。如今,许多移动电话提供商会在覆盖范围较差的区域为他们的客户提供微微蜂窝,也可以购买可以连接到本地 PC 的短截天线,但您需要绝对确定您所在地区允许这样做。
许多当局严格控制在任何特定区域允许和不允许的无线电发射,违反这些法律的人将面临巨额罚款或监禁。
一旦你有了天线,你就可以在连接天线的机器上运行“Open BTS”之类的东西。开放式 BTS 可以做标准 GSM 网络 BTS 软件所做的一切,包括将数据从 aBis 接口向上游传递到诸如用于 SMS 流量的 SMPP 服务器之类的东西。
但是它不提供 SMS 软件,因为您需要另一台机器上安装标准 Linux 发行版,然后在其上设置和运行 Kannel 等软件,一旦您拥有了 kannel,您就可以处理消息。
使所有这些工作在一起,您将能够进行本地 USSD 测试。
然而,还有一个更简单的选择,但它可能会花费你一些钱,那就是与全球 USSD(链接在这里)或类似的服务提供商签约,他们会以固定费用为你完成所有艰苦的工作,让您专注于响应您的应用调用。
只需要一个服务提供商(来自电信提供商的 API,如 MTN、Orange 等),其次,您只需创建可以进行回调的端点。python、Php、Nodejs等语言目前支持ussd应用开发。
请记住,Ussd 是一个基于会话的应用程序,它的工作方式是一种方式。这意味着您必须构建业务逻辑以满足您的用户需求,并让他们感觉他们像使用 Web 应用程序或移动应用程序一样使用它
最后,回调可以托管在任何云托管服务上,例如 Heroku、Google 云平台或 AW,并且该 URL 是回调,但如果您想从本地机器尝试,您可以安装 ngrok 之类的工具(https:// ngrok.com/ ) 或 vagrant( https://www.vagrantup.com/ ) 使 localhost 有一个公共地址并将该公共地址用作您的回调