我需要实现一个简单的应用程序,以通过GSM调制解调器在gsm电话显示屏上发送简短的通知消息。
我知道我可以使用gsm USSD协议(protocol)发送消息而不是发送短信,以加快传递速度。
洛伦佐
最佳答案
您需要在移动网络运营商环境中连接到运营商SS7网络的USSD服务器/网关。 USSD消息可以从手机发送到USSD服务器,也可以从USSD服务器发送到手机。无法将USSD消息直接从一部电话发送到另一部电话,您需要通过USSD服务器中继该消息。
USSD消息不是标准化的,它们特定于移动网络和具有USSD功能的应用程序。但是,许多HLR理解一些事实上的标准USSD消息,用于查询和配置诸如调用转移之类的内容。
USSD使用MAP协议(protocol)通过SS7传输。在MAP之上实现的业务逻辑绑定(bind)到实际的协议(protocol)栈实现。在服务器端,可能是硬件(接口(interface)卡)加上操作系统驱动程序或仅软件,例如SIGTRAN-Stack,取决于要支持的物理层(E1,通过光纤的SDH,ATM或以太网)。一个示例应用程序取决于其运行的协议(protocol)栈。从您的接口(interface)硬件或协议(protocol)堆栈的供应商处查找示例应用程序。在客户端,USSD支持取决于设备,例如通过J2ME JSR 120“无线消息传递API”。
不能保证USSD会被交付,尤其是在漫游情况下。这完全取决于您的移动网络运营商。如果您与运营商没有协议(protocol),则他可能会屏蔽您的USSD消息,特别是如果他发现大量绕开其付费消息服务的消息时。
关于mobile-phones - 在哪里可以找到USSD命令规范?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2781374/