
简介这份资源是中国移动通信企业标准中USSD应用接口协议相关的技术文档面向通信网络工程师、移动业务开发人员及电信标准研究者用于解决USSD业务在系统结构、组网方式、接口协议与计费安全等方面的规范依据问题。压缩包内共1个doc文件约781KB内容涵盖USSD业务总体技术要求、应用接口协议、业务流程、编号方式、应用系统接口、计费与信息安全以及API、HLR、HPLMN、MAP、MML、MS、MSC、MSISDN等实现要点并列出QB-D-069-2009、QB-D-070-2009、QB-E-031-2009、QB-E-032-2009等标准编号。目前已有576人学习下载适合需要查阅行业规范、梳理接口流程或进行设备选型与工程设计的读者参考可帮助快速定位USSD系列标准的关键条款与技术要求。1. 从一条*100#说起这份 2009 年的 USSD 规范为什么现在还有人翻你在维护一套老短彩信网关或者行业短信平台时大概率遇到过这种需求用户不装 App、不发短信直接在拨号盘敲一串*100#就能查余额、订票、查积分。这就是 USSD非结构化补充业务数据。它跟短信最大的区别是面向连接、不存储转发通话态下走 FACCH速率能到 1000 bits/s 左右非通话态走 SDCCH 约 600 bits/s响应比短信快得多。手头这份《中国移动通信USSD应用接口协议》属于 QB-D-069-2009 系列2009 年发布实施是当年各省公司开展 USSD 业务的技术依据。它把系统结构、组网路由、业务流程、编号方式、计费和信息安全都写死了。今天翻它的人多半不是要从零建网而是接手了存量系统需要搞清楚接入码怎么规划、MAP 消息怎么带 MSISDN、超时该配多少。这篇笔记就按「这是什么 → 怎么落地 → 坑在哪」的顺序把这份规范拆成能照着复现的步骤。2. 系统结构与组网路由USSDC、HLR、MSC 三者怎么连2.1 USSD 中心内部到底分了几个模块规范第 5 章把 USSDC 逻辑上拆成信令接口单元、核心处理单元、数据库服务器、USSD 网关、USSD Portal、网管接口模块、计费和话单接口模块。这不是为了画图好看而是决定了你扩容时该动哪块。信令接口单元负责 7 号信令接入要支持 MAP Phase2、NO.7 信令、SCCP 这几套规范。核心处理单元做协议解析、路由分析、请求响应转发。USSD 网关是给 SP 接入用的SP 通过它拿到对 USSD 对话的完全控制权接口走 UAP 协议。USSD Portal 则是另一种接入方式SP 把菜单预置在 Portal 上用户浏览过程中 SP 控制不了会话但 Portal 可以在用户访问到特定菜单项时向 SP 上报通知接口走 CMPP 或 UAP。这里有个选型判断如果你的业务方需要实时控制每一步交互比如银行转账要逐步确认走 USSD 网关如果只是固定菜单导航比如查天气、查话费走 USSD Portal 更省事。规范里明确说了建设初期网关和 Portal 都可以作为 USSDC 的功能模块提供业务量大了再剥离成独立网元。我一般建议初期就按模块化设计别把网关逻辑硬编码进核心处理单元否则后期拆分要动大手术。2.2 归属地应用和拜访地应用的路由差异这是整份规范里最容易翻车的地方。服务号码的号段直接决定了路由走向服务号码段路由方式适用业务连接方式70~79、100~149归属地应用HPLMN省内业务、信息点播USSDC 与 HLR 建立连接150~199拜访地应用VPLMN全国业务、银行金融类USSDC 与 MSC 建立连接归属地应用的流程是MS → MSC/VLR → HLR → USSDC。MSC/VLR 分析接入码后判断是归属地业务就把请求路由到用户归属的 HLRHLR 再前转给 USSDC。拜访地应用则是 MSC/VLR 直接路由到对应的 USSDC不经过 HLR避免路由迂回。规范建议全国业务采用拜访地接入方式因为银行类业务对响应时间敏感绕 HLR 会增加延迟。但附录 A 里也承认2009 年现网交换机并不是都支持 MSC/VLR 到 USSDC 的接口只有部分厂家设备可以。所以过渡期方案是不支持拜访地接入的地区全国业务也走归属地方式形成混合组网。2.3 网络侧发起业务的两种路由实现SP 主动推送给用户PUSH 类业务有两条路。第一条是 ETSI 标准方式USSDC 把请求发给 HLRHLR 转发到用户拜访的 MSC/VLR整个交互过程每次都要 HLR 中转。第二条是非标准方式USSDC 先到 HLR 查路由信息拿到 MS 当前位置后直接跟拜访 MSC 建立会话HLR 只参与路由查询不参与后续交互。规范明确建议 PUSH 类应用采用第二种方式理由很直接业务量大的时候第一种方式会把 HLR 负荷打满。HLR 是共享网元你一个 USSD 业务把 HLR 拖垮影响的是一大片。这个选择在当年是血泪经验现在做存量系统维护同样适用——只要 HLR 支持路由查询接口就别让它中转消息。2.4 一次完整的余额查询流程拆解以规范第 8 章的银行余额查询为例上下行都用 USSD 方式整个交互在一个会话里完成# 用户拨号 *100*1# # 服务号码100附加参数1表示查询余额 # 网络侧交互序列简化 PSSR: #101*1# # MS发起USSD请求 USSR: 请输入帐号: # USSDC向SP转发SP返回提示 USSR_RSP: 40001100672812349914 # 用户输入帐号 USSR: 请输入密码: # SP请求密码 USSR_RSP: 361327 # 用户输入密码 PSSR_RSP: 剩余 9533.2 元 # SP返回结果USSDC回传给MS这里的关键参数是超时配置。规范 7.1.3 写得很具体移动用户侧建议 30 秒应用服务侧建议 30 秒用户侧响应时间最大 180 秒应用侧最大 60 秒一次 USSD 对话有效时间不超过 10 分钟。超时后 USSDC 必须释放对话连接。我见过有人把用户侧超时设成 300 秒觉得「给用户多点时间输入」。结果就是异常占用的资源释放不掉并发一上来 USSDC 直接雪崩。规范给的 180 秒是上限不是建议值实际配置建议贴着 30 秒走特殊业务再单独调。2.5 业务接入码的编码规则与规划建议接入码格式一*AAA*BBB#或#AAA*BBB#AAA 是三位服务号码100~199BBB 是附加参数。格式二70~79后面不跟任何字符。规范给了三种编码原则AAA 代表业务分类、BBB 代表 SPAAA 代表 SP、BBB 代表业务分类AAA 代表 USSD 中心、BBB 代表业务分类。建议采用第一种因为用户记忆成本最低——*100#是银行、*101#是查询分类在前更符合直觉。前缀可以是*、#、**、*#、#**、##*等形式一到三位。规范建议个人用户应用只用*或#开头两位三位前缀留给工业控制、行业用户这些不需要记忆的场景。另外可以设 1~2 个综合接入号做门户导航比如#101#作为中文 USSD 综合接入号利用业务转移功能把请求导航到具体 SP。业务转移这个功能值得单独说它能把当前 USSD 对话从 USSDC 到 SP 的呼叫分支切断转移到新的业务接入码指定的 SP 上对话继续。只有业务方可以发起转移命令。做门户导航就靠这个用户从综合菜单选了一项后台直接把会话转给对应 SP用户感知不到切换。3. 接口信令与 MAP 消息MSISDN 怎么带、DCS 怎么设3.1 MAP 消息里必须带 MSISDN规范 10.1 明确要求USSD 业务在 MAP 协议中要求在 USSD 会话请求中传递该用户的 MSISDN。涉及的消息主要是MAP_PROCESS_UNSTRUCTURED_SS_REQUEST、MAP_UNSTRUCTURED_SS_REQUEST、MAP_UNSTRUCTURED_SS_NOTIFY。处理依据是 GSM 09.02 v6.3.0R97以上版本这个版本在 PSSR 参数中引入了 MSISDN。为什么强调这个因为早期版本的 MAP 消息里没有 MSISDNUSSDC 收到请求后不知道是谁发的只能靠其他字段反查效率低还容易出错。要求带 MSISDN 之后USSDC 可以直接根据主叫号码做鉴权、路由、计费。附录 A 里特别提到现网能按要求提供 6.3.0 以上 MAP 协议接口的厂家设备是有限的。如果你现在维护的系统对接的是老交换机先确认它支持的 MAP 版本别想当然认为 MSISDN 一定带得上。带不上的话要么升级交换机软件要么在 USSDC 侧做号码补全逻辑。3.2 中文 USSD 的 DCS 编码与长消息拆分汉字 USSD 编码方案要符合 GSM 03.38v5.6.1即支持 UCS2(16bit)-GB13000。终端要支持 GB13000 CJK 部分的汉字。规范 7.1.9 有一条容易被忽略的要求MSC/VLR、HLR、USSDC 应该支持 DCS 为非 0x0F 编码的 USSD 消息传输包括终端到 SP、SP 到终端两个方向。网络设备可以设置忽略检查 DCS 字段以便透明传输。0x0F 是什么是 GSM 7bit 默认编码。非 0x0F 意味着可能是 UCS2 或其他编码。如果网络设备严格检查 DCS 字段遇到非 0x0F 的消息可能直接丢弃或转码中文就乱了。所以规范允许网络设备忽略 DCS 检查做透明管道。长消息方面终端和 SP 要支持拆分和组合。终端至少支持 229 个汉字的 USSD 消息可选支持至少 389 个汉字。这是 2.0.0 版本新增的要求1.0.0 版本没有。如果你对接的终端是 2008 年之前入网的可能不支持长消息发超长内容会被截断。3.3 对话标识与面向连接的接口设计USSD 是面向连接的应用USSDC 与 SP 之间的协议必须是面向连接的。USSDC 要在消息中说明 USSD 对话标识标识该消息属于哪一个对话连接。这意味着 SP 侧不能按无状态 HTTP 接口来设计。每个对话要有独立的会话 ID消息要能关联到具体对话。规范 7.1.4 列出了对话信息必须存储的内容对话标识、消息文本内容和长度、发起和结束时间、状态信息、交互次数、有效期、发起者地址和目标地址、应用类别、信息来源、当前消息发送状态、失败原因。这套存储要求决定了 USSDC 的数据库设计。对话标识是主键状态机要能跟踪每个对话的生命周期。我见过有人用内存缓存存对话状态重启就丢用户正在输入的密码直接没了。规范要求存储就得落库别偷懒。3.4 用户鉴权和业务接入码鉴权USSD 用户鉴权有两种必选方式不鉴权和按号段鉴权。鉴权方式可根据运营需要设置。不鉴权就是谁都能用按号段就是只允许特定号段的用户接入。业务接入码鉴权是另一回事USSDC 要核查应用服务侧发起的 USSD 业务是否合法保留业务接入码和应用服务的对应关系判断 SP 是否可以向移动用户发起该接入码对应的业务。这是防止 SP 越权推送比如一个天气 SP 不能发银行接入码的业务。如果独立建设 USSD 网关业务转移和业务接入码鉴权这两项功能作为对网关的要求。也就是说网关不只是透传还要做权限校验。4. 计费、安全与统计话单字段和加密边界4.1 消息级计费与对话级计费的区别规范 7.1.6 要求为每一条消息产生话单并在消息级别的话单中增加一个字段指示该消息是否计费。11.1 又说了USSDC 产生的话单分为对话计费记录和消息计费记录两种。这意味着计费系统要能处理两种粒度。对话计费记录关注整个会话的时长、次数消息计费记录关注单条消息的内容、方向、是否计费。运营者可以按月租收基本费、按对话持续时长计费、按对话次数计费、按信息内容计费或按字节流量计费。业务开展初期规范给了一个取巧方案所有点播消息通过短信下发用短信来间接计费USSD 只做业务导航。这样不用改计费中心软件能快速上线。这个思路现在做新业务冷启动同样适用——先复用成熟计费通道别一上来就动核心计费系统。4.2 计费接口与数据存储计费接口可以通过 X.25、RS232 或其他接口与计费中心相连也可以采用磁带脱机处理。计费信息应可采用 FTP、FTAM 规程传送。USSDC 要提供有效的计费记录保存手段文件方式或数据库方式都行。X.25 和 RS232 现在看很古老但存量系统里还在跑。如果你要对接老计费中心先确认它支持哪种接口。FTP 传送话单文件是最常见的注意文件格式和命名规则要跟计费中心对齐别自己发明。4.3 银行类业务的加密边界规范第 13 章专门讲安全。银行类业务对安全性要求很高帐号、密码泄漏会给客户造成巨大损失。USSDC 到银行应用服务器之间的安全性问题可以采用专线直联、IPSec 加密等机制。如果需要端到端加密必须在终端侧实现加密/解密算法可以通过 SIM 卡实现。加密算法的实现和密钥管理、更新可以参考基于短消息承载的手机银行业务的处理方式。这里有个边界要清楚规范只要求 USSDC 到银行服务器之间加密端到端加密是可选增强。实际做银行类业务专线直联是底线IPSec 是标配SIM 卡端到端加密看业务方需求。别把三层混在一起谈成本差很多。4.4 统计与网管接口规范第 12 章把统计与网络管理的要求指向了《非结构化补充业务数据中心USSDC设备规范》。网管接口模块要提供和统一网管系统的接口。这意味着 USSDC 要能上报性能统计、告警、配置数据。实际运维中最常看的是对话并发数、消息成功率、超时释放数、各 SP 的流量分布。这些指标能直接反映系统健康度。如果网管接口没对接好出问题只能登服务器看日志效率很低。5. 避坑与排查超时、编码、路由、鉴权的五个翻车现场5.1 用户侧超时设太大导致资源耗尽现象业务高峰期 USSDC 对话并发数飙升新请求接入失败日志显示大量对话处于等待用户输入状态。原因用户侧超时配置过大比如设了 180 秒甚至更长。用户拨了*100#之后不输入对话一直挂着占用信令资源和内存。规范建议用户侧 30 秒最大 180 秒但很多人直接取最大值。解决把用户侧超时改回 30 秒特殊业务单独配置。同时检查 USSDC 是否有对话跟踪管理机制能否判别响应时间超出允许范围的对话并及时释放。规范 7.1.3 要求 USSDC 具备这个能力但配置不对等于没有。5.2 中文乱码DCS 字段被网络设备改写现象用户输入中文SP 收到的是乱码或者用户收到 SP 返回的中文是乱码。原因网络设备MSC/VLR、HLR严格检查 DCS 字段遇到非 0x0F 编码的消息做了转码或丢弃。规范 7.1.9 允许网络设备忽略检查 DCS 字段做透明传输但设备默认配置可能是严格检查。解决联系网络侧确认 MSC/VLR、HLR 的 DCS 检查配置设置为忽略检查或透明传输。同时确认终端和 SP 都支持 UCS2(16bit)-GB13000 编码。如果终端不支持只能降级用 GSM 7bit中文就发不了。5.3 全国业务走归属地路由导致 HLR 过载现象全国 USSD 业务上线后HLR 负荷告警其他依赖 HLR 的业务受影响。原因全国业务采用了归属地接入方式所有请求都绕 HLR 中转。规范建议全国业务用拜访地接入但过渡期因为交换机不支持很多地区走了归属地方式。解决确认 MSC/VLR 是否支持到 USSDC 的直接接口。支持的话把全国业务接入码 150~199 的路由改为拜访地接入。不支持的话至少把 PUSH 类业务改为「从 HLR 查路由后直接下发」方式减少 HLR 中转次数。附录 A 的混合组网方案可以参考A 地支持拜访地接入就走拜访地B 地不支持就走归属地。5.4 业务接入码鉴权缺失导致 SP 越权现象某个 SP 向用户推送了不属于它业务范围的 USSD 消息用户投诉。原因USSDC 或 USSD 网关没有做业务接入码鉴权或者鉴权表配置错误。规范 7.1.8 要求 USSDC 保留业务接入码和应用服务的对应关系判断 SP 是否可以向移动用户发起该接入码对应的业务。解决检查业务接入码鉴权表确认每个 SP 代码只能发起其授权接入码的业务。如果独立建设了 USSD 网关鉴权功能在网关上做。定期审计 SP 的接入码权限别让一个 SP 拿到万能接入码。5.5 长消息拆分后顺序错乱或丢失现象用户收到长 USSD 消息内容顺序乱了或者只收到前半段。原因终端或 SP 不支持长消息拆分组合或者拆分后没有按序发送。规范 7.1.10 要求终端和 SP 支持长 USSD 信息的拆分和组合终端至少支持 229 个汉字。解决确认终端型号是否支持长消息。不支持的话SP 侧限制消息长度超过就截断或改用短信下发。支持的话检查拆分逻辑是否按序编号接收侧是否按序重组。长消息的拆分和重组要在应用层做别指望网络层帮你排序。6. 从规范到落地接入码规划表和超时配置的实操建议6.1 接入码规划表怎么填把规范第 9 章的编码原则落成一张可执行的规划表我一般按这个结构来接入码服务号码业务分类SP 代码路由方式计费方式*100#100银行查询BANK001拜访地按消息*101*1#101天气查询WEATHER01归属地按消息#101#101综合门户PORTAL01归属地免费*139*11#139积分查询POINTS01归属地按对话7878省内门户PROV01归属地免费填表时注意三点服务号码 100~149 走归属地150~199 走拜访地综合接入号用#101#或#111#利用业务转移做导航前缀尽量用*或#开头方便用户记忆。6.2 超时参数配置清单规范 7.1.3 给的超时参数落地时按这个清单配# USSDC 超时配置建议值 user_side_timeout30s # 移动用户侧超时建议30秒 app_side_timeout30s # 应用服务侧超时建议30秒 user_side_max180s # 用户侧响应时间最大值硬上限 app_side_max60s # 应用侧响应时间最大值硬上限 dialog_max_duration600s # 对话有效时间不超过10分钟配置逻辑建议值贴着 30 秒走最大值是保护上限不是目标值。对话有效时间 10 分钟是硬限制超时必须释放。特殊业务需要更长超时单独配置但不要超过规范给的最大值。6.3 验证方法用 MAP 消息抓包确认 MSISDN 和 DCS上线前用信令抓包工具确认两件事PSSR 消息里是否带了 MSISDNDCS 字段是否被透明传输。# 抓包过滤条件示例 # 过滤 MAP_PROCESS_UNSTRUCTURED_SS_REQUEST 消息 # 检查 PSSR 参数中是否包含 MSISDN 字段 # 检查 DCS 字段值是否为 0x0F 或其他编码如果 MSISDN 没带检查交换机 MAP 版本是否达到 6.3.0。如果 DCS 被改写检查网络设备的 DCS 检查配置。这两项确认通过基本业务流程就不会出大问题。6.4 一个具体技巧用综合接入号做业务灰度规范建议设 1~2 个综合接入号做门户导航。实际落地时可以把综合接入号当成灰度入口新业务先挂到综合菜单下观察一段时间稳定了再申请独立接入码。这样做的好处是新业务不用一开始就占用稀缺的 100~199 服务号码资源出问题影响面小用户从综合菜单进去发现不对退出就行收集到足够流量数据后再决定是否给独立接入码。我当年接手一个存量 USSD 平台时发现接入码规划一团乱100~199 号段被各种临时业务占满很多业务上线三个月就没人用了号码却收不回来。从那以后我每次做接入码规划都强制走一遍「综合接入号灰度 → 独立接入码申请 → 定期回收」的流程。号码资源是有限的别当免费资源随便发。希望帮到你。本文还有配套的精品资源点击获取