论文部分内容阅读
摘要:本文详细分析了GSM03.40协议中TP-UDHI字段含义,结合各个运营商的协议,解决在实际互联互通过程中超过70个汉字短信的长消息不能正常合并成一条,在用户手机终端上显示的乱码的问题。
关键词:网关、协议、长消息、TP-UDHI
随着短信业务的迅速发展,加强技术支撑,提高用户满意度是当前维护工作的重中之重。在实际工作中发现傲天网关和华为网关互通过程中,双方对协议理解有偏差,多次联系双方厂家,仍不能解决问题,双方都认为自己对协议理解是正确的。
在《点对点短消息网间互通协议V1.2》中,Forward消息语法对头结构TP_udhi字段的规定:
TP_udhi 1 Integer GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。
参考了GSM03.40中的9.2.3.23中规定:
9.2.3.23 TP User Data Header Indicator (TP UDHI)
The TP User Data Header Indicator is a 1 bit field within bit 6 of the first octet of the following six PDUs:
- SMS SUBMIT,
- SMS-SUBMIT-REPORT
- SMS DELIVER,
- SMS-DELIVER-REPORT
- SMS-STATUS-REPORT
- SMS-COMMAND.
TP-UDHI has the following values.
Bit no. 6 0 The TP UD field contains only the short message
1 The beginning of the TP UD field contains a Header in addition to the short message
含义是TP-UDHI使用8位位组的第6个bit位,有两个数值0或1。当bit6为0时是一条短信,为1时还有后续的短信。
傲天互通网关对这个字段的理解是完全参考GSM03.409.2.3.23中的规定,使用了TP_udhi 8位位组的第6bit位。而华为互通网关只是参考GSM03.409.2.3.23中的数值的规定,没有使用TP_udhi 8位位组的第6bit位,使用的是TP_udhi 8位位组的第0bit位,因为华为说是右对齐的含义就是使用第0bit位。
由于双方对协议理解有偏差,头结构TP_udhi字段使用的bit位不能统一,造成目前全国范围内傲天网关和华为网关互通过程中,超过70个汉字短信的长消息不能正常合并成一条,在用户手机终端上显示的是乱码。
针对此问题,请信产部的专家进行了澄清,答复指出:
目前在运营商互通过程中出现对UDHI字段理解不同,主要存在两种理解,一种认为该字段填写0x01表示消息内容有UDH,一种认为该字段填写0x40表示消息内容有UDH,也就是应该用Bit0还是Bit6来标识UDHI的问题。
除了信产部的点对点互通协议,各个运营商也有自己的协议,均有UDHI字段的定义。如下:
由上述国内各个协议定义可见,均引用了GSM03.40协议中9.2.3.23节的定义,该协议中有如下定义:
9.2.3.23 TP User Data Header Indicator (TP UDHI)
The TP User Data Header Indicator is a 1 bit field within bit 6 of the first octet of the following six PDUs:
- SMS SUBMIT,
- SMS-SUBMIT-REPORT
- SMS DELIVER,
- SMS-DELIVER-REPORT
- SMS-STATUS-REPORT
- SMS-COMMAND.
TP-UDHI has the following values.
Bit no. 6 0 The TP UD field contains only the short message
1 The beginning of the TP UD field contains a Header in addition to the short message
可见,在GSM协议中明确说明UDHI字段应该使用Bit6,因此使用Bit6=1,也即0x40来表示消息内容中包含UDH信息是正确的。
华为公司修改网关程序后,傲天网关和华为网关短信互通过程中保持了一致。目前超过70汉字的长消息到达手机终端后,能正常的重组成一条短信。
关键词:网关、协议、长消息、TP-UDHI
随着短信业务的迅速发展,加强技术支撑,提高用户满意度是当前维护工作的重中之重。在实际工作中发现傲天网关和华为网关互通过程中,双方对协议理解有偏差,多次联系双方厂家,仍不能解决问题,双方都认为自己对协议理解是正确的。
在《点对点短消息网间互通协议V1.2》中,Forward消息语法对头结构TP_udhi字段的规定:
TP_udhi 1 Integer GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。
参考了GSM03.40中的9.2.3.23中规定:
9.2.3.23 TP User Data Header Indicator (TP UDHI)
The TP User Data Header Indicator is a 1 bit field within bit 6 of the first octet of the following six PDUs:
- SMS SUBMIT,
- SMS-SUBMIT-REPORT
- SMS DELIVER,
- SMS-DELIVER-REPORT
- SMS-STATUS-REPORT
- SMS-COMMAND.
TP-UDHI has the following values.
Bit no. 6 0 The TP UD field contains only the short message
1 The beginning of the TP UD field contains a Header in addition to the short message
含义是TP-UDHI使用8位位组的第6个bit位,有两个数值0或1。当bit6为0时是一条短信,为1时还有后续的短信。
傲天互通网关对这个字段的理解是完全参考GSM03.409.2.3.23中的规定,使用了TP_udhi 8位位组的第6bit位。而华为互通网关只是参考GSM03.409.2.3.23中的数值的规定,没有使用TP_udhi 8位位组的第6bit位,使用的是TP_udhi 8位位组的第0bit位,因为华为说是右对齐的含义就是使用第0bit位。
由于双方对协议理解有偏差,头结构TP_udhi字段使用的bit位不能统一,造成目前全国范围内傲天网关和华为网关互通过程中,超过70个汉字短信的长消息不能正常合并成一条,在用户手机终端上显示的是乱码。
针对此问题,请信产部的专家进行了澄清,答复指出:
目前在运营商互通过程中出现对UDHI字段理解不同,主要存在两种理解,一种认为该字段填写0x01表示消息内容有UDH,一种认为该字段填写0x40表示消息内容有UDH,也就是应该用Bit0还是Bit6来标识UDHI的问题。
除了信产部的点对点互通协议,各个运营商也有自己的协议,均有UDHI字段的定义。如下:
由上述国内各个协议定义可见,均引用了GSM03.40协议中9.2.3.23节的定义,该协议中有如下定义:
9.2.3.23 TP User Data Header Indicator (TP UDHI)
The TP User Data Header Indicator is a 1 bit field within bit 6 of the first octet of the following six PDUs:
- SMS SUBMIT,
- SMS-SUBMIT-REPORT
- SMS DELIVER,
- SMS-DELIVER-REPORT
- SMS-STATUS-REPORT
- SMS-COMMAND.
TP-UDHI has the following values.
Bit no. 6 0 The TP UD field contains only the short message
1 The beginning of the TP UD field contains a Header in addition to the short message
可见,在GSM协议中明确说明UDHI字段应该使用Bit6,因此使用Bit6=1,也即0x40来表示消息内容中包含UDH信息是正确的。
华为公司修改网关程序后,傲天网关和华为网关短信互通过程中保持了一致。目前超过70汉字的长消息到达手机终端后,能正常的重组成一条短信。