联通H2协议是一种专用于中国联通呼叫转移指令接口的通信协议,它主要用于处理和控制移动电话号码的呼叫转移功能。协议设计了一种特定的数据包结构,以确保服务的稳定性和高效性。以下是对H2协议的详细说明:
1. **包头数据**:
- 版本号信息(A0):2位的ASCII字符,用于标识协议的当前版本。
- 数据包大小(A1):5位,以字节为单位,表示数据包的总长度,不足时右补空格。
- 流水号(A2):20位,作为每笔交易的唯一标识,数据校验包可以不包含流水号。
- 标志(A3):1位,1表示成功,0表示失败,仅适用于响应包。
- 服务类型(A4):12位,遵循中国联通客服中心H2接口编码规则。
- 业务号码(A5):20位,即移动电话号码。
- 业务号码类型(A6):1位,区分电话号码、帐号或其他类型。
- 营业点(A7):6位,业务受理地点的标识。
- 营业员(A8):8位,业务受理人的标识。
- 包编号(A9):5位,指示流水的包序号。
- 最后一包标志(A10):1位,1表示最后的数据包,无后续包;0表示非最后一包,有后续包。
- 错误码(A11):5位,在失败时检查的错误代码。
2. **包体定义**:
- 数据包最大长度为4K,多条记录业务可通过多包发送。
- 字段间用制表符(0x09)分隔,记录间用回车换行符(0x0d,0x0a)分隔,包结束用SUB字符(0x1a)。
- 不同服务类型的请求包和应答包包体内容不同。
- 无包体返回时,只有包头和包结束符。
- 包体字段为固定长度字符串,不允许出现不可打印字符。
- 补空格规则:金额字段(Number(10,2))左补空格,其他字段右补空格。
3. **呼叫转移服务类型**:
- 无条件呼转(110183000000):请求包中包含86位的H2包头和1位的开通关闭标志,0表示关闭,1表示开通。返回包同样包含86位的H2包头和128位的预留字段。
- 遇忙呼转(110184000000):请求和返回包结构与无条件呼转相同,但服务类型不同。
4. **错误处理**:
- 当标志位为0时,表示操作失败,此时错误码字段会提供具体错误信息,帮助诊断问题。
通过以上描述,我们可以看出联通H2协议在处理呼叫转移业务时的严谨性和标准化,确保了通信的准确性和可靠性。这种协议设计考虑到了各种可能的业务场景,包括单包传输和多包传输,以及成功和失败情况下的数据反馈,为联通的呼叫转移服务提供了强大的技术支持。