中國移動長短信--華爲短信網關

 
中國移動發送長短信 中國移動發送短信使用的 cmpp2.0或cmpp3.0協議。發送長短信只要改變幾個字段。

PK_total爲長短信被分割的總數,PK_number爲當前發送序號,從1開始編號,按順序。如果不對它進行設置,那麼移動將會對每條計費,不作爲一條計費。

msg_tpuhi等於1,表示Msg_conten中有頭。
Msg_Fmt設爲8,表示使用Unicode編碼,

移動網關發過來d超長短信了
//第一部分
E0 00 00 00               //4byte 數據總長度
05 00 00 00               //4byte 命令號
3F 38 0B 01               //4byte 流水號
31 3B 6E 0B A2 84 61 F0   //8byte msg_id
30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //21byte Dest_Id
00 00 00 00 00 00 00 00 00 00 //10byte Service_Id
00                        //1byte TP_pid
01                        //1byte TP_udhi
08                        //1byte Msg_Fmt
38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00 //21byte Src_terminal_Id
00                        //Registered_Delivery
8B                        //Msg_Length
06 08 04 00 2A
02                        //超長短信總條數
01                        //序號
00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 4E 00 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 00 61 00 61 00 61 00 61 00 61 00 61 //短信內容
00 00 00 00 00 00 00 00   //8byte Reserved
//第二部分
78 00 00 00
05 00 00 00
49 38 0B 01
31 3B 74 8B A2 84 62 0D
30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00
01
08
38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00
00
23
06 08 04 00 2A
02                       //超長短信總條數
02                       //序號
00 61 00 61 00 61 00 61 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 //短信內容
00 00 00 00 00 00 00 00 00 //8byte Reserved

實例:

//短信內容中的頭,由於手機不同其頭也不同。
char msgheader[] ={
0x05,               //頭的長度
0x08,0x00,0x04,
0x01,               //總條數
0x01                //序號
};


int nHeaderSize = sizeof (msgheader);

//把短信內容編碼成unicode
encodeUincode (msg_content);

//獲得分割總條數
Pk_total = getSubCount()

//設置msgheader
memset(msgheader+nHeaderSize-2,Pk_total,1);

for (int i=1; i<=Pk_total ; i++)
{
   Pk_number = i;

   //設置msgheader
   memset(msgheader+nHeaderSize-1,i,1);

   //拷貝msgheader到msg_content中。
   memcpy(Msg_Content, msgheader,nHeaderSize)

   //拷貝短信內容到msg_content中。
    memcpy(Msg_Content+nHeaderSize,編碼的短信內容,長度);
  
   //發送短信
SendSms ()
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章