移動CMPP3:
- Msg_Fmt = 8 ;
Tp_Udhi = 1; - 可採用6字節協議頭,也可採用7字節協議頭,實測都通過。
- 6字節協議頭:
- MsgContent的前三個字節爲:0x05, 0x00, 0x03(0x05表示後面還有5字節,0x03表示後面還有3字節)
- 第四個字節爲批號,合成同條長短信的小短信填一樣的值即可。(同時給同個號碼發多條長短信的要分不同長短信填寫);
- 第五個字節爲Pk_total的值,即這批短信的總條數。
- 第六個字節爲Pk_number的值,即這條短信在長短信中的序號,從1開始。。
- 7字節協議頭:
- MsgContent的前三個字節爲:0x06, 0x08, 0x04(0x06表示後面還有6字節,0x04表示後面還有4字節)
- 第四、五個字節爲批號,合成同條長短信的小短信填一樣的值即可。(同時給同個號碼發多條長短信的要分不同長短信填寫);
- 第六個字節爲Pk_total的值
- 第七個字節爲Pk_number的值
- 6字節協議頭:
- MsgContent 在第6或7字節後加上要發送的短信內容,記得要UCS2編碼的哦。
聯通SGIP1.2
只測試了6字節協議頭的,方法與以上移動使用的6字節協議頭一樣。
MessageCoding= 8 ;
Tp_Udhi = 1;
MessageContent前三個字節爲:0x05, 0x00, 0x03
第四個字節爲批號;
第五個字節爲這批短信的總條數;
第六個字節這條短信在長短信中的序號,從1開始。
3、MessageContent在第6字節後加上要發送的短信內容的UCS2編碼
電信SMGP3:
- 設置tlv字段TP_udhi爲0x01,表示消息內容裏面包含消息頭(也就是說含長短信頭)
內容前面需要增加6個字段
- 字節一:包頭長度,固定填寫0x05;
- 字節二:包頭類型標識,固定填寫0x00,表示長短信;
- 字節三:子包長度,固定填寫0x03,表示後面三個字節的長度;
- 字節四到字節六:包內容:
- 字節四:長消息參考號,每個SP給每個用戶發送的每條參考號都應該不同,可以從0開始,每次加1,最大255,便於同一個終端對同一個SP的消息的不同的長短信進行識別;
- 字節五:本條長消息的的總消息數,從1到255,一般取值應該大於2;
- 字節六:本條消息在長消息中的位置或序號,從1到255,第一條爲1,第二條爲2,最後一條等於第四字節的值。
例子:
05 00 03 00 02 01
05 00 03 00 02 02你還需要設置PkTotal和PkNumber
這個字段如果不設置並不影響用戶手機對短信的拼裝,但是會影響ismp的健權和計費,一組pktotal pknumber裏面的數據ismp是當一條短信健權和計費。