2. ISMG向SP送交短信(CMPP_DELIVER)操作
CMPP_DELIVER操作的目的是ISMG把从短信中心或其它ISMG转发来的短信送交SP,SP以CMPP_DELIVER_RESP消息回应。
CMPP_DELIVER消息定义(ISMGàSP)
字段名 |
字节数 |
属性 |
描述 |
Msg_Id |
8 |
Unsigned Integer |
信息标识。 生成算法如下: 采用64位(8字节)的整数: (1)时间(格式为MMDDHHMMSS,即月日时分秒):bit64~bit39,其中 bit64~bit61:月份的二进制表示; bit60~bit56:日的二进制表示; bit55~bit51:小时的二进制表示; bit50~bit45:分的二进制表示; bit44~bit39:秒的二进制表示; (2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中; (3)序列号:bit16~bit1,顺序增加,步长为1,循环使用。 各部分如不能填满,左补零,右对齐。 |
Dest_Id |
21 |
Octet String |
目的号码。 SP的服务代码,一般4--6位,或者是前缀为服务代码的长号码;该号码是手机用户短消息的被叫号码。 |
Service_Id |
10 |
Octet String |
业务标识,是数字、字母和符号的组合。 |
TP_pid |
1 |
Unsigned Integer |
GSM协议类型。详细解释请参考GSM03.40中的 9.2.3 .9。 |
TP_udhi |
1 |
Unsigned Integer |
GSM协议类型。详细解释请参考GSM03.40中的 9.2.3 .23,仅使用1位,右对齐。 |
Msg_Fmt |
1 |
Unsigned Integer |
信息格式: 0:ASCII串; 3:短信写卡操作; 4:二进制信息; 8:UCS2编码; 15:含GB汉字。 |
Src_terminal_Id |
32 |
Octet String |
源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)。 |
Src_terminal_type |
1 |
Unsigned Integer |
源终端号码类型,0:真实号码;1:伪码。 |
Registered_Delivery |
1 |
Unsigned Integer |
是否为状态报告: 0:非状态报告; 1:状态报告。 |
Msg_Length |
1 |
Unsigned Integer |
消息长度,取值大于或等于0。 |
Msg_Content |
Msg_length |
Octet String |
消息内容。 |
LinkID |
20 |
Octet String |
点播业务使用的LinkID,非点播类业务的MT流程不使用该字段。 |
当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:
字段名 |
字节数 |
属性 |
描述 |
Msg_Id |
8 |
Unsigned Integer |
信息标识。 SP提交短信(CMPP_SUBMIT)操作时,与SP相连的ISMG产生的Msg_Id。 |
Stat |
7 |
Octet String |
发送短信的应答结果,含义详见表一。SP根据该字段确定CMPP_SUBMIT消息的处理状态。 |
Submit_time |
10 |
Octet String |
YYMMDDHHMM(YY为年的后两位00-99,MM:01-12,DD:01-31,HH:00-23,MM:00-59)。 |
Done_time |
10 |
Octet String |
YYMMDDHHMM。 |
Dest_terminal_Id |
32 |
Octet String |
目的终端MSISDN号码(SP发送CMPP_SUBMIT消息的目标终端)。 |
SMSC_sequence |
4 |
Unsigned Integer |
取自SMSC发送状态报告的消息体中的消息标识。 |
表一 Stat字段定义
Message State |
Final Message States |
Description |
DELIVERED |
DELIVRD |
Message is delivered to destination |
EXPIRED |
EXPIRED |
Message validity period has expired |
DELETED |
DELETED |
Message has been deleted. |
UNDELIVERABLE |
UNDELIV |
Message is undeliverable |
ACCEPTED |
ACCEPTD |
Message is in accepted state(i.e. has been manually read on behalf of the subscriber by customer service) |
UNKNOWN |
UNKNOWN |
Message is in invalid state |
REJECTED |
REJECTD |
Message is in a rejected state |
MA:xxxx |
MA:xxxx |
SMSC不返回响应消息时的状态报告 |
MB:xxxx |
MB:xxxx |
SMSC返回错误响应消息时的状态报告 |
MC:xxxx |
MC:xxxx |
没有从SMSC处接收到状态报告时的状态报告 |
CA:xxxx |
CA:xxxx |
SCP不返回响应消息时的状态报告 |
CB:xxxx |
CB:xxxx |
SCP返回错误响应消息时的状态报告 |
DA:xxxx |
DA:xxxx |
DSMP不返回响应消息时的状态报告 |
DB:xxxx |
DB:xxxx |
DSMP返回错误响应消息时的状态报告 |
SA:xxxx |
SA:xxxx |
SP不返回响应消息时的状态报告 |
SB:xxxx |
SB:xxxx |
SP返回错误响应消息时的状态报告 |
IA:xxxx |
IA:xxxx |
下一级ISMG不返回响应消息时的状态报告 |
IB:xxxx |
IB:xxxx |
下一级ISMG返回错误响应消息时的状态报告 |
IC:xxxx |
IC:xxxx |
没有从下一级ISMG处接收到状态报告时的状态报告 |
注意:
1. 其中ACCEPTED为中间状态,网关若从短信中心收到后应丢弃,不做任何操作;
2. Stat字段长度为7个字节,填写时应填表一中Final Message States中的缩写形式,如状态为DELIVERED时填写DELIVRD,依此类推;
3. SP等待状态报告缺省时间为48小时。
CMPP_DELIVER_RESP消息定义(SP à ISMG)
字段名 |
字节数 |
属性 |
描述 |
Msg_Id |
8 |
Unsigned Integer |
信息标识(CMPP_DELIVER中的Msg_Id字段)。 |
Result |
4 |
Unsigned Integer |
结果: 0:正确; 1:消息结构错; 2:命令字错; 3:消息序号重复; 4:消息长度错; 5:资费代码错; 6:超过最大信息长; 7:业务代码错; 8: 流量控制错; 9~ :其他错误。 |
3. SP向ISMG发起删除短信(CMPP_CANCEL)操作
CMPP_CANCEL操作的目的是SP通过此操作可以将已经提交给ISMG的短信删除,ISMG将以CMPP_CANCEL_RESP回应删除操作的结果。
CMPP_CANCEL消息定义(SP à ISMG)
字段名 |
字节数 |
属性 |
描述 |
Msg_Id |
8 |
Unsigned Integer |
信息标识(SP想要删除的信息标识)。 |
CMPP_CANCEL_RESP消息定义(ISMG à SP)
字段名 |
字节数 |
属性 |
描述 |
Success_Id |
4 |
Unsigned Integer |
成功标识。 0:成功; 1:失败。 |
4. 链路检测(CMPP_ACTIVE_TEST)操作
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。