有些应用比如LWM2M或者OMADM需要通过wap push来唤醒,因此需要解码wap push来区分是不是我们想要的类型
wap push解码成功后关键字段的含义
在解码成功后,数据的内容其实只包含下图中红色框里的部分。主要分为三个部分:
- user-date header,
- wireless session protocol
- 一些携带的消息的真实内容(一般也是依据某一个种应用协议编码,比如coap等)
user-date header里第一个字节就是user-date header的长度,除此之外我们就不感兴趣了。知道长度主要是为了获取wireless session protocol部分的起始字节地址。
wireless session protocol 里比较关键的是:
- PDU TYPE的类型,在第二个字节,通过这里可以知道当前这个消息时属于wap push还是普通短信
- header length :表示wireless session protocol里包含的header的长度
- Header里关键的是X-WAP-application-ID。这个就告诉你后面payload里的内容是属于那种协议的格式,0X9a就代表LWM2M,0x87代表OMADM
短消息解码
我做了一个三方库,后面会传github