CMPP3.0實現物聯網絡卡發簡訊遇到的問題
阿新 • • 發佈:2019-02-12
當下物聯網發展迅猛,物聯網絡卡可以接受簡訊指令,實現千里之外儘可掌控。本人做過一個這類專案,把相關經驗記錄下來,分享給需要的人。
物聯網絡卡通訊其實跟電話卡一樣,可以使用CMPP協議。不過由於物聯網絡卡位數為13位,未測試CMPP2.0是否支援,直接保險一點用的CMPP3.0協議。
因為CMPP3.0中號碼欄位增加到32位,還增加了號碼型別欄位,可能是為了擴充套件不同型別的卡。
Dest_terminal_Id | 32*DestUsr_tl | Octet String | 接收簡訊的MSISDN號碼 |
---|---|---|---|
Dest_terminal_type | 1 | Unsigned Integer | 接收簡訊的使用者的號碼型別,0:真實號碼;1:偽碼。 |
關於編碼格式,一開始嘗試了5種常用的編碼,簡訊接收到中文還是亂碼,解決方法如下:
*目前物聯網絡卡通訊,如果是英文內容,則只支援Ascii碼,也就是Msg_Fmt必須設定成0
如果是傳送中文內容,則只支援UCS2編碼,即Msg_Fmt必須設定成8
另外有個特別費解的問題是,如果是發中文內容,簡訊閘道器會自動在簡訊後面加上一串尾巴,類似【ayf】等。這個問題在開發的時候必須注意,以免傳送的指令不能解析,需要做一些邏輯處理把尾巴去掉。*
關於號碼選擇型別:
物聯網的使用者號碼型別選擇Dest_terminal_type=0即可。若選擇1會報錯。
其他:
如遇到簡訊閘道器返回碼,可查詢以下網址看返回碼解釋
常見返回碼:173 是物聯網絡卡沒開通簡訊功能造成的。