标题：USSD
摘要
介绍了USSD的背景和特点，并与短消息、GPRS和WAP相比较，论述了其在工业应用上的可行性及优点，并以中电五十所成功运营在乌鲁木齐的无线远程监控系统为例，讲述了USSD在工业应用中的系统结构、接口协议和通信流程。
关键词
非结构化补充数据业务 通用分组无线业务业务提供者中国移动点对点
非结构化补充数据业务USSD(Unstructured Supplementary Service Data)是一种基于全球移动通信系统GSM(Global System for Mobile Communications)网络的、实时在线的新型交互会话数据业务；它基于用户识别模块SIM(Subscriber Identity Module)卡，利用GSM网络的信令通道传送数据，是在GSM的短消息系统技术基础上推出的新业务，在业务开拓方面的能力远远强于SMS系统。
USSD技术单独使用或与目前的短消息技术、通用分组无线业务GPRS(General Packet Radio Service)技术相结合，可为客户提供种类繁多的增值业务，如移动银行、金融股票交易、手机话费查询、气象信息预报和查询、收发电子邮件、航班查询、网上订票、民意测验等。采用USSD对原有系统结构影响较小，且运营商还可以针对本地网的具体情况灵活地推出功能业务，方便地为移动用户提供各类数据业务；另外USSD不仅可用于一些信息服务，利用移动运营商提供的通信网络,也可应用于工业范围，USSD的应用可使工业监控通信的范围大大扩展，功能增强，成本降低，所以这种业务在香港特区、新加坡等国家和地区已有广泛的应用，在中国也有广阔的应用前景。
相关比较
特点及与其他业务的比较
USSD系统与短消息业务SMS(Short Message Service)、GPRS和无线应用协议WAP(Wireless Application Protocol)的应用范围相似，但有其自己的特点。USSD在通话状态下使用独立专用控制信道SDCCH(Stand-alone Dedicated Control Channel),数据传输速率大约为600bps;而非通话状态时，USSD使用快速辅助控制信道FACCH(Fast Associated Control Channel),数据传输速率大约为1kbps,比SMS传输速率高。目前，用户只能在非通话状态下使用WAP,数据通过业务信道TCH(Traffic Channel)进行交换，其传输速率大约为9.6kbps,目前WAP的响应时间较慢，且需专门的WAP手机支持。USSD在会话过程中一直保持通话连接，提供透明通道,不进行存储转发；而SMS在物理承载层没有会话通道，是一个存储转发系统，用户完成一次查询需要进行多次会话过程。由于USSD与GPRS类似，在交互中保持一个会话过程，每次数据发送不需要重新建立信道，所以USSD系统对用户的呼叫请求是即时响应，使响应时间大大加快，主要的响应时延已转移为应用服务器一端，响应时间比短消息快。USSD在交互式会话中可以提供直观的菜单操作，方便用户使用，在一次信息服务中，只需要拨打服务号码，以后就可以按菜单提示进行下一步操作，可以建立类似WAP的门户网站来提供电信增值服务。USSD和GPRS适合不同的用户群在工业环境下，在通信量不大、每次通信量只有几K数据量的情况下使用USSD的费用低廉；而GPRS传送带宽高，适用于信息量大的数据传输。现在市面上的手机大多支持USSD服务在工业应用中，大多具有SMS和GPRS功能的通信模块或芯片也支持USSD服务。USSD在工业应用中的系统结构如图1,监控中心通过Internet或专线与USSD平台建立TCP/IP连接，USSD传输终端通过GSM的公用网络与USSD平台建立无线连接，通过USSD平台与GSM网络、监控中心和现场监控单元建立起一个数据通信的通道。在移动USSD平台中有数据库备份数据，监控中心除应用平台外，还可备有有线浏览器进行监测。透过GSM网络和USSD平台，无线浏览器和手机也可与监控中心建立联系。
图1 USSD系统结构图
其中，USSD服务器有两个网络接口分别对应于归属位置寄存器HLR(Home Location Register)和局域网：一方面，它通过七号信令SS7(Signaling System No.7)的移动应用部分Map(Mobile Application Part)与GSM系统的HLR连接；另一方面，它通过专线以传输控制协议/ 网际协议TCP/IP(Transfer Control Protocol/Internet Protocol)与应用监控中心连接。应用监控中心与USSD服务器的接口协议可为短消息点对点SMPP(Short Message Peer to Peer)或中国移动点对点CMPP(China Mobile Peer to Peer)。GSM系统及USSD均起透明通道的作用，监控中心可以发出指令，对终端或手机进行通信控制或发送短消息，手机或终端也可通过USSD服务来对监控中心发出请求以得到相应的服务。通信通道建立之后，就可以象一般的工业总线一样，监控中心对远程终端进行三遥操作，终端也可以主动上报报警、开机等信息。
接口协议
USSD的接口协议与短消息类似，采用SMPP或CMPP。SMPP是国际通用的协议，CMPP是中国移动根据中国情况在SMPP基础上自己制定的协议，二者体系结构大体相同，应用范围也相同，但数据包的格式及内容有一定的差异。CMPP在2003年6月30日版本已升到了3.0。
两者的消息均分为消息头和消息体，其中消息头长度是固定的。主要信息为消息总长度、命令类型和消息流水号。命令类型用来说明消息的类型是连接，还是由USSD中心到业务提供者SP(Service Provider)的消息或由SP到USSD中心的消息，断开连接及其回应等。消息流水号顺序累加，步长为1,循环使用，一对请求和应答消息的流水号必须相同。在SMPP中还有一个请求消息的回应是否成功的状态信息，而在CMPP中相应信息放到了消息体中。消息体则根据消息的类型和内容来决定长度和数据，但其所携带的自定义信息长度不超过160个字节，自定义信息即平时通过手机输入或接收的短消息内容或工业通信中的自定义通信规约部分。相对于SMPP而言，CMPP增加了许多信息，尤其是计费和号码的信息。
以下是采用CMPP的USSD消息在VB中的结构定义：
Type UssdCmppMsgStruct
′——————————-------Message Header
Total_Length As Long ′消息总长度（含消息头和消息体）
Command_Id As Long ′命令类型
Sequence_Id As Long ′消息流水号
′————-------------Message Body
Msg_Id(7) As Byte ′信息标识
Pk_Total As Byte ′相同Msg_Id的信息总条数
Pk_number As Byte ′相同Msg_Id的信息序号
Registered_Delivery As Byte ′是否要求返回状态确认报告
Msg_level As Byte ′信息级别
Service_Id(9) As Byte ′业务类型
Fee_UserType As Byte ′计费用户类型
TP_pId As Byte ′GSM协议类型
TP_udhi As Byte ′GSM协议类型
Msg_Fmt As Byte ′信息格式
Msg_src(5) As Byte ′信息内容来源
FeeType(1) As Byte ′资费类别
FeeCode(5) As Byte ′资费代码
ValId_Time(16) As Byte ′存活有效期
At_Time(16) As Byte ′定时发送时间
Src_Id(20) As Byte ′源号码
DestUsr_tl As Byte ′接收信息的用户数量
Dest_terminal_Id() As Byte ′接收USSD信息的MSIS-DN号码，length=21*DestUsr_tl
Msg_Length As Byte ′信息长度 <160 byte
Msg_Content() As Byte ′信息内容
USSD_TYPE(7) As Byte ′USSD会话类型
End Type
通信过程
在工业应用的监控中心和USSD服务器接口的两种协议中，尽管SMPP和CMPP的数据包格式不大相同，但二者的流程大体相同。在目前USSD的应用中，大部分是应用在信息资讯等电信增值服务中，在工业的应用中还不多，但由于USSD业务的方便快捷、费用低廉等优势，在工业应用中的前景大有可为。
在USSD的通信会话过程中有两种方式，由手机或终端发起的会话连接和由应用平台或监控中心发起的对话连接，以下介绍两种流程。
首先，在两种连接流程中，监控中心都要与USSDC(USSD Center)先建立一个连接，一般采用长连接。所谓长连接，指在一个TCP连接上可以连续发送多个数据包。监控中心发出连接请求，USSDC收到后给予回应，监控中心收到回应后，就表明USSDC到监控中心的通路已经搭建好了，这个通路在平时一直保持连接，在线路空闲时要发送链路检测包及其回应以维持此连接。当信道上没有数据传输时，通信双方应每隔时间C发送链路检测包以维持此连接，当链路检测包发出后超过时间T未收到响应，应立即再发送链路检测包，再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N原则上可配置，现阶段中国移动的建议取值为：C=3min,T=60s,N=3。数据包采用并发方式发送，加以滑动窗口流量控制,窗口大小参数W可配置，现阶段中国移动的建议值为16,即接收方在应答前一次收到的数据包最多不超过16条。
图2 终端发起的会话示意图4．1 终端发起的会话如图2,RTU为手机或带GSM通信功能的终端，SP为监控中心。RTU通过USSDC发给SP的命令都是DELIVER命令，SP用SUBMIT命令通过USSDC把消息传给RTU。DELIVER和SUMBIT都是 SMPP与CMPP中的命令类型，具体数据格式可参见SMPP或CMPP协议。在USSD应用中有一个字段的数据是短消息应用中没有用到的，用来说明DELIVER和SUBMIT的命令参数，在CMPP中是Service_Id,在SMPP中是Servid_Type,在本文中称为USSD_TYPE,易于理解。不同的交换机使用的USSD_TYPE内容可能不一样，这里以新疆移动使用的USSD服务器为例说明。
(1)终端或手机拨打运营商提供的服务号（例：*139*1#），通过USSDC发送给SP一条请求连接命令DELIVER(REQUEST_CONNECT),USSD_TYPE参数的内容为“PSSRR”，传送一个移动到应用的会话请求。
(2) SP收到后发送SUBMIT(REPLY),USSD_TYPE的内容为“USSRR”，RTU收到信息后即与SP建立起一次会话连接，SP在此命令中把消息发送到手机上，可以提供直观的菜单方式让用户决定下一步的操作，如在新疆乌鲁木齐运行的监控系统中，把某些相关人员的手机设定后，这些手机就可以通过拨打专用服务号，与监控中心建立起一次会话连接。手机上马上会显示“欢迎进入本系统：1.系统介绍；2.数据查询；3.故障查询；4.退出”。
(3) 用户可通过菜单提示按键来获得想要的服务，USSDC收到请求后向SP发送 DELIVER(SERVICE_REQUEST),USSD_TYPE为“USSRC”，传送从移动到应用的一个USSR相应，用户的回复信息可在此命令中传给SP。如第（2)步骤，手机可按“1“键向SP发送进入系统介绍界面的请求。
(4) SP收到请求后，与第（2)步骤一样，发送SUBMIT(REPLY)命令，将系统介绍文字菜单发送到手机上，用户可重复在第（3)和第（4)步骤间多次交互，获取想要的信息。
(5) 最后完成手机发出断开请求，如在主菜单上按“4”选择退出，USSDC发送DELIVER(RELC)命令给SP,USSD_TYPE为“RELC”，传送结束会话命令给SP。
(6) SP发送SUBMIT(FINISH)命令，USSD_TYPE为“USSNR”，在该命令中附带“欢迎再次使用”等结束语的消息，手机收到后与SP结束一次会话过程。也可以由SP发送SUBMIT(RELR),USSD_TYPE为“RELR”，主动断开会话。
在整个通信过程中，RTU与SP保持连接，直接对话，速度比短消息快得多。用户只需拨打专用号码，就可以根据菜单进行下一步操作，进行远程访问并查询各个远程监控终端的数据和故障，及时掌握第一手资料。当然也可根据用户要求，在SP的程序中加入远程遥控或其它扩展功能。4．2 SP发起的连接在工业应用中，大部分的通信过程是由监控中心发起的，下面终端发起的会话主要是一些突发事件（开机申请、主动报警等）。一些平时主要的通信任务（遥测、遥控等）都是由监控中心发起的，终端收到后给予回应，尤其是一些应急处理更需要由监控中心主动发起。这种会话方式的实现需询问当地移动运行商是否支持。
如图3,结合一次遥测数据来说明SP发起的会话通信流程。
图3 SP发起的会话示意图
(1)在监控中心发起的会话连接过程中，监控中心先把连接请求发送到USSDC,发送SUBMIT(REQUEST_CONNECT),USSD_TYPE为“OPEN
R”，表示SP希望打开一个与RTU的新对话。
(2)USSDC收到后回复DELIVER(REPLY_CONNECT),USSD_TYPE为“OPENC”，表示USSDC接受SP打开一个与移动用户的新对话的请求，此时并不表示已经成功地与移动用户建立起该对话。
(3)SP收到USSDC的会话请求回应后发送SUBMIT(COMMAND),USSD_TYPE为“USSRR”，在该命令的消息体中带着自定义通信规约的数据，即向终端发送遥测命令。
(4)终端在收到遥测命令后，一次会话已经成功建立，终端采集数据后，用与短消息类似的方式将数据发送到USSDC,USSDC将数据放到DELIVER的消息体中，以DELIVER(REPLY)命令发送给SP,USSD_TYPE是“USSRC”。
(5)监控中心收到数据后处理数据，发送SUBMIT(RELR),USSD_TYPE为“RELR”，断开这次会话，完成一次遥测操作。
在某些工业应用中，如在集中监控中，有时需要在短时间对一组监控终端进行同一操作，由于每次会话中包含一定的等待回应的时间，如果对每一个终端都一个个单独操作，那么所有终端操作下来将需要耗费不少的时间，这样就不能保证操作响应的及时性。鉴于USSDC具有可以同时建立多个连接的功能以及在一次会话中，如在时间T内监控中心与终端之间无通信量（T可以由服务器厂商或移动设置，如新疆移动设为10s),USSDC可以将全部终端分为若干组，同一组终端都先全部建立好连接，再一个个发送数据，这样就可以减少等待回应的时间，提高操作的效率。
在中国，USSD在工业上的应用刚刚兴起，由中国电子科技集团公司第五十研究所开发的无线远程监控系统采用了USSD为主、短消息为辅的通信方式，已经在新疆乌鲁木齐市成功运营。该系统USSD协议采用SMPP 3.4。另外，在其它几个城市的远程监控系统中，也采用了USSD为主的通信方式，在有些地方采用CMPP 2.0协议，协议的采用主要是与当地的运营商配合协商而定。
参考文献
1中国移动通信集团公司.中国移动通信互联网短信网关接口协议（CMPP) v2.0[S].2002,4
2 SMPP Developers Forum. Short Message Peer to Peer Proto-col Specification v3.4[S]. Issue 1.2.1999
3 中国移动通信集团公司.中国移动通信USSD业务接口协议[S].2003