1. 程式人生 > >物聯網通訊與普通短信通訊的區別和要註意的地方

物聯網通訊與普通短信通訊的區別和要註意的地方

手機短信 如果 solid ack .com 查詢 報錯 ron sisd

CMPP3.0中號碼字段增加到32位,還增加了號碼類型字段,可能是為了擴展不同類型的卡。

Dest_terminal_Id

32*DestUsr_tl

Octet String

接收短信的MSISDN號碼。

Dest_terminal_type

1

Unsigned Integer

接收短信的用戶的號碼類型,0:真實號碼;1:偽碼。

可是用CMPP3.0協議,也就是說發送短信到物聯網卡、從物聯網卡回復短信回來,都可以直接用這套CMPP3.0協議。那麽跟發手機短信有何不同之處呢,以下就是幾點不同:

1.關於編碼格式

目前物聯網卡通訊,如果是英文內容,則只支持Ascii碼,也就是Msg_Fmt必須設置成0

Msg_Fmt

1

Unsigned Integer

信息格式:

0:ASCII串;

3:短信寫卡操作;

4:二進制信息;

8:UCS2編碼;

15:含GB漢字。。。。。。

如果是發送中文內容,則只支持UCS2編碼,即Msg_Fmt必須設置成8

另外有個特別費解的問題是,如果是發中文內容,短信網關會自動在短信後面加上一串尾巴,類似【ayf】等。這個問題在開發的時候必須註意,以免發送的指令不能解析,需要做一些邏輯處理把尾巴去掉。

2.關於長短信

我們知道一條短信只能發140個字節的內容,如果實際要發的內容超過這個數,就必須拆成多條發送,這樣會有一些影響。為了發長短信,我們的CMPP發送程序必須做一些改造,具體請參考我的另一篇博文CMPP3.0 長短信實現方案

而對於物聯網卡來說,收發長短信必須使用 7 位的協議頭格式:06 08 04 XX XX MM NN

這也是要註意的一點,否則解析發送都會出錯。

3.關於用戶號碼類型

物聯網的用戶號碼類型選擇Dest_terminal_type=0即可。若選擇1會報錯。

其他

如遇到短信網關返回碼,可查詢以下網址看返回碼解釋

http://www.cnblogs.com/tuyile006/p/5849722.html

常見返回碼:173 是物聯網卡沒開通短信功能造成的。

這就是開發物聯網通訊過程中的經驗。

提綱

1 物聯網數據卡系統源碼——前篇

1.1 物聯網技術架構圖

1.2 物聯網的主要應用領域

2 物聯網數據卡系統源碼——通信模塊

2.1 通信模塊整體概述

2.2 協議封裝和實現

2.3 長短信

2.4 粘包的處理

2.5 物聯網通訊與普通短信通訊的區別和要註意的地方

3 物聯網數據卡系統源碼——Windows服務模塊

3.1 Windows服務模塊概述

3.2 Windows服務模塊實現

3.3 高並發回調處理

3.4 部署安裝

物聯網通訊與普通短信通訊的區別和要註意的地方