SMPP協議


比較正式的說明網站: https://smpp.org/

參考文章: Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=677474

 

SMPP協議

      
3.1SMPP規范簡介
    SMPP接口協議最初由ETSI收錄在 GSM03.39規范中,描述了短消息中心與短消息實體之間通信交互的協議關系及數據傳輸格式,本規范對SMPP接口協議的描述主要面向簡單的通信交互,制定規范的廠家將其協議版本號定為V3.30;后由SMPP開發者論壇將協議版本向前演進為V3.40,SMPP V3.40協議規范完全兼容GSM 03.39協議標准。本規范中,所采用的短消息中心設備與短消息股票交易業務處理平台之間的接口采用GSM03.39 V3.30協議規范,如無特殊說明全部以此協議規范為准。SMPP協議可以以TCP/IP或X.25作為底層通訊承載。
       與SMPP協議規范相關的參考資料如下:
1、            《GSM 03.39(Version 5.0.0)》:European digital cellular telecommunications system(Phase 2);Interface protocols for the connection of Short Message Service Centres(SMSCs)to Short Message Entities(SMEs);
2、            《GSM 03.39(Version 6.0.0)》:European digital cellular telecommunications system(Phase 2+);Interface protocols for the connection of Short Message Service Centres(SMSCs)to Short Message Entities(SMEs);
3、            《GSM 03.40(Version 4.8.1):European digital cellular telecommunications system(Phase 2);Technical realization of the Short Message Service Point to Point》
4、          《GSM 03.38(Version 5.2.0):Digital cellular telecommunications system(Phase 2+);Alphabets and language_specific information》
5、            《GSM 03.47(Version 5.0.0):Digital cellular telecommunications system;Example protocol stacks for interconnecting Service Center(SC) and Mobile_services Switching Center(s)(MSC)》
6、            《900/1800 MHz 數字蜂窩移動通信系統短消息中心設備規范(第一分冊點對點短消息業務)》
 
縮略語
      SME               短消息實體
      SMPP            短消息點對點協議
      SMSC            短消息服務中心
      ESME            擴展短消息實體
 
 
3.2 系統結構、功能概述
       通過SMPP,ESME(例如尋呼台、語音郵箱系統、股票交易業務處理平台等)能連接(Bind)或斷連(UnBind)短消息中心,提交(Submit)短消息或從短消息中心下發(Deliver)。
      此協議包含以下兩部分:
              *(協議)ESME到SMSC的消息
           *(協議)SMSC到擴展ESME的消息
       其中用戶管理部分只適用於SMSC有用戶數據庫支持的情況
    SMSC和ESME之間的關系如下圖所示:
      
 

 

圖3-1:SMSC和ESME連接的短消息系統網絡
3.3 消息協議
       按短消息信息的流向,可以將ESME與SMSC之間的短消息信息分為兩類:1、從SMSC到ESME的消息;2、從ESME到SMSC的消息。對於所有請求消息,無論始發於ESME還是SMSC,都必須產生一個響應消息(acknowledge)。
       從ESME到SMSC所提交的消息,可能有兩種響應:
              *SMSC收到消息的響應(ACK)
              *如果這條短消息設置了需要狀態報告,那么當這條短消息到達目標地之后,SMSC會產生一個狀態報告的消息給ESME。
      
.1      SMSC到ESME的消息
       以下消息是從SMSC到ESME的消息
      
命令 描述
bind_receiver_resp bind_receiver的響應,status表示連接成功與否
bind_transmitter_resp bind_transmitter的響應,status表示連接成功與否
unbind_resp unbind的響應,status表示斷開連接成功與否
submit_sm_resp submit_sm的響應,status表明提交短消息是否成功
deliver_sm SMSC下發短消息到ESME
enquire_link_resp Enquire_link的響應
generic_nak 表示消息頭有錯誤的響應
   
 
.2      ESME到SMSC的消息
       以下為ESME到SMSC的消息
 
命令 描述
bind_receiver 短消息實體(ESME/SME)作為服務器與短消息中心(SMSC)建立連接,本連接建立起來后,允許短消息實體接受短消息中心下發的短消。
bind_transmitter 短消息實體(ESME/SME)作為客戶端與短消息中心(SMSC)建立連接,本連接建立起來后,允許短消息實體向短消息中心提交短消息。
Unbind 短消息實體(ESME/SME)與短消息中心系統(SMSC)斷開會話連接。
submit_sm ESME提交短消息到SMSC,以便SMSC下發此短消息到指定的移動台。
deliver_sm_resp deliver_sm的響應。status表示此次下發是否成功。
Enquire_link 短消息實體向短消息中心發起的連路保持查詢請求,以保證通訊鏈路的暢通。一般情況下約每5秒發送一次ENQUIRE_LINK消息。
Generic_nak 表示消息頭有錯誤的響應
 
 
      
3.4消息語法
3.4.1語法定義規則
       在以下語法說明中,遵從以下規則:
       A.未使用的字段,依據類型必須設置為0或NULL。
       B.消息由消息頭和消息體組成
       C.狀態(status)如在命令語法中未加說明         
0:表示成功    
                                                 非0:表示失敗
                                                 <0x80000000:未定義值保留
       D.在類型中,可能用到以下定義
l      integer                 :一定字節數所組成的整數,高位在前,低位在后。例如:1字節(BYTE),2字節(WORD ) , 4字節(DWORD)。
l      C_String              :以NULL結束的ASCII字符串
l      C_DecString      :以NULL結束的ASCII字符串,它由一系列的10進制字符組成(‘0’---‘9’)。
l      C_OctetString    :由任意8位字節組成數據流串。
l      C_HexString       :以NULL結束的ASCII字符串,它由一系列的16進制字符組成(‘0’---‘9’,‘A’(‘a’)---‘F’(‘f’))
l      C_StringTime     :表示時間的字符串,它為以下格式                           “YYMMDDhhmmsstnnp" ,格式如下
 
說明
YY'
年份的最后2位 (00-99)
MM
月份(01-12)
DD
日 (01-31)
Hh
小時 (00-23)
Mm
分 (00-59)
Ss
秒 (00-59)
T
十分之一秒 (0-9)
Nn
與UTC (Universal Time Constant) 時間超前或落后的差距(00-48).
‘+’(p)
時間超前於UTC time.
‘-’(p)
時間落后於 UTC time.
 
l       C_UnicodeString    :Unicode編碼的字符串。
 
3.4.2消息頭語法
字段
長度(字節)
類型
Command Length
4
Integer
Command ID
4
Integer
Command_status
4
Integer
Sequence No.
4
Integer
Optional Message Body
可變
混合
 
具體字段描述說明:
l        Command Length:整個包的長度(包括該字段本身)。
l        Command ID      :這個字段表明該條短消息的類型,相當於標識符。例如ESME_SUB_SM表示此消息為ESME向SMSC提交短消息。當該標識符表示該條消息是請求消息(request)時,標識符的保留取值范圍是0h到FFh。當該標識符表示該條消息是應答消息(response)時,標識符的保留取值范圍是080000000h到0800000FFh。一般來說,應答消息的類型對應相應的請求消息的類型,所不同的是,應答消息的類型在第31位比特處是置位的。
Command ID命令取值:
Command ID 編碼 Command ID 描述
Command ID取值
ESME_BNDRCV
bind_receiver
ESME要求以接收者身份連接到SMSC
0X00000001
ESME_BNDRCV_RESP
bind_receiver_resp
bind_receiver的響應
0X80000001
ESME_BNDTRN
bind_transmitter
ESME要求以發送者身份連接到SMSC
0X00000002
ESME_BNDTRN_RESP
bind_transmitrer_resp
bind_transmitter的響應
0X80000002
ESME_UBD
Unbind
ESME要求斷開連接到SMSC
0X00000006
ESME_UBD_RESP
Unbind_resp
Unbind的響應
0X80000006
ESME_SUB_SM
Submit_sm
ESME提交短消息到SMSC
0X00000004
ESME_SUB_SM_RESP
Submit_sm_resp
submit_sm的響應
0X80000004
SMSC_DELIVER_SM
Deliver_sm
SMSC下發短消息到ESME
0X00000005
SMSC_DELIVER_SM_RESP
Deliver_sm_resp
deliver_sm的響應
0X80000005
ESME_QRYLINK
Enquire_link
ESME詢問與SMSC的連接情況
0X00000015
ESME_QRYLINK_RESP
Enquire_link_resp
enquire_link的響應
0X80000015
ESME_NACK
Nack
表示消息頭有錯誤的響應
0X80000000
 
l        Command Status :此字段表示一個請求消息的成功與失敗,如失敗,指示引起失敗的錯誤類型等信息。該字段只用在應答消息中,在請求消息中,該字段必須為NULL。
       Command Status取值說明 :
錯誤代碼 錯誤值 描述
E_SUCCESS
0X00000000
成功
E_OTHERERR
0X00000001
其他錯誤
0X00000002 – 0X0000000F
 
保留給SMSC廠商定義錯誤
E_MSGLENERR
0X00000010
消息長度錯誤
E_CMDLENERR
0X00000011
命令長度錯誤
E_INVLDCMDID
0X00000012
消息ID無效
E_NORIGHT(0X00000013)
0X00000013
沒有執行此命令的權限
0X00000014 – 0X0000001F
 
保留
E_INVLDSYSTEMID
0X00000020
無效的SYSTEMID
E_INVLDPASSWORD
0X00000021
無效的密碼
E_INVLDSYSTEMTYPE
0X00000022
無效的SYSTEMTYPE
0X00000023 – 0X0000003F
 
保留
E_ADDRERR
0X00000040
地址錯誤
E_MOEXCEED
0X00000041
超過最大提交數
E_MTEXCEED
0X00000042
超過最大下發數
E_INVLDUSER
0X00000043
無效的用戶
E_INVLDDATAFMT
0X00000044
無效的數據格式
E_CREATEMSGFAILURE
0X00000045
創建消息失敗
E_INVLDMSGID
0X00000046
無效的短消息ID
E_DATABASEFAILURE
0X00000047
數據庫失敗
E_CANCELMSGFAILURE
0X00000048
取消消息失敗
E_MSGSTATEERR
0X00000049
短消息狀態錯誤
E_REPLACEMSGFAILURE
0X0000004A
替換消息失敗
E_INVLDRPLADDR
0X0000004B
替換消息源地址錯誤
0X0000004C – 0X0000005F
 
保留
E_INVLDORGTON
0X00000060
無效的源地址TON
E_INVLDORGNPI
0X00000061
無效的源地址NPI
E_ORGADDRERR
0X00000062
源地址錯誤
E_INVLDDESTTON
0X00000063
無效的目的地址TON
E_INVLDDESTNPI
0X00000064
無效的目的地址NPI
E_DESTADDRERR
0X00000065
目的地址錯誤
E_INVLDSCHEDULE
0X00000066
無效的定時時間
E_INVLDEXPIRE
0X00000067
無效的超時時間
E_INVLDESM
0X00000068
無效的ESM_CALSS
E_INVLDUDLEN
0X00000069
無效的UDLEN
E_INVLDPRI
0X0000006A
無效的PRI
E_INVLDRDF
0X0000006B
無效的Registered_delivery_flag
E_INVLDRPF
0X0000006C
無效的Replace_if_present_flag
0X0000006D – 0X0000007F
 
保留
用戶管理部分(可選)
 
 
E_USERALREADYEXIST
0X00000080
指定用戶已經存在
E_CREATEUSERERR
0X00000081
創建用戶失敗
E_USERIDERR
0X00000082
用戶ID錯誤
E_USERNOTEXIST
0X00000083
指定用戶不存在
0X00000084 – 0X0000008F
 
保留
0X00000090 – 0X00000FFF
 
保留給SMSC廠商定義錯誤
其他
 
保留
l        Sequence No   .:此字段表示消息的序列號,它由ESME產生,它是消息和它的應答之間的對應標志,數值在01h到07FFFFFFFh間。對於每條請求消息,該字段的取值必須保證嚴格單調遞增,當序列號值達到最大值時,返回繼續從01h開始。
l        Optional Message Body:此字段表示短消息的消息體部分,在移動股票交易應用中承載STK卡應用協議內容。
 
3.4.3各命令消息體具體格式
1、generic_Nak命令
此命令用於當接收消息頭有錯誤的時候的響應,該響應只能由收到請求方發出。該命令只有消息頭,沒有消息體。
 
2、BIND_RECEIVER命令
在擴展短消息實體和短消息中心之間建立虛連接,接收SMSC轉發的短消息。
字段
長度(字節)
類型
System_id 最大 16 C_String
Password 最大 9 C_String
System_type 最大 13 C_String
Interface_version 1 Integer
Addr_ton 1 Integer
Addr_npi 1 Integer
Address_range 最大 41 C_DecString
具體字段描述說明:
system_id             :該字段是系統登錄到短消息中心所用的接口號。
Password             :該字段是系統登錄到短消息中心所用的密碼。
system_type         :該字段標明登錄的接口類型。
interface_version   :該字段標明登錄的接口版本號。
addr_ton              :該字段指明編碼類型。如不需要,可設為NULL。取值說明:
              0      未知,當用戶或網絡不含關於編碼方案的較早信息
              1      國際號碼,
              2      國內號碼
              3      網絡特殊號碼
              4      用戶號碼
              5      字符數字
              6      縮寫號碼
              7      保留
 addr_npi           :該字段指明編碼方案。如不需要,可設為NULL。取值說明:
              0      未知
       1   ISDN或電話號碼編碼方案(E164/E163),對於任意實體SC,MSC或MS,都有效
              2      保留
              3      數據編碼方案(X121)
              4      電報編碼方案
              5-7    保留
              8      國內編碼方案
              9      私有編碼方案
              10     ERMES編碼方案(ETSI DE/PS 3 01-3)
              11-15 保留
address_range      :該字段用來給短消息指明路由,和將狀態報告轉發給ESME。如不需要,可設置為NULL。
3、BIND_RECEIVER_RESP語法
       此命令用於對MI_BIND_RECEIVER響應。
字段
大小(字節)
類型
System_id
最大 16
C_String
具體參數說明:
system_id         :該字段是系統登錄到短消息中心所用的接口號。
 
4、BIND_TRANSMITTER命令
在擴展短消息實體和短消息中心之間建立虛連接,擴展短消息實體能向SMSC提交短消息。此命令和BIND_RECEIVER的語法一樣,只是在消息頭里的Command_id為"bind_transmitter"。
 
5、BIND_TRANSMITTER_RESP命令
此命令和BIND_RECEIVER_RESP的語法一樣,只是在消息頭里的Command_id為"bind_transmitter_resp"。
 
6、UNBIND命令
此命令用於斷開ESME和SMSC之間的連接。此消息只有消息頭,沒有消息體。
7、UNBIND_RESP命令
此消息只有消息頭,沒有消息體。
 
8、SUBMIT_SM命令
此命令用於用於ESME提交短消息到SMSC,以便SMSC把此短消息發給特定ESME。
字段 長度(字節) 類型
service_type 最大6 C_String
source_addr_ton 1 Integer
source_addr_npi 1 Integer
source_addr 最大21 C_DecString
dest_addr_ton 1 Integer
dest_addr_npi 1 Integer
destination_addr 最大21 C_DecString
esm_class 1 Integer
protocol ID 1 Integer
priority_flag 1 Integer
schedule_delivery_time 最大 17 C_StringTime
validity_period 最大 17 C_StringTime
registered_delivery_flag 1 Integer
replace_if_present_flag 1 Integer
data_coding 1 Integer
sm_default_msg_id 1 Integer
sm_length 1 Integer
short_message 最大160 C_String
具體參數說明:
service_type       :保留字段,為將來擴展用。必須設為NULL。
source_addr_ton :源地址編碼類型,如不需要,可設為NULL。
source_addr_npi :源地址編碼方案,如不需要,可設為NULL。
source_addr     :提交該短消息的SME的地址。是提交的短消息的
                  源地址。如不需要,可設為NULL。
dest_addr_ton   :目的地址編碼類型,如不需要,可設為NULL。
dest_addr_npi   :目的地址編碼方案,如不需要,可設為NULL。
destination_addr:短消息的目的地址。對於移動終止的短消息來說,
                 它就是目的手機的MSISDN。如不需要,可設置為
                 NULL。
esm_class       :該字短為短消息類型。對submit_sm消息來說,
                  該字段必須為NULL;對deliver_sm消息來說,該
                  字段表示這條消息是狀態報告。該字段的具體解
                  釋請參考后面的消息體參數說明。但對於普通的
                  SUBMIT_SM命令,此字段設為0。
     取值說明   :
             此字段的說明如下:
Bit 7 6 5 4 3 2 1 0
Flag Reserved UDHI Reserved Reserved Reserved
Delivery
Receipt
Reserved Reserved
          其中:
            UDHI:表示短消息內容是否有頭結構。置位表示有。
            Delivery Receipt:在DELIVER_SM協議中使用,表示此條消息是否是狀態報告。
       protocol ID       :GSM協議類型。詳細是解釋請參考GSM03.40中的
                        9.2.3.9。
       priority_flag :短消息的優先級。當設置了短消息為高優先級,
                        短消息中心會將該短消息移到同一目的地址的消
                        息隊列的前端,優先進行發送。
             取值說明:
                0:普通優先級(缺省值)
                 1:高優先級
                >1:保留。
 schedule_delivery_time:該字段表示計划下發該短消息的時間。
                         時間格式請參考前面定義的C_StringTime
                             的格式. 如不需要,可設置為NULL。
 validity_period:該字段表示短消息的最后生存期限。時間格式請
                  參考前面定義的C_StringTime的格式.如不需要,
                  可設置為NULL。
 registered_delivery_flag:該字段是注冊短消息標志,它表示當
                           短消息到達最后的目的地后,是否需
                           要狀態報告。
                 取值說明:
                          0:不需要
                         1:需要
                        >1:保留。
 replace_if_present_flag:該字段表示替換短消息標志。即當提交
                          的短消息的源地址和目的地址相同時,
                          是否替換存在的短消息。
                取值說明:
                        0:不替換
                           1:替換
                       >1:保留。
 data_coding       :該字段表示數據編碼方案。
         取值說明 :
          0      缺省編碼方案(7bit編碼)
                4      二進制編碼方案(8bit編碼)
                8      UCS2編碼方案(GB13000)
                其他   保留
sm_default_msg_id:該字段表示預定義短消息ID。該ID是短消息中
                   心管理者建立的預定義短消息表的索引。不想
                   發送預定義短消息時,該字段應設為NULL。預
                   定義短消息ID值從0x01到0x64。詳細說明請參
                   考SMPP Applications Guide [9] - Default
                   Short Message。
sm_length      :要發送的短消息數據內容的字節長度。
short_message :該字段表示短消息數據內容。最大可到160字符。
                    只有sm_length中定義的字節長度可用。此字段的數據編碼格式由data_coding決定。
9、SUBMIT_SM_RESP命令
字段 長度(字節) 類型
Message_id 最大9 C_HexString
具體參數說明:
         Message_id             :該字段表示短消息ID,由短消息中心產生,用於
                           以后查詢及替換短消息用,或是表明狀態報告所
                           對應的源消息。如果沒有,該字段必須設為
                           NULL。
 
10、DELIVER_SM命令
此命令由SMSC產生,SMSC通過此命令發送短消息到目的ESME,它也可用於發送DELIVERY RECEIPT消息。語法格式與SUBMIT_SM的語法消息體是相同的,只是在消息頭中的Command_id是“deliver_sm"。
字段 長度(字節) 類型
service_type 最大6 C_String
source_addr_ton 1 Integer
source_addr_npi 1 Integer
source_addr 最大21 C_DecString
dest_addr_ton 1 Integer
dest_addr_npi 1 Integer
destination_addr 最大21 C_DecString
esm_class 1 Integer
protocol ID 1 Integer
priority_flag 1 Integer
schedule_delivery_time 最大 17 C_StringTime
validity_period 最大 17 C_StringTime
registered_delivery_flag 1 Integer
replace_if_present_flag 1 Integer
data_coding 1 Integer
sm_default_msg_id 1 Integer
sm_length 1 Integer
short_message 最大160 C_String
具體參數說明:
service_type       :保留字段,為將來擴展用。必須設為NULL。
source_addr_ton :源地址編碼類型,如不需要,可設為NULL。
source_addr_npi :源地址編碼方案,如不需要,可設為NULL。
source_addr     :提交該短消息的SME的地址。是提交的短消息的
                  源地址。如不需要,可設為NULL。
dest_addr_ton   :目的地址編碼類型,如不需要,可設為NULL。
dest_addr_npi   :目的地址編碼方案,如不需要,可設為NULL。
destination_addr:短消息的目的地址。對於移動終止的短消息來說,
                 它就是目的手機的MSISDN。如不需要,可設置為
                 NULL。
esm_class       :該字短為短消息類型。對submit_sm消息來說,
                  該字段必須為NULL;對deliver_sm消息來說,該
                  字段表示這條消息是狀態報告。該字段的具體解
                  釋請參考后面的消息體參數說明。但對於普通的
                  SUBMIT_SM命令,此字段設為0。
     取值說明   :
             此字段的說明如下:
Bit 7 6 5 4 3 2 1 0
Flag Reserved UDHI Reserved Reserved Reserved
Delivery
Receipt
Reserved Reserved
          其中:
            UDHI:表示短消息內容是否有頭結構。置位表示有。
            Delivery Receipt:在DELIVER_SM協議中使用,表示此條消息是否是狀態報告。
       protocol ID       :GSM協議類型。詳細是解釋請參考GSM03.40中的
                        9.2.3.9。
       priority_flag :短消息的優先級。當設置了短消息為高優先級,
                        短消息中心會將該短消息移到同一目的地址的消
                        息隊列的前端,優先進行發送。
             取值說明:
                 0:普通優先級(缺省值)
                 1:高優先級
                >1:保留。
 schedule_delivery_time:該字段表示計划下發該短消息的時間。
                         時間格式請參考前面定義的C_StringTime
                             的格式. 如不需要,可設置為NULL。
 validity_period:該字段表示短消息的最后生存期限。時間格式請
                  參考前面定義的C_StringTime的格式.如不需要,
                  可設置為NULL。
 registered_delivery_flag:該字段是注冊短消息標志,它表示當
                           短消息到達最后的目的地后,是否需
                           要狀態報告。
                 取值說明:
                          0:不需要
                         1:需要
                        >1:保留。
 replace_if_present_flag:該字段表示替換短消息標志。即當提交
                          的短消息的源地址和目的地址相同時,
                          是否替換存在的短消息。
                取值說明:
                        0:不替換
                           1:替換
                       >1:保留。
 data_coding       :該字段表示數據編碼方案。
         取值說明 :
          0      缺省編碼方案(7bit編碼)
                4      二進制編碼方案(8bit編碼)
                8      UCS2編碼方案(GB13000)
                其他   保留
sm_default_msg_id:該字段表示預定義短消息ID。該ID是短消息中
                   心管理者建立的預定義短消息表的索引。不想
                   發送預定義短消息時,該字段應設為NULL。預
                   定義短消息ID值從0x01到0x64。詳細說明請參
                   考SMPP Applications Guide [9] - Default
                   Short Message。
sm_length      :要發送的短消息數據內容的字節長度。
short_message :該字段表示短消息數據內容。最大可到160字符。
                    只有sm_length中定義的字節長度可用。此字段的數據編碼格式由data_coding決定。
 
11、DELIVER_SM_RESP語法
它的語法和SUBMIT_SM_RESP的語法消息體是一樣的,只是在消息頭中的Command_id是“deliver_sm_resp"。
 
12、ENQUIRE_LINK命令
此命令用於ESME確認和SMSC之間的連接。ESME發送一條ENQUIRE_LINK命令,SMSC響應一條ENQUIRE_LINK_ACK命令,表示ESME和SMSC之間的連接正常。此命令只有消息頭,沒有消息體。
13、ENQUIRE_LINK_RESP命令
此命令只有消息頭,沒有消息體。
 
3.4.4消息體參數說明
l        address:   地址號碼
l        address_range:地址范圍  
l        data_coding:數據編碼方案, ( 詳見GSM 03.40 [1]   9.2.3.10)
例如:
0:缺省編碼方案(7位)
      4:英文編碼方案(不被手機支持)
      8:UCS2編碼方案(比如中文編碼)
l        dest_addr_npi:目的地址編碼方案,同npi
l        dest_addr_ton:目的地址編碼類型,同ton
l        destination_addr: 目的地址,同address
l        esm_class:     短消息類型
此字段的說明如下:
Bit 7 6 5 4 3 2 1 0
Flag Reserved UDHI Reserved Reserved Reserved
Delivery
Receipt
Reserved Reserved
其中 UDHI 表示短消息內容是否有頭結構。置位表示有。Delivery Receipt,在DELIVER_SM協議中使用,表示是否是此條消息是否是狀態報告。
對於普通的SUBMIT_SM命令,此字段設為0。
l              final_date:短消息的生命期終止的實際時間,如果此短消息已從SMSC的等待發送隊列中刪除,即為刪除時間,否則為SMSC當前的時間
l              GSM_code:     GSM錯誤碼,參見GSM 03.40協議。
l              interface_version:用來描述SMEI協議的版本號
l              Message_id:短消息ID,它由SMSC設置。用於查詢以及替換短消息等操作時使用。
l              Command Status:短消息當前的狀態
l              npi:地址編碼方案,(定義詳見GSM03.40[1] 9.1.2.5)
      例如: 1 表示ISDN電話編碼計划
l        password:       用來登錄的密碼
l        priority_flag:優先級
      1:高優先級
      0:普通優先級
      >1:保留
l        protocol_ID:GSM協議類型(定義詳見GSM03.40[1] 9.2.3.9)
l        registered_delivery_flag:   注冊短消息標志,它表示當此短消息到達最后的目的地后,是否需要      送達狀態報告(DELIVERY RECEIPT)。
 0:不需要
 1:需要
 >1:保留
l        replace_if_present_flag:替換標志,當存在的短消息的源地址和目的地址都相同時,是否替換存在的短消息。
 0:不替換
 1:替換
 >1:保留
l        schedule_delivery_time:    計划下發短消息的時間
l        service_type::保留,必須設為NULL
l        short_message:    短消息數據內容。在7bit時,是160字符;在8bit時,是140字符。
l              sm_default_msg_id:     預定義短消息ID,不是預定義短消息時應設為0,預定義短消息ID值從0x01到0x64。
l              sm_length:       短消息的數據長度,以字節計算
l              source_addr:源地址編號,同address
l              source_addr_npi:   源地址編碼方案,同npi
l              source_addr_ton:   源地址編碼類型,同      ton
l              system_id:接口ID,用來描述虛擬連接的用戶名
l              system_type:用來描述用戶的類型
l              ton:地址編碼類型,(定義詳見GSM03.40[1] 9.1.2.5)
      0            未知號碼
      1            國際號碼
      2            國內號碼
      3            網絡專用號碼
      4            用戶號碼
      5            字母號碼(按照 GSM TS03.38 7-bit 缺省字母表編碼)
      6            縮寫號碼
      7            保留
l        validity_period:短消息的最后生存期限

 

 
3.3 SMPP協議流程
 

 

附錄一: SMPP 協議中注意的幾個問題
 
1、            本規范的各消息的消息頭中,對Sequence No字段,采用嚴格單調遞增函數方式((x 1,y 1),(x 2,y 2)是二維函數空間任意兩個坐標取值;當x 2-x 1>0時,函數(y2-y1)/( x 2-x 1)>0)進行計數;當序列號達到最大值時自動返回最小值起繼續計數。
2、            在BIND_RECEIVER_RESP消息中,system_id字段可以為NULL。
3、            在有STK卡的手機提交一加密的短消息到調度中心,DCS為4(表示短消息內容是8-bit數據,是用戶自定義的編碼方案),短消息的內容由於經過加密,可能成為二進制的數據流,此時短消息中心應將該二進制的數據流完整的送到手機銀行業務模塊;同樣,如果是業務模塊向短消息中心提交一加密的短消息,短消息的DCS為4,內容是二進制的數據流,短消息中心應該將該數據流完整的送到手機或ESME上去。
4、            在本規范 中,short_message字段的類型定義根據《900/1800MHz TDMA數字蜂窩移動通信網短消息中心設備規范書(第一分冊點對點短消息業務)》進一步說明:
l        當DCS=0時,采用OCTET 7-bit編碼方案,short_message字段的類型是C_String,即是以NULL結束的ASCII字符串(文本),最大長度為160個字符;ESME不做編解碼工作,由短消息中心進行編解碼工作;
l        當DCS=4時,是加密數據,二進制的數據流,short_message字段的類型是C_OctetString,即是由任意8位字節組成的數據流串,最大長度為140字節;短消息中心進行透明傳輸,不做任何編解碼工作,編解碼工作由SME/ESME來完成;
l        當DCS=8時,采用的是UCS2編碼方案,short_message字段的類型是C_UnicodeString,即是Unicode編碼的字符串,最大長度為70個字符。也就是說,short_message字段中的內容在送往短消息中心前,已經按UCS2編碼,短消息中心應支持漢字短消息業務的透明傳輸,即UCS2的編解碼應由SME/ESME來完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM