我在互联网上查找了很长一段时间,但没有找到关于在我的PC上设置开发和测试USSD服务的环境的信息。
我需要一个基于web的应用程序,使用RESP API发送请求,并到USSD服务器转发他们到GSM电话。我该如何开始开发它呢?
发布于 2014-05-28 07:12:42
这并不像乍一看那么容易。
不久前,我在中东做了一个项目,在那里我们有这个确切的要求,我们实际上不得不寻求当地电信公司的帮助来支持我们的努力。
从本质上讲,这一切都取决于SMS的一般工作方式。
大多数人认为SMS是以面向字节的方式在8位通道上发送的,就像MMS和GPRS数据一样,但事实并非如此。
短信实际上是在大多数基于GSM的设备的信令通道上发送的(这就是为什么你的短信在手机振铃时不能工作的原因)
更重要的是,只有一小部分信令信道被使用,而且它通常是带外串行数据。
有了这些信息,你至少需要一个可以使用标准msisdn (电话号码的真实名称)寻址的本地GSM连接,然后该连接必须提供一个标准的C7信令环境,该环境可以响应并解码串行数据,然后将其推送到连接端的基于SMPP的服务器(或类似服务器)。
一旦您在服务器中获得了解码的消息,并且分析了PDU中消息的各种标志以确定它是USSD消息,那么您需要从队列中删除消息,处理它,弄清楚命令的含义,然后将其发送到应用程序服务器,该服务器将决定调用哪个URL,或者将它传递到哪个soap端点以及许多其他因素,以及接受任何响应,将其转换回SMPP,然后重新序列化它,并沿着信令通道将其发送回原始设备。
现在,有了正确的技术和设备,你当然可以设置你自己的。如今,许多移动电话提供商将在覆盖范围较差的地区为客户提供微微蜂窝,也可以购买可以连接到本地PC的短桩天线,但您需要绝对确保您所在地区允许这样做。
许多当局严格控制无线电发射是什么,以及在任何给定的地区是不允许的,违反这些法律的人将被处以重罚或监禁。
一旦你有了天线,然后你就可以在天线连接的机器上运行类似'Open BTS‘的东西。Open BTS做标准GSM网络BTS软件所做的一切,包括将数据从aBis接口上游直接传递到用于短信通信的SMPP服务器。
然而,它不提供SMS软件,因为您需要在另一台机器上安装标准的Linux发行版,然后在其上设置和运行Kannel等软件,一旦您有了kannel,您就有能力处理消息。
将所有这些工作在一起,您将能够进行本地USSD测试。
然而,还有一个简单得多的替代方案,但它可能会花费你一些钱,那就是与全球USSD ( Link Here )或类似的服务提供商签约,他们会为你提供固定费用的所有艰苦工作,让你专注于响应你的应用程序呼叫。
发布于 2019-10-27 22:15:12
所需要的只是一个服务提供商(来自电信提供商的API,如MTN、Orange等),其次,您只需创建可以进行回调的端点。python、Php、Nodejs等语言目前支持ussd应用开发。
请记住,Ussd是一个基于会话的应用程序,它的工作方式是一种方式。这意味着您必须构建您的业务逻辑,以满足用户需求,并让他们感觉就像使用web应用程序或移动应用程序一样
最后,回调可以托管在任何云托管服务上,例如Heroku、谷歌云平台或亚马逊网络服务,该URL就是回调,但如果您想要在本地计算机上试用,您可以安装ngrok(https://ngrok.com/)或vagrant(https://www.vagrantup.com/)等工具,使本地主机具有公共地址并使用该公共地址作为回调
https://stackoverflow.com/questions/11593275
复制相似问题