Edison's NoteSsss

Everything about me

Category: 3GPP/3GPP2

SMS CALL FLOW BETWEEN GSM AND CDMA NETWORK

SMS CALL FLOW

 

The above fig illustrates sms flow between GSM and CDMA network.CDMA network uses the concept of sudo HLR for SMS routing.
·         MOBILE subscriber from GSM network initiates an Originating SMS to be delivered to a CDMA network.
·         Now MSC A forwards the SMS packet to SMSC-A (MO-FORWARD-SM).
·         ROUTING USES SCCP CALLING ADDRESS: GT OF MSC AND
SCCP CALLED ADDRESS GT OF SMSC(SERVICE CENTRE ADDRESS)
·         INFORMATION CONTANS: SMS,A NUMBER, B NUMBER, SC ADDRESS
·         SMSC AFTER CHECKING BASIC AUTHENTICATION, RESPONDS WITH MO-FORWARD-SM-ACK
·         ONCE THIS ACK REACHES TO HANDSET, ORIGINATOR KNOWS THAT HIS MESSAGES HAS BEEN SUBMITED INTO THE SMSC
·         NOW SMSC NEEDS TO KNOW THE LOCATION OF SUBSCRIBER B. SO SMSC INITIATES SRI QUERY(SEND ROUTING INFORMATION). SMSC    SENDS THE PACKET TO GW MSC-A, WHICH FURTHER FORWARDS TO CDMA-GWMSC.
·         CDMA GWMSC FORWARDS THIS PACKET TO PSEUDO-HLR (RESIDES WITHIN SMSC-B).
·         PSEUDO-HLR RESPONDS WITH A FAKE-IMSI, FAKE-VLR ADDRESS(GT OF SMSC-B)
·         SMSC DOES NORMAL MT-FSM TO THIS FAKE-VLR GT RECEIVED IN SRI-ACK.
·         SMSC-B RESPONDS TO THIS MT-FSM WITH MT-FSM-ACK.
·         SMSC-A KNOWS THAT ITS MESSAGE HAS BEEN DELIVERED AND INFORMS ORIGINATOR SUBSCRIBER IF “STATUS-REPORT” HAS BEEN REQUESTED.
·         SMSC-B NEEDS TO KNOW WHERE ITS CDMA SUBSCRIBER B IS LOCATED
·         SO SENDS SMS-REQ MESSAGE TO LOCAL HLR.ONCE THE LOCATION OF SUBSCRIBER IS KNOW
·         SMS IS DELIVERED USING MT-SMDPP MESAGE.

转自:http://whytelecom.com/content/sms-call-flow-between-gsm-and-cdma-network

3GPP 协议导读

很有用的资料 做个备份~
转载自 kiah_sala
最终编辑 rdstop
24.008 Mobile radio interface Layer 3 specification;
Core network protocols; Stage 3
Must Have
這是我最常用到的spec之一,對我而言也是最入門的一份。大多數spec是用來查的,但是這份從第四章開始是可以一頁頁讀過的。它定義了Mobility Management(MM/GMM)、Call Control(CC)、Session Management(SM)的程序還有OTA Message封包內容(照spec本身的用字:定義radio interface procedures)。另外,要找MM/SM的Timer,要找error cause (CC/GPRS SM)也都是這份。
25.331 Radio Resource Control (RRC);
Protocol specification
Must Have
份量很驚人的一份常用spec。比較難逐頁讀起,因為有很多程序性的東西。通常是用想的,把程序背後的邏輯想懂,不然就是多查幾次就會記起來。那張很有名的RRC States and State Transitions就定義在這份裡面。另外,所有的System Information Block、RRC程序、Handover程序、RAB程序、PAGING TYPE 1和PAGING TYPE 2的格式與定義,還有那堆幾a幾b幾c幾d..的measurements全都在這邊。讀完24.008和25.331算是可以解決掉7成以上的OTA message,剩下的,它們會幫忙refer來refer去。RRC protocol Timer請查這份。
23.060 General Packet Radio Service (GPRS); Service description;Stage 2 Must Have
PS domain的重量級spec。那張有名的GPRS Core Network的架構圖、一堆u-plane、c-plane的堆疊架構圖、UE Operation Mode分成class A, class B, class C(此分類適用於所謂俗的2G… 即A/Gb mode… 詳見22.060)或PS/CS mode(此分類僅適用通俗所謂3G… 即Iu mode)、Packet Data Protocol States、兩個domain的Paging Co-ordination通通都在這邊。PDP Context Preservation在第9章。
27.007 AT command set for User Equipment (UE) Must Have
AT command的兩份spec之一,收錄和SMS沒有直接關係的部份。還是新人的時候,我幾乎是每天抱著這份spec一邊啃一邊試的。離開新人時代,這份的查詢度也還經常居高不下。+CNUM, +CIMI, +CREG, +CGREG, +CLCC, +CGACT, +CLCK, +CLIP, +CGDCONT, +CGATT, +CFCC, +COPS, +CRSM等等等都在這份囉。雖然這份也有一語帶到+ES,但是它是躲在要coco的ITU-T V.250裡。
25.401 UTRAN overall description Must Have
這不算一份常用spec,但是這是一份3GPP新鮮人該翻翻的spec。5.1開宗明義畫清楚core network、UTRAN和UE間的關係,接著畫分User Plane和Control Plane的概念,再來,有一張UTRAN Architecture,讓人看清楚Iu、Iur、Iub三種Interface到底在誰和誰中間,還有RNS、RNC、Node B和cells間的關係。透過這張圖也可以簡單地了解為甚麼會有serving RNS、drift RNS的概念,這樣,s-RNTI、d-RNTI、c-RNTI、u-RNTI這些名詞不用背也可以記得清楚囉。
24.007 Mobile radio interface signalling layer 3;
General aspects
Must Have
這份比較屬於舊GSM範圍,比較少用到,通常是碰到TI solution才會查到它。它會被我列成must have是因為它有一張很經典的Protocol architecture of Non Access Stratum (CS/PS MS side)的架構圖,可以讓我們一眼看清RR, (G)MM, CM(CC/SM/SS/SMS)的關係。
25.301 Radio Interface Protocol Architecture Must Have
頁數算很少,但是算非常架構性的一份大spec,要知道L1、L2、L3倒底差在哪,還有各層間的channel到底怎樣mapping,都在這份。這應該也是比較算用來查的spec,對一個新手而言,光是看到一大堆channel卻不了解它們究竟是做什麼的時候,這份 spec應該很難看得進去。另外,R6起就同時收有分別屬HSDPA/HSUPA的HS-DSCH/E-DCH definition,這份就不重複列在下面的HS spec專區了。
27.005 Equipment (DTE – DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (CBS) Must Have
兩大AT command spec之一,這份從名字可以知道是和SMS還有CBS有關的。較常用的標的有+CMT (MT SMS)、+CMGS (MO SMS)、CMGR (SMS read from USIM/memory)、+CMGW (SMS write to USIM/memory)、+CSCA (Service Centre Address)
23.040 Technical realization of the Short Message Service (SMS) Must Have
顧名思義就是SMS,要看懂CP Data就找它囉,做USIM的OTA download也會用到。另外,做到NITZ的話會refer到定義time/timezone的部份。這份的好朋友是23.038。
23.038 Alphabets and language-specific information Must Have
從頁數看很羽量級的spec,但是包含Data Coding Scheme和GSM 7-bit Packing兩個重要的主題。這份做MWI(Message Waiting Indication)也會用到。
21.905 Vocabulary for 3GPP Specifications Must Have
3GPP專用小辭典? 第一次遇上什麼不懂的名詞,先來找它就對了。
23.003 Numbering, addressing and identification Must Have
從這份的title很清楚的就可以知道這份文件有什麼,舉凡IMSI、TMSI、P-TMSI、MSISDN、LAI、RAI、CI、CGI、IMEI、IMEISV、TLLI(Temporary Logical Link Identity)等等的構造,還有算IMEI CD需要的Luhn check計算法都在這裡。
24.011 Point-to-Point (PP) Short Message Service (SMS)
support on mobile radio interface
Good to Have
對我來講,這份比較常用的時機似乎大多是用來查sms的error cause,CP-Cause還有RP-ERROR都在這裡頭。
25.101 User Equipment (UE) radio transmission and reception (FDD) Good to Have
☆ Table 5.0是UTRA FDD frequency bands,R6有從Band I到Band VI,R7增加了Band VII、Band VIII、Band IX和Band X,R8更增加到Band XIV,但是各版均加註other frequency bands is not precluded。
☆ Channel Spacing是5MHz、Channel Raster是200kHz,還有UARFCN怎算也是定義在這份。
26.071 AMR speech CODEC; General description It depends
AMR簡介。有那張有名的哪種rate是和那種spec相容的表。這份比較像pointer,叫讀者refer這邊那邊的。
26.101 Adaptive Multi-Rate (AMR) speech codec frame structure It depends
有AMR codec frame format (AMR IF1)和AMR Interface Format 2的結構。也有AMR幾kbps是Frame Type多少等對照表。不過目前我遇到的都是format 2,這份可用之處暫時不多。
26.103 Speech codec list for GSM and UMTS It depends
有Codec Bitmap。我是從24.008被refer過來的,要從CC/SEPUP裡面查support codec的時候會用到。
22.042 Network Identity and Timezone (NITZ); Service description, Stage 1 It depends
NITZ本身就是optional feature,所以這份rating相對給比較低。它有定義NITZ information的傳輸和使用。也有考慮到Local Time Zone (LTZ)、summertime等問題。至於TZ要怎算,請見23.040。
25.304 User Equipment (UE) procedures in idle mode and procedures for cell reselection in connected mode It depends
標題很長,簡而言之就是要怎樣選cell。在idle mode的部份,專注於Access Stratum。對實作而言,這份spec還是有很多曖昧地帶或說空間。 (題外話,每次有PM自以為專業地對著no service的手機喊說”沒有camp到網路”,我就會很想請他們來讀讀這份加24.008。首先,和網路發生關係的動詞是attach,再者,no service的手機,不見得是沒有camp到任何一個cell的。)
23.122 Non-Access-Stratum (NAS) functions related to Mobile Station (MS) in idle mode It depends
☆和25.304密不可分的一份spec,這份專門講NAS在idle該怎樣選網路,像是UE在power on的時候是自動或手動分別該如何選。(NAS/AS在idle時的Function要怎分在25.304)Steering of roaming在收到USAT REFRESH command後該怎辦的程序也在這份裡。
☆這份spec裡也有一些GSM COMPACT的線索。[See also 22.011] 23.122比較detail, 22.011講比較overall的構面。
☆從R7開始,可以找到EHPLMN(Equivalent HPLMN),同樣地,要在31.102找到EF EHPLMN(6FD9),也要用R7以上的版本。
22.030 Man-Machine Interface (MMI) of the User Equipment (UE) It depends
– 這份如果站在一般手機使用者的角度來講,應該是比較像”密技”的東西。像是IMEI要按*#06#叫出來,要怎樣按call holding,然後要怎樣把被hold住的call叫回來,怎樣按MultiParty、ECT(Explicit Call Transfer),怎樣註冊/啟動Supplementary Service等等…。
– International Access Function (“+” key)和TON(type of number)的關係
HSDPA / HSUPA related 3GPP specs
HSDPA starts from R5 / HSUPA(EUL) starts from R6
25.308 High Speed Downlink Packet Access (HSDPA); Overall description; Stage 2 HSDPA
☆ HSDPA採adaptive modulation (R6有QPSK[M]和16-QAM[O],R7再增64-QAM[O]), hybrid ARQ等技術達高傳輸率、低延遲。HSDPA所定義的新transport channel是HS-DSCH。
☆ HSDPA New MAC entities [Note]
☆ 第9章可以找到換HS-DSCH cell和Active set update之間的差異和關係。
☆ 這份文的R6和R7有非常大的差異,R7定義到FDD only的HS-DSCH reception in CELL_FACH,打破先前HSDPA只在CELL_DCH的觀念。
25.309 FDD enhanced uplink;Overall description;Stage 2 HSUPA
在這份文件裡,可以找到:
1) 常常被演講文件稱作HSUPA網路架構圖的”Protocol Architecture of E-DCH”
2) HSUPA是由Node B來控制排程(Node B controlled scheduling)
3) UE應該要如何handle “Serving Grant(SG)”
25.321 Medium Access Control (MAC) protocol specification HSDPA/HSUPA
【HSUPA】
☆ 定義隨著EUL而產生的MAC-es/MAC-e這兩個entity。
☆ SG-Table (9.2.5.2.1.1)
25.214 Physical layer procedures (FDD) HSDPA/HSUPA
【HSDPA】
☆ (also refer to 25.211)HSDPA channels and procedures: HS-SCCH(High Speed Physical Downlink Shared Control Channel)、HS-PDSCH(High Speed Physical Downlink Shared Channel)、HS-DSCH (High Speed Downlink Shared Channel)、HS-DPCCH (High Speed Dedicated Physical Control Channel)
☆ CQI(Channel Quality Indicator)的定義和mapping table
【HSUPA】
☆ 定義隨EUL所增加的E-AGCH、E-HICH、E-RGCH
USIM related 3GPP/ETSI specs
31.102 Characteristics of the Universal Subscriber Identity Module (USIM) application
最常用的部份是第4章,有USIM每個欄位(EF; Elementary File)的名稱格式和內容物,USIM phonebook的EF構造在4.4.2,像是Name, Number1在EFADN(Abbreviated dialling numbers)裡頭、Number2在EFANR (Additional Number)裡、EFADN寫不完的寫到EFEXT1等等等…注意,這份沒有包括DFGSM下面的EF,要找像是EFPLMNsel, EFBCCH之類的,請洽51.011.
ETSI 102.221 Smart Cards; UICC-Terminal interface; Physical and logical characteristics
1) [31.101/31.102 vs. 102.221比較] 差別是後者較為廣泛,前者針對3G的USIM.
2) 以下這堆command還有SW(status word)都可以從102.221查。除了做USAT會用到,AT command的+CRSM最後也會refer到這邊(+CRSM各command的p1,p2,p3該是什麼)。READ BINARY, UPDATE BINARY, READ RECORD, SELECT, FETCH, TERMINAL PROFILE, ENVELOPE, TERMINAL RESPONSE, GET RESPONSE
51.011(ETSI TS 151 011) Specification of the Subscriber Identity Module – Mobile Equipment (SIM-ME) interface
☆樓上那份找不到的一些SW在這份裡頭。
☆10.3.7 EF SST (SIM service table) 功能類似於USIM的EF UST,EF SST和USIM的EF UST(USIM Service Table)的Identifier都是6F38,但兩者的bit定義和排列順序都不太一樣。
個人用筆記/INDEX區
21.111 USIM and IC card requirements
[5.2] Unblocking of a blocked PIN shall not be possible. (翻成白話是PUK被鎖就無藥可救。)
21.902 Evolution of 3GPP system
R99, R4, R5, R6的內容差在哪。3GPP的”理念”等等等…
22.011 Service accessibility
international roaming, national roaming, roaming in shared networks。 3.2.2.4.1 FPLMN經過Manual Selection成功註冊到網路後,可從EFFPLMN移除。[note]
22.091/23.091 Explicit Call Transfer (ECT)
22.091是stage 1, 定義ECT怎樣打,還有可以什麼時候trasfer 23.091 (stage 3)有解釋SS-error code還有OTA message的procedure. (Note: 但是就是有operator不照遊戲規則玩…)
23.040 Technical realization of the Short Message Service (SMS)
1) MWI有三個level, 第一個protocol id,第二個Data Coding Scheme,第三個是運用TP-UD (TP-UDH).
2) Figure 9.2.3.24 (GSM 7-bit fill bits)筆記
24.002 GSM – UMTS Public Land Mobile Network (PLMN)
Access Reference Configuration
MS(Mobile Station)和UE(User Equipment)的組成圖. GSM的MS相對於3G的UE。
24.080 supplementary services specification; Formats and coding
查CC/Facility的operation_code(See4.2)
25.215 Physical layer – Measurements (FDD)
Transport Channel BLER (Block Error Rate)
25.306 UE Radio Access capabilities
FDD HS-DSCH physical layer categories (俗稱HSDPA UE Category)
25.423 UTRAN Iur interface RNSAP signalling
C-RNTI的定義和可能的值 (see 9.2.1.14)
25.433 UTRAN Iub interface Node B Application Part (NBAP) signalling
9.2.2.13Dc 可以找到Serving Grant Value可以介於0-38,但是38表示zero grant
44.018 Mobile radio interface layer 3 specification; Radio Resource Control (RRC) protocol
DTM (Dual Transfer Mode)

CDMA SMS pdu解码

转自:http://blog.lytsing.org/archives/180.html

 

收到两条短信,现在用AT把它们读取出来。

at+cmgr=5

+CMGR:5,”REC UNREAD”,”15338896020″,”UNKNOWN NUMBER”,”N/A”,176

“0000021002020702c54ce225a8a80601c0089d00031001e801
8e2230018801780193108b09fb087b317b012b6a080162e38c8e6
3b422e07b65980162b942e872e4b3b4246f7a70500162e54bbf9a7
053f67c7e3801729f544c0b108bb423918a75d00163317a70033b0
ae07ce3e00162b943108bb4236b54158a71680162ff5a7283b423
71c33b2b71c29dd80173108b09fb087b317c1a933cb80162b943659
b6a0bb4227122e5c00306081229192611″

at+cmgr=21

+CMGR:21,”REC UNREAD”,”15338896020″,”UNKNOWN NUMBER”,”N/A”,96

“0000021002020702c54ce225a8a806014c084d00031001f8013
e20f00190017801900162dfca7004b1acb1abb4239614c67001629
63b2b12b9827ae310c001729f544c0b108bb423918a75d00163317
a70029f52e07cf0f80306081229192616″

[deli@deli example]$ ./test_pdu_decode

0000021002020702c54ce225a8a80601c0089d00031001e8018e22
30018801780193108b09fb087b317b012b6a080162e38c8e63b422
e07b65980162b942e872e4b3b4246f7a70500162e54bbf9a7053f67
c7e3801729f544c0b108bb423918a75d00163317a70033b0ae07ce3
e00162b943108bb4236b54158a71680162ff5a7283b42371c33b2b7
1c29dd80173108b09fb087b317c1a933cb80162b943659b6a0bb422
7122e5c00306081229192611

sms context == 1/2我愿意是急流,山里的小河,在崎岖的路上,岩石上经过.只要我的爱人,是一条小鱼,在我的浪花中,快乐的游来游去.我愿意是荒林,在河流的两岸

SM_ENCODING == 4

TPA == 15338896020

SCTS == 19:26:11 12/29/08

[deli@deli example]$ ./test_pdu_decode

0000021002020702c54ce225a8a806014c084d00031001f8013e20f
00190017801900162dfca7004b1acb1abb4239614c6700162963b2
b12b9827ae310c001729f544c0b108bb423918a75d00163317a700
29f52e07cf0f80306081229192616

sms context == 2/2,对一阵阵的狂风,勇敢地作战.只要我的爱人,是一只小鸟

SM_ENCODING == 4

TPA == 15338896020

SCTS == 19:26:16 12/29/08

PDU串解析

CDMA的pdu格式与GSM的相差很多,不能直接用肉眼看出来。第一条内容比较长,就拿第二条pdu串来分析吧。

1.首先将PDU串打成PDU包

将PDU串相邻的两个ascii字符拼凑成一个8bit数据

如下:

00 00 02 10 02 02 07 02 c5 4c e2 25 a8 a8 06 01 4c 08 4d 00 03 10 01 f8 01 3e 20 f0 01 90 01 78 01 90 01 62 df ca 70 04 b1 ac b1 ab b4 23 96 14 c6 70 01 62 96 3b 2b 12 b9 82 7a e3 10 c0 01 72 9f 54 4c 0b 10 8b b4 23 91 8a 75 d0 01 63 31 7a 70 02 9f 52 e0 7c f0 f8 03 06 08 12 29 19 26 16

消息传送类型: 0×00 point to point message(表示点对点消息)

下面的内容为短消息的各个字段 每个字段分为三个部分: 字段类型(ID)(8bit)、字段长度(Length)(8bit)和字段内容.

第一个字段: 00 02 10 02

0×00, 表示uTeleserviceID字段

0×02, 字段长度,该长度必须为2,否则为错误的pdu信息

字段内容为:0×1002,十进制是4098,

第二个字段:02 07 02 c5 4c e2 25 a8 a8

0×02, SMS_TL_ORIG_ADDR 表示 (短信发送地址)

0×07, 字段长度为7

字段内容: 02 c5 4c e2 25 a8 a8

只看前面几个 02 c5 4c e2的:

0000 0010 1100 0101 0100 1100 1110 0010 0010

取第一个bit 0 表示 RIL_CDMA_SMS_DIGIT_MODE_4_BIT 是4bit压缩

第二个bit 0 表示 RIL_CDMA_SMS_NUMBER_MODE_NOT_DATA_NETWORK

下来8个bit 是 00 0010 11 = 11,表示号码长度 为11

由于是4bit压缩 ,后面44个bit(4*11)表示号码,解析出来是15338896020

第三个字段: 06 01 4c

表示SMS_TL_BEARER_RPLY_OPT

第四个字段:08 4d 00 03 10 01 f8 01 3e 20 f0 01 90 01 78 01 90 01 62 df ca 70 04 b1 ac b1 ab b4 23 96 14 c6 70 01 62 96 3b 2b 12 b9 82 7a e3 10 c0 01 72 9f 54 4c 0b 10 8b b4 23 91 8a 75 d0 01 63 31 7a 70 02 9f 52 e0 7c f0 f8 03 06 08 12 29 19 26 16

0×08, 表示SMS_TL_BEARER_DATA字段(短信内容)

0x4d,字段长度为77

这个字段也分成各个子字段:

第一子字段: 00 03 10 01 f8

0×00 Mesage Id

0×03 内容长度

10 01 f8 === 0001 0000 0000 0001 1111 1000

0001 表示 DELIVER 短信

0000 0000 0001 1111表示 message id.

紧接后面的 1, 表示HEADER_IND

第二个子字段:01 3e 20 f0 01 90 01 78 01 90 01 62 df ca 70 04 b1 ac b1 ab b4 23 96 14 c6 70 01 62 96 3b 2b 12 b9 82 7a e3 10 c0 01 72 9f 54 4c 0b 10 8b b4 23 91 8a 75 d0 01 63 31 7a 70 02 9f 52 e0 7c f0 f8

0×01, 字段类型

0x3e(62),字段长度

20 f0 01 === 0010 0000 1111 0000 0000 0001

0×20 的前5个bit为00100, 为0×04, 表示短信编码方式为RIL_CDMA_SMS_ENCODING_UNICODE (UNICODE)

0×20 的后3个bit, 0xf0的前5个bit,为 000 1111 0, 即0x1e (30),表示有30个UNICODE 字符。0xf0的后3个bit,0×01的8个bit,再加上0×90的前5个bit,

0000 0000 0011 0010 拼成一个16位数是 0×0032 表示字符 :2,在vim下了解一个字符的16进制码很简单,光标在该字符,按ga,底端显示结果如下:

<2> 50, Hex 32, Octal 062 2,1 All

依次下去,内容就是上面运行./test_pdu_decode 的结果: 2/2,对一阵阵的狂风,勇敢地作战.只要我的爱人,是一只小鸟

第三个子字段: 03 06 08 12 29 19 26 16

这是一个时间戳字段: 08年12月29号19时26分16秒(短消息发送时间)

字符串分析结束。当然,还有很多可选项在这条短信没有加上,更完整的SMS格式,请参考CDMA SMS standard on 3GPP2 website.

实际编码时,一个while循环遍历,再加上switch简单的状态机即可。

长短信何在?

用的这个模组,不支持长短信,厂家回答“作了预处理,把User Data Header去掉了,因为客户一般不愿意自行处理这个User Data Header,他们只要内容、号码等其它信息。所以,模块送出的PDU中不含有User Data Header。”

为实现长短信的拆分和组合功能,终端应支持 IS637C 协议中关于长短消息处理的参数 HEADER_IND,以及在短消息数据中增加对 User Data Subparameter 参数增加用户数据消息头(User Data Header)和短信拆分、组合的处理。HEADER_IND 为消息头标识位,用于指示 User Data Header 是否包含消息头, 若包含消息头则 HEADER_IND 设置为’1’,否则设置为’0’。具体的拆分与组合,请参考IS637C,或 《中国电信CDMA终端需求规范-SMS分册-V1.0》。需要说明的是,对长短信的处理,有的CDMA模组厂家为了让用户省事,帮你处理了用户数据头,正如前面所看到的,自动加上(1/2), (2/2)等,若想自己手动解析,务必跟模组厂家沟通确认好。

CDMA MMS PUSH 彩信通知

转自:http://blog.lytsing.org/archives/203.html

 

这里用的模组是 via威盛的cdma。首先,设置短信通知格式:

AT+CNMI=2,1

用一cdma手机给模组发一条彩信,由于URL 链接较长,网络可能会连续发送多条(常见是 2 条)Wap Push 短信,应根据长短信标准拼接后再做进一步处理。

+CMT:”RAM”,4,186,”000002fdea020602069966084006010008a8000310f130018e046
000188035000c2820c0008008fc02e11a4189185c1c1b1a58d85d1a5bdb8bdd9b990b9d
d85c0b9b5b5ccb5b595cdcd859d9402d21ebe12320a61113daddde108ccd5b191490402
36420da1d1d1c0e8bcbcc4c0b8c8ccd0b8c4ccdcb8c4c4e8e0c0e0c0bddd85ccbd113da
ddde108ccd5b1914904022016040c0a8c02243600c4cccce4c8e0dcc4c8d0d402280030
60907031436470a01400e06040d32cc1080″

+CMT:”RAM”,5,63,”000002fdea020602069966084006014c082d000310eb9001130088
00188035000850020000806023808a3dc003060907031436470a01400e06040d32cc1080″

分析一下第一条:

teleserviceId为65002,就可以判断这时一条彩信通知,GSM的是通过分析端口号来做判断。进一步分析,提取到 TP_UD为:

00 03 10 06 A0 01 85 04 18 00 10 01 1F 80 5C 23 48 31 23 0B 83 83 63 4B 1B 0B A34B 7B 71 7B B373 21 73 BB 0B 81 73 6B 6B 99 6B 6B 2B 9B 9B 0B 3B 28 05 A4 3D 7C 24 64 14 C2 227B 5B BB C2 1199 AB 63 22 92 08 04 6C 84 1B 43 A3 A3 81 D1 79 79 89 81 71 91 99 A1 71 89 99 B971 89 89 D1 C181 C1 81 7B BB 0B 99 7A 22 7B 5B BB C2 11 99 AB 63 22 92 08 04 40 2C 08 18 15 18 04 48 6C 01 8999 99 C9 91 C1 B9 89 91 A1 A8 04 50

Wap push短信 PDU 中的 User data,按照短信标准解析,前面部分是 Header信息,如 Msgid、Num_field 等,后面部分是 Chari 内容。Chari 内容需要再进一步解析,中国电信的 Wap Push 短信PDU 中的 User data 里的 Chari 也分为两部分,前半部分是 Header 信息,类似于 User data的 Header 信息,后面部分数据才是 WDP 数据,需要按照 WDP 协议(Wireless Datagram Protocol)进行解析。

WDP

Msg Indetifier:

SUBPARAMETER_ID 8 0000000

SUBPARAM_LEN 8 00000011

MESSAGE_TYPE 4 0001 (Deliver) /0010 (Submit)

MESSAGE_ID 16 -Generated –

HEADER_IND 1 0

RESERVED 3 000

User Data

SUBPARAMETER_ID 8 00000001

SUBPARAM_LEN 8 Number of Octets in this Sub Parameter, not including SUBPARAMETER_ID and SUBPARAM_LEN

MESSAGE_ENCODING 5 00000

MESSAGE_TYPE 0 Ignored

NUM_FIELDS 8 This field shall be set to the number of characters included in this subparameter.

CHARi Variable Characters. This shall include NUM_FIELDS occurrences of this field

RESERVED 0-7 All zeroes used for padding.

(This field shall contain the number of bits required to make the entire subparameter an integer number of octets in length.

CHARi

MSG_TYPE 8 00000000

TOTAL_SEGMENTS 8 Total number of segments

SEGMENT_NUMBER 8 The Segment Number

DATAGRAM (NUM_FIELDS – 3)*8 Segmented WDP Datagram

WDP Datagram Segment

SOURCE_PORT 16 Source Port

DESTINATION_PORT 16 Destination Port(2948)

DATA N*8 N bytes of Data from the Layer above WDP

按照上面的格式,解析CHARI就是

00 02 00 23 F0 0B 84 69 06 24 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 77 61 70 2E 6D 6D73 2D 6D 65 73 73 61 67 65 00 B4 87 AF 84 8C 82 98 44 4F 6B 77 78 42 33 35 6C 6452 41 00 8D 9083 68 74 74 70 3A 2F 2F 31 30 2E 32 33 34 2E 31 33 37 2E 31 31 3A 38 30 38 30 2F77 61 73 2F 444F 6B 77 78 42 33 35 6C 64 52 41 00 88 05 81 03 02 A3 00 89 0D 80 31 33 33 39 3238 37 31 32 3435 00 8A

00 MSG_TYPE

02 TOTAL_SEGMENTS

00 SEGMENT_NUMBER

23 F0 SOURCE_PORT

0B 84 DESTINATION_PORT

69 06 24 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 77 61 70 2E 6D 6D73 2D 6D 65 73 73 61 67 65 00 B4 87 AF 84 8C 82 98 44 4F 6B 77 78 42 33 35 6C 6452 41 00 8D 9083 68 74 74 70 3A 2F 2F 31 30 2E 32 33 34 2E 31 33 37 2E 31 31 3A 38 30 38 30 2F77 61 73 2F 444F 6B 77 78 42 33 35 6C 64 52 41 00 88 05 81 03 02 A3 00 89 0D 80 31 33 33 39 3238 37 31 32 3435 00 8A DATA

这是第一条的 DATA,同样分析第二条的 TP_UD为:

00 03 10 06 A0 01 0A 00 40 00 10 0C 04 70 11 47 B8

CHARI为

00 02 01 80 8E 02 28 F7

DATA为80 8E 02 28 F7

和第一条合并起来,那么DATA就是

69 06 24 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 77

61 70 2E 6D 6D73 2D 6D 65 73 73 61 67 65 00 B4 87 AF 84 8C 82 98 44 4F 6B 77 78 42 33 35 6C 6452 41 00 8D 9083 68 74 74 70 3A 2F 2F 31 30 2E 32 33 34 2E 31 33 37 2E 31 31 3A 38 30 38 30 2F77 61 73 2F 444F 6B 77 78 42 33 35 6C 64 52 41 00 88 05 81 03 02 A3 00 89 0D 80 31 33 33 39 3238 37 31 32 3435 00 8A80 8E 02 28 F7

61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 7761 70 2E 6D 6D73 2D 6D 65 73 73 61 67 65 00 == application/vnd.wap.mms-message

B4 87: Push Flags: 87

AF 84: X-Wap-Application: 04

8C 82: X-Mms-Message-Type: m-notification-ind

98 44 4F 6B 77 78 42 33 35 6C 6452 41 00 Transaction-ID: DOkwxB35ldRA

8D 90 : X-Mms-mms-version : 1.0

83 68 74 74 70 3A 2F 2F 31 30 2E 32 33 34 2E 31 33 37 2E 31 31 3A 38 30 38 30 2F77 61 73 2F 444F 6B 77 78 42 33 35 6C 64 52 41 00 Content-location:http://10.234.137.11:8080/DOkwxB35ldRA

88 05 81 03 02 A3 00 expirty:

89 0D 80 31 33 33 39 3238 37 31 32 3435 From: 1339287124

8A80 message-class:”personal”

8E 02 28 F7 message-size:

注: B4,AF,8C,98 等,是高位加1(0×80)之后的content type.

© 2017 Edison's NoteSsss

Theme by Anders NorenUp ↑