午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

請問 彩信push消息是一個怎么樣的信令流程呢

 紅黑單 2012-03-15


  本文記錄了彩信的發(fā)送流程的一些細節(jié)及其所需要使用到的參考規(guī)范。

(1) 彩信的發(fā)送流程

1)首先,當彩信中心需要向手機發(fā)送彩信時,會將彩信內(nèi)容保存到自己的存儲器中,并且準備一個URI,通過這個URI,手機能夠讀取到存儲器中的彩信的內(nèi)容;

2)彩信中心會向手機發(fā)起一個m-notification-ind指示消息;

3)手機收到這個指示消息后,便會向根據(jù)m-notification-ind指示消息中的URI(在Content-Location參數(shù)中指示),向彩信發(fā)服務器發(fā)起一個HTTP GET(或WSP GET,從跟蹤到的消息來看,就是HTTP GET的格式)請求,來獲取彩信的內(nèi)容;

4)彩信服務器會應答HTTP/WSP GET請求,返回內(nèi)容,內(nèi)容的格式是:application/vnd.wap.mms-message,X-Mms-Message-Type頭域的值是m-retrieve-conf,以通知手機,這是彩信的內(nèi)容。

(2) 消息的封裝與規(guī)范

涉及到的規(guī)范可能有:

·   3GPP TS 23.140 Multimedia Messaging Service (MMS)
 ?。@個規(guī)范定義了收發(fā)彩信的流程,但對具體的消息格式則沒有定義;

·   3GPP TS 23.040 Technical realization of the Short Message Service (SMS)
 ?。@個規(guī)范定義了短消息協(xié)議的詳細的編碼格式。

·   WAP Wireless Session Protocol Specification
WAP-230-WSP-20010705-a, Approved Version 5 July 2001)

·   WAP Wireless Datagram Protocol
WAP-259-WDP-20010614-a, Version 14-Jun-2001)
   
(--這個文檔還介紹了WDP協(xié)議是如何封裝在各消息中傳輸?shù)?,包括:GSM SMS, CDMA SMS,ANSI-136等)

·   WAP MMS Encapsulation Protocol
WAP-209-MMSEncapsulation-20020105-a, Version 05-Jan-2002)

各協(xié)議間的關系是: 

·   WDP是WAP的數(shù)據(jù)報協(xié)議(就是TCP/IP中的UDP協(xié)議)--通過GSM SMS只能承載WDP消息;

·   WTP是WAP的事務傳服協(xié)議(是有連接的,類似于TCP/IP中的TCP協(xié)議)(WTP協(xié)議在彩信收發(fā)的過程中沒有使用,所以這個筆記就沒有記錄了);

·   WSP是WAP的應用基礎,定義了WAP的一些基本操作,這些操作是建立在WDP和WTP之上的。如:WSP的S-Unit-Push消息映射到WDP中,其實就是一條單向的WDP消息--T-DUnitdata.req。
當這條WDP承載于GSM短信中,就是一條GSM短信;

·   WAP MMS Encapsulation Protocol則定義了,MMS如何通過WAP消息來進行收發(fā)。如,之前提到的m-notification-ind就是WAP MMS Encapsulation規(guī)范中定義的消息類型。


信令流程各階段的相關規(guī)范的詳細描述:

a) 彩信中心向手機發(fā)起的通知指示消息(m-notification-ind),通常是通過短信下發(fā)的(也即:WAP over SMS方式)。也就是說,下發(fā)的短信,不是普通的文字短信,而是一個WAP消息,具體的說是一條S-Unit-Push消息(在WSP規(guī)范中定義)。

b)這條m-notification-ind短信是一條怎樣的短信呢?

·   首先,短信類型是SMS_Deliver;

·   TP-UDHI為1,即:數(shù)據(jù)區(qū)前面有一個Header;

·   TP-DCS應該為0x04,即8-bit編碼,這樣數(shù)據(jù)區(qū)就是140個字節(jié),通常Header是6個字節(jié),所以可用的數(shù)據(jù)區(qū)是134個字節(jié)。這134個字節(jié)就可以保存WDP的內(nèi)容。

·   因為TP-UDHI為1,所以數(shù)據(jù)區(qū)(TP-UD)的前段有一個Header,所以TP-UDL字段指示的長度是Header + TP-UD長度之和。而Header的格式在3GPP TS 23.040規(guī)范中有描述,即:
由Header的長度,外加若干個
IEI(信息標識)+IEIDL(信息內(nèi)容的長度)+ IED(信息數(shù)據(jù)內(nèi)容)組成。

·   對于WDP消息,必須包含IEI=0x05的信息。根據(jù)3GPP TS 23.040,IEI為0x05是指Application port addressing scheme, 16 bit address,即:信息要指示兩個端口號--源端口號和目標端口號。
源端口和目標端口號將告訴手機,這條短消息應該發(fā)給哪個協(xié)議棧來處理。

·   對于m-notification-ind消息,源端口號必須為:9200(0x23F0) -- WAP connectionless session service, 目標端口號則必須是:2948 (0x0B84) -- WAP PUSH。這樣的端口信息向手機指示了:這是一條WAP無連接會話消息(即基于WDP的WSP消息),發(fā)給手機的WAP PUSH應用協(xié)議棧來處理。
對于端口號的定義,可以參考iana的端口號分配表:http://www./assignments/port-numbers

·   如果一段數(shù)據(jù)區(qū)保存不了所有的WDP消息,則需要兩條(或更多)短信的數(shù)據(jù)區(qū)來存儲,這時就需要使用長短信分塊技術,這就需要用到IEI=0x00的信息數(shù)據(jù)了。但是這是普通的WAP PUSH才可能用到,彩信的notification一般不會有這么長的內(nèi)容。 

·   好了,下面說說短信數(shù)據(jù)區(qū)(TP-UD)的內(nèi)容。因為根據(jù)Header的端口指示,手機已經(jīng)知道這是基于WDP的WSP消息了,所以數(shù)據(jù)區(qū)就直接按WSP的規(guī)范來解碼(WDP層的參數(shù)只有源地址和目標地址,而這在短信協(xié)議的Header區(qū)已經(jīng)指示了,所以沒有需要編碼的字段了,所以數(shù)據(jù)區(qū)的一開始就是WSP的內(nèi)容)。

·   根據(jù)WSP規(guī)范,WSP的內(nèi)容每一個字節(jié)是TID。這是一個ID,在不同的消息中有不同的作用,在Push消息中,這表示Push-ID,標識一次Push請求);當然,某些消息可能沒有這個ID;
第二個字節(jié)為PDU Type,用于告訴WSP協(xié)議棧,這個WSP消息是什么消息。在彩信通知消息,這個值應該是:
0x06
-- Push。也就是說,這個就告訴WSP協(xié)議棧,這是S-Unit-Push消息了(因為這是在WDP中封裝的,相當于是WDP層通過T-DUnitdata.ind發(fā)給WSP層的,所以WSP層知道,這是Unit消息);
第三個字節(jié)是S-Unit-Push頭域的長度,后面就是S-Unit-Push消息的頭域的內(nèi)容了,使用二進制或ASCII的方式保存了一些頭域的值,需要使用到的頭域包括:

1) Content-Type?。〈酥当仨毺?/font>application/vnd.wap.mms-message(代碼:0x3e,在http://www./wina/wsp-content-type.htm中有定義,而在WAP MMS Encapsulation Protocol中也指示這個值必須填Application/vnd.wap.mms-message)。當Content-Type填這個值時,這就表示S-Unit-Push的內(nèi)容是彩信消息;

2) X-Wap-Application-Id -- 此值必須填編碼0x04(實際填的值是0x84,具體要參考WSP的變長數(shù)據(jù)值保存格式),表示
mms.ua0x04表示mms.ua,這個值在http://www./wina/push-app-id.htmhttp://www./Tech/omna/omna-push-app-id.aspx中都有定義,而在WAP MMS Encapsulation Protocol中也指示,Application-Id必須填。)

3) Push-Flag -- 這個頭域是可選的,不是必須填的,如果要填應該填(0x07,實際寫入0x87)。
Push-Flag的值的定義在另一個規(guī)范(
WAP Push OTA Protocol)中有相關的描述:
6.4.1.3. Push Flag
Push-Flag = "Push-Flag" ":" 1*7BIT
; bit mask flags to indicate the following:
; 1: initiator URI is authenticated.
; 10: content is trusted.
; 100: last push message.
; other: reserved for future use.


·   S-Unit-Push頭域的后面就是S-Unit-Push的內(nèi)容了。而內(nèi)容的格式(類型)是根據(jù)Content-Type來確定的。而前面已經(jīng)說了,Content-Type的值是application/vnd.wap.mms-message,所以WSP的應用層知道這是彩信(MMS)消息,于是就根據(jù)規(guī)范WAP MMS Encapsulation Protocol的要求來進行解碼。

·   application/vnd.wap.mms-message數(shù)據(jù)的格式是:
頭域 + 內(nèi)容。(某些操作可能沒有
內(nèi)容,那就只有頭域了。至于有頭域和內(nèi)容的消息,頭域何時結束、內(nèi)容從哪里開媽, 目前還沒有詳細的去研究?。?/font>

·   對于彩信通知消息,頭域需要包含這些內(nèi)容,詳見規(guī)范WAP MMS Encapsulation Protocol中的6.2. Multimedia Message Notification節(jié))。下面說說這些頭域中,最重要的幾個:
1) X-Mms-Message-Type: 其值必須是
m-notification-ind0x82);
 ?。?這表示這是彩信通知消息,手機收到此消息表示彩信中心有該手機的彩信,手機應該去獲取此彩信
2) X-MMS-Content-Location:其值是一個URI地址,告訴手機應該到哪里去獲取彩信的內(nèi)容;

·   彩信的m-notification-ind消息只有頭域沒有內(nèi)容。

·   當手機收到m-notification-ind消息后,就可以通過HTTP GET向URI所指示的彩信中心服務器,請求獲取彩信內(nèi)容。

·   而彩信中心服務器在返回HTTP GET的請求時,Content-Type也應該是application/vnd.wap.mms-message,并且內(nèi)容中Message Type的值應該填m-retrieve-conf0x84)。

(3)
相關信息

普通WAP Push的content type:

0x2e -- application/vnd.wap.sic


彩信通知的content type:

0x3e -- application/vnd.wap.mms-message

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多