PDU即協議數據單元,對應前面每種消息的消息格式。彩信的PDU和HTTP協議極爲類似,當然相對來說要簡單多了。它定義了一些常用的消息域,有的消息域是公有的,每種消息都可以使用,有的消息域是專用的,只有特定的消息才能使用。除了常用的消息域外,也可以自定義消息域,自定義消息域以X-打頭,但不能以X-Mms-打頭。常用的消息域如:
l X-Mms-Message-Type
l X-Mms-Transaction-ID
l X-Mms-MMS-Version
l Date
l From
l To
l Cc
l Bcc
l Subject
l X-Mms-Message-Class
l X-Mms-Expiry
l X-Mms-Delivery-Time
l X-Mms-Priority
l X-Mms-Sender-
l Visibility
l X-Mms-Delivery-Report
l X-Mms-Read-Reply
l Content-Type
PDU的類型有:
l 發送請求。m-send-req(終端<發送方>->彩信中心)
l 發送確認。m-send-conf(彩信中心->終端<發送方>)
l 彩信通知。m-notification-ind(發送PUSH:彩信中心<通過PUSH協議>->終端<接收方><特殊短信,包含URL>)
l 通知迴應。m-notifyresp-ind(收到PUSH迴應:終端<接收方>->彩信中心)
l 獲取彩信迴應。m-retrieve-conf(彩信中心->終端<接收方>)
l 接收確認。m-acknowledge-ind(終端<接收方>->彩信中心)
l 彩信回執。m-delivery-ind(彩信中心->終端<發送方>)
獲取彩信只是一個普通的HTTP GET請求,而沒有專門的PDU。
彩信的PDU編碼:彩信PDU在語義上與HTTP協議類似,但是其編碼方式並不一樣,爲了充分利用帶寬,彩信PDU採用二進制方式編碼。其編碼規則很簡單,預定義的消息域的KEY都有唯一的單字節編碼,如:
而消息域的Value部分,如果只有幾個固定的可選值,這幾個值也用單子節的編碼,由於這些值只出現在特定的上下文中,所以無需要全局唯一。