• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            手機(jī)短信的PDU編碼和解碼

            共有三種方式來(lái)發(fā)送和接收SMS信息:Block Mode, Text Mode和PDU Mode。其中PDU Mode被所有手機(jī)支持,可以使用任何字符集,這也是手機(jī)默認(rèn)的編碼方式。

            發(fā)送短消息常用Text和PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元)模式。使用Text模式收發(fā)短信代碼簡(jiǎn)單,實(shí)現(xiàn)起來(lái)十分容易,但最大的缺點(diǎn)是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,也能發(fā)送英文短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符,它將一串7-bit的字符(最高位為0)編碼成8-bit的數(shù)據(jù),每8個(gè)字符可“壓縮”成7個(gè);8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;而UCS2編碼用于發(fā)送Unicode字符。在這三種編碼方式下,PDU串的用戶信息(TP-UD)段最大容量(可以發(fā)送的短消息的最大字符數(shù))分別是160、140和70。這里,將一個(gè)英文字母、一個(gè)漢字和一個(gè)數(shù)據(jù)字節(jié)都視為一個(gè)字符。
            PDU串的用戶信息長(zhǎng)度(TP-UDL),在各種編碼方式下意義有所不同。7-bit編碼時(shí),指原始短消息的字符個(gè)數(shù),而不是編碼后的字節(jié)數(shù)。8-bit編碼時(shí),就是字節(jié)數(shù)。UCS2編碼時(shí),也是字節(jié)數(shù),等于原始短消息的字符數(shù)的兩倍。如果用戶信息(TP-UD)中存在一個(gè)頭(基本參數(shù)的TP-UDHI為1),在所有編碼方式下,用戶信息長(zhǎng)度(TP-UDL)都等于頭長(zhǎng)度與編碼后字節(jié)數(shù)之和。如果采用GSM 03.42所建議的壓縮算法(TP-DCS的高3位為001),則該長(zhǎng)度也是壓縮編碼后字節(jié)數(shù)或頭長(zhǎng)度與壓縮編碼后字節(jié)數(shù)之和。 

            PDU相當(dāng)于一個(gè)數(shù)據(jù)包,它由構(gòu)成消息(SMS)的信息組成。作為一種數(shù)據(jù)單元,它必須包含源/目的地址、保護(hù)(有效)時(shí)間、數(shù)據(jù)格式、協(xié)議類(lèi)型和正文,正文長(zhǎng)度可達(dá)140字節(jié),它們都以十六進(jìn)制表示。PDU結(jié)構(gòu)根據(jù)短消息由移動(dòng)終端發(fā)起或以移動(dòng)終端為目的而不同。每條消息可以發(fā)送140個(gè)字節(jié),由于本系統(tǒng)中最長(zhǎng)的數(shù)據(jù)串沒(méi)有超過(guò)140個(gè)字節(jié),因此數(shù)據(jù)均可以用一條消息來(lái)發(fā)送。
            一般的PDU編碼由A B C D E F G H I J K L M十三項(xiàng)組成。
            A:短信息中心地址長(zhǎng)度,2位十六進(jìn)制數(shù)(1字節(jié))。
            B:短信息中心號(hào)碼類(lèi)型,2位十六進(jìn)制數(shù)。
            C:短信息中心號(hào)碼,B+C的長(zhǎng)度將由A中的數(shù)據(jù)決定。
            D:文件頭字節(jié),2位十六進(jìn)制數(shù)。
            E:信息類(lèi)型,2位十六進(jìn)制數(shù)。
            F:被叫號(hào)碼長(zhǎng)度,2位十六進(jìn)制數(shù)。
            G:被叫號(hào)碼類(lèi)型,2位十六進(jìn)制數(shù),取值同B。
            H:被叫號(hào)碼,長(zhǎng)度由F中的數(shù)據(jù)決定。
            I:協(xié)議標(biāo)識(shí),2位十六進(jìn)制數(shù)。
            J:數(shù)據(jù)編碼方案,2位十六進(jìn)制數(shù)。
            K:有效期,2位十六進(jìn)制數(shù)。
            L:用戶數(shù)據(jù)長(zhǎng)度,2位十六進(jìn)制數(shù)。
            M:用戶數(shù)據(jù),其長(zhǎng)度由L中的數(shù)據(jù)決定。J中設(shè)定采用UCS2編碼,這里是中英文的Unicode字符。
            PDU編碼協(xié)議簡(jiǎn)單說(shuō)明
            例1 發(fā)送:SMSC號(hào)碼是+8613800250500,對(duì)方號(hào)碼是13693092030,消息內(nèi)容是“Hello!”。從手機(jī)發(fā)出的PDU串可以是
            08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01
            對(duì)照規(guī)范,具體分析:
            分段 含義 說(shuō)明
            08 SMSC地址信息的長(zhǎng)度 共8個(gè)八位字節(jié)(包括91)
            91 SMSC地址格式(TON/NPI) 用國(guó)際格式號(hào)碼(在前面加‘+’)
            68 31 08 20 05 05 F0 SMSC地址 8613800250500,補(bǔ)‘F’湊成偶數(shù)個(gè)
            11 基本參數(shù)(TP-MTI/VFP) 發(fā)送,TP-VP用相對(duì)格式
            00 消息基準(zhǔn)值(TP-MR) 0
            0D 目標(biāo)地址數(shù)字個(gè)數(shù) 共13個(gè)十進(jìn)制數(shù)(不包括91和‘F’)
            91 目標(biāo)地址格式(TON/NPI) 用國(guó)際格式號(hào)碼(在前面加‘+’)
            68 31 96 03 29 30 F0 目標(biāo)地址(TP-DA) 8613693092030,補(bǔ)‘F’湊成偶數(shù)個(gè)
            00 協(xié)議標(biāo)識(shí)(TP-PID) 是普通GSM類(lèi)型,點(diǎn)到點(diǎn)方式
            00 用戶信息編碼方式(TP-DCS) 7-bit編碼
            00 有效期(TP-VP) 5分鐘
            06 用戶信息長(zhǎng)度(TP-UDL) 實(shí)際長(zhǎng)度6個(gè)字節(jié)
            C8 32 9B FD 0E 01 用戶信息(TP-UD) “Hello!”
            例2 接收:SMSC號(hào)碼是+8613800250500,對(duì)方號(hào)碼是13693092030,消息內(nèi)容是“你好!”。手機(jī)接收到的PDU串可以是
            08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21
            對(duì)照規(guī)范,具體分析:
            分段 含義 說(shuō)明
            08 地址信息的長(zhǎng)度 個(gè)八位字節(jié)(包括91)
            91 SMSC地址格式(TON/NPI) 用國(guó)際格式號(hào)碼(在前面加‘+’)
            68 31 08 20 05 05 F0 SMSC地址 8613800250500,補(bǔ)‘F’湊成偶數(shù)個(gè)
            84 基本參數(shù)(TP-MTI/MMS/RP) 接收,無(wú)更多消息,有回復(fù)地址
            0D 回復(fù)地址數(shù)字個(gè)數(shù) 共13個(gè)十進(jìn)制數(shù)(不包括91和‘F’)
            91 回復(fù)地址格式(TON/NPI) 用國(guó)際格式號(hào)碼(在前面加‘+’)
            68 31 96 03 29 30 F0 回復(fù)地址(TP-RA) 8613693092030,補(bǔ)‘F’湊成偶數(shù)個(gè)
            00 協(xié)議標(biāo)識(shí)(TP-PID) 是普通GSM類(lèi)型,點(diǎn)到點(diǎn)方式
            08 用戶信息編碼方式(TP-DCS) UCS2編碼
            30 30 21 80 63 54 80 時(shí)間戳(TP-SCTS) 2003-3-12 08:36:45  +8時(shí)區(qū)
            06 用戶信息長(zhǎng)度(TP-UDL) 實(shí)際長(zhǎng)度6個(gè)字節(jié)
            4F 60 59 7D 00 21 用戶信息(TP-UD) “你好!”

            詳細(xì)解析:
             0891683108200505F011190D91683105155694F50008FF10008FF044F60597D
               <1>短信中心地址字段:0891 
                08:Address-Lengt(地址長(zhǎng)度),短信息中心地址長(zhǎng)度為8個(gè)字節(jié),是(91)+(683108200505F0)的長(zhǎng)度,8個(gè)8位字節(jié)
             91地址類(lèi)型:10010001       Bit7:1。始終為1       Bits 6,5,4:Type-of-Number(號(hào)碼類(lèi)型):001,代表Internation Number。也即是號(hào)碼前加“+”。注意:對(duì)某些比較特殊的號(hào)碼,例如手機(jī)與小靈通的互通時(shí),這里不能設(shè)置為001,而要設(shè)置成000,代表號(hào)碼前沒(méi)有“+”,否則無(wú)法接收。
            下面是GSM03.40協(xié)議號(hào)碼類(lèi)型的解釋?zhuān)?br> 0 0 0   Unknown
             0 0 1   International number
             0 1 0   National number
             0 1 1   Network specific number
             1 0 0   Subscriber number
             1 0 1   Alphanumeric(coded according to TS03.38 7-bit default alphabet)
             1 1 0   Abbreviated number
             1 1 1   Reserved for extension
             ll not interpret reserved values but will store them as received.
                   Bits 3,2,1,0:Numbering-plan-identification(號(hào)碼鑒別),0000—未知,0001—ISDN/電話號(hào)碼(E.164/E.163),1111—留作擴(kuò)展;一般默認(rèn)為0001,表示電話號(hào)碼類(lèi)型的。下面是GSM03.40號(hào)碼鑒別的解釋?zhuān)?br>Bits3 2 1 0
            0 0 0 0    Unknown
            0 0 0 1    ISDN/telephone numbering plan (E.164/E.163)
            0 0 1 1    Data numbering plan (X.121)
            0 1 0 0    Telex numbering plan
            1 0 0 0    National numbering plan
            1 0 0 1    Private numbering plan
            1 0 1 0    ERMES numbering plan (ETSI DE/PS 3 01-3)
            1 1 1 1    Reserved for extension
            All other values are reserved.
            <2>短信中心號(hào)碼:683108200805F0
            一個(gè)字節(jié)內(nèi)反轉(zhuǎn),8613800280500,如果長(zhǎng)度為奇數(shù)則需要加“F”補(bǔ)齊。比如號(hào)碼為:+8613505165495,去掉"+"后在末尾添加F變?yōu)椋?613505165495F,再將手機(jī)號(hào)碼的奇數(shù)位和偶數(shù)位的相交換為683105155694F5
            <3>FirstOctet字段:1119
                 (1)11       包含TP-MTI(2bit),TP-RD(1bit),TP-VPF(2bit),TP-RP(1bit),TP-UDHI(1bit),TP-SRR(1bit)
            二進(jìn)制表示形式:0 0 0 10 0 01
            TP-MTI:01 TP-Message-Type-Indicator(消息類(lèi)型指示符)

                 Bit1,0:00—讀出(Deliver); 01—提交(Submit)
            Bit1,0:01指示為SMS-SUBMIT類(lèi)型 
            下面是GSM03.40的解釋?zhuān)?br> bit1 bit0  Message type
             0     0    SMS-DELIVER (in the direction SC to MS)
             0     0    SMS-DELIVER REPORT (in the direction MS to SC)
             1     0    SMS-STATUS-REPORT (in the direction SC to MS)
             1     0    SMS-COMMAND (in the direction MS to SC)
             0     1    SMS-SUBMIT (in the direction MS to SC)
             0     1    SMS-SUBMIT-REPORT (in the direction SC to MS)
             1    1      ReservedTP-RD:0  TP-Reject-Duplicates(是否拒絕相同重復(fù)消息)

               Bit2:0—接受復(fù)制; 1—拒絕復(fù)制
             
             Bit2:0   指示短消息中心接收未轉(zhuǎn)發(fā)的具有相同TP-MR的消息。
             Bit 2:
             0    Instruct the SC to accept an SMS-SUBMIT for an SM still held in the  SC which has the same TP-MR and the same TP-DA as a previously submitted SM from the same OA.
             1    Instruct the SC to reject an SMS-SUBMIT for an SM still held in the   SC which has the same TP-MR and the same TP-DA as the  previously submitted SM from the same OA. In this case an  appropriate TP-FCS value will be returned in the SMS-SUBMIT-REPORT.
            TP-VPF:10   TP-Validity-Period-Format(有效期格式)

            Bit4,3::00—不提供(Not present);01—預(yù)留;  10—整型(標(biāo)準(zhǔn)),指使用相對(duì)格式;11—提供8位字節(jié)的一半(Semi-Octet Represented) 
            下面是GSM03.40的解釋:
            bit4 bit3
            0   0      TP-VP field not present
            1   0      TP-VP field present and integer represented (relative)
            0   1      Reserved
            1   1      TP-VP field present and semi-octet represented (absolute)
            TP-SRR:0    TP-Status-Report-Request
               Bit5:    1:需要報(bào)告,0:不需要報(bào)告。
            Bit 5:
            0       A status report is not requested
            1       A status report is requested
            TP-UDHI:0   TP-User-Data-Header-Indicator(用戶數(shù)據(jù)頭標(biāo)示)   Bit6:   1:含頭信息  0:不含頭信息,指示這是一個(gè)SMS消息,沒(méi)有用戶數(shù)據(jù)頭,EMS(增強(qiáng)消息業(yè)務(wù))消息需要設(shè)置。圖片鈴聲這些都是包含頭部信息的.文本不包含頭部信息
            Bit  6
            0     The TP-UD field contains only the short message
            1     The beginning of the TP-UD field contains a Header in addition to the  short message
            TP-RP:0     TP-Reply-Path(回復(fù)路徑)   Bit7:    1:設(shè)置回復(fù)路徑,0:沒(méi)有設(shè)置回復(fù)路徑。
            下面是GSM03.40解釋?zhuān)?br>Bit 7:
            0:  TP-Reply-Path parameter is not set in this SMS-SUBMIT/DELIVER
            1:  TP-Reply-Path parameter is set in this SMS-SUBMIT/DELIVER
            (2)消息參考值TP-MR (TP-Message-Reference):19如果使用"00" 值代表讓電話自己設(shè)置消息參考值.
             
              <4> 對(duì)方號(hào)碼字段:0D913105155694F5 
                0D:目標(biāo)地址數(shù)字個(gè)數(shù),共13個(gè)十進(jìn)制數(shù)(不包括91和‘F’)
                91:地址類(lèi)型,同短信中心號(hào)碼設(shè)置.
               3105155694F5:目標(biāo)手機(jī)號(hào)碼。

            <5>上層協(xié)議標(biāo)識(shí)TP-PID(TP-Protocol-Identifier):00
                 一般設(shè)置為00,表示普通GSM,點(diǎn)對(duì)點(diǎn)  <6> 數(shù)據(jù)編碼設(shè)置TP-DCS(TP-Data-Coding-Scheme):08
                指示TP-UD的編碼方式。08代表Unicode方式。參照GSM03.38協(xié)議:
            Bit 3,2
            00    Default alphabet
            01    8 bit
            10    UCS2 (16bit) [10]
            11    Reserved
              <7>有效期TP-VP(TP-Validity-Period):FF
                FF表示最大。
              <8> 用戶數(shù)據(jù)長(zhǎng)度TP-UDL(TP-User-Data-Length):4
                  用戶數(shù)據(jù)實(shí)際長(zhǎng)度。注意不同編碼下用戶長(zhǎng)度定義不同。
               <9>用戶數(shù)據(jù) :4F60597D     "你好"的Unicode編碼
            你:0x4F60;好:0x597D
              2:手機(jī)接收的PDU串
             0891683108200505F0040D91683105155694F5000850208151754500044F60597D
               <1>短信中心地址字段:0891683108200505F0,即是+8613800250500
             <2>FirstOctet :04        其二進(jìn)制代碼:00000100
                TP-MTI:00
                TP-MMS(TP-More-Message-to-Send):1 短信中心沒(méi)有更多的消息發(fā)送
                TP-SRI: 0
                TP-UDHI:0
                TP-RP:  0
             <3>發(fā)送方號(hào)碼 :0D91683105155694F5   即+8613505165495
             <4>協(xié)議標(biāo)識(shí): 00    TP-DCS 點(diǎn)對(duì)點(diǎn)
             <5>編碼方式: 08    TP-DCS Unicode編碼
               <6>短信中心時(shí)間    50208151754500 
                 字節(jié)反轉(zhuǎn)05/02/18 15:57:45 最后的00代表時(shí)區(qū),這里為0
               <7>用戶數(shù)據(jù)長(zhǎng)度 :4
             <8>用戶數(shù)據(jù):4F60597D     
               中文“你好”的Unicode編碼

            posted on 2009-07-04 17:20 Benjamin 閱讀(9493) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 雜談

            91久久精品电影| 青青国产成人久久91网| 51久久夜色精品国产| 久久亚洲AV成人无码国产| 日本精品久久久久影院日本 | 亚洲午夜无码久久久久| 国产精品内射久久久久欢欢| 亚洲国产精品久久| 999久久久免费国产精品播放| 热99re久久国超精品首页| 7777久久亚洲中文字幕| 东京热TOKYO综合久久精品| 精品久久久久久亚洲| 久久亚洲精品视频| 久久艹国产| 久久综合偷偷噜噜噜色| 久久精品国产2020| 欧美牲交A欧牲交aⅴ久久| 国内精品久久久久久99蜜桃 | 国产精品久久免费| 亚洲狠狠久久综合一区77777 | 国产69精品久久久久9999| 国产日韩久久免费影院| 亚洲人成电影网站久久| 99久久无色码中文字幕人妻| 精品久久久久久国产| 无码人妻少妇久久中文字幕 | 久久成人影院精品777| 日本免费一区二区久久人人澡| 久久精品亚洲福利| 亚洲AV成人无码久久精品老人| 久久久久中文字幕| 伊人久久亚洲综合影院| 国产精品久久久久久搜索| 久久人妻少妇嫩草AV蜜桃| 欧美黑人又粗又大久久久 | 色综合久久久久综合99| 亚洲精品无码久久久影院相关影片| 久久久久女人精品毛片| 亚洲国产香蕉人人爽成AV片久久 | 欧美久久综合性欧美|