當前位置:名人名言大全網 - 端午節短信 - SMPP協議java怎麽寫?

SMPP協議java怎麽寫?

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(5 . 0 . 0版)》:歐洲數字蜂窩電信系統(第二階段);短消息服務中心(SMSCs)與短消息實體(SMEs)連接的接口協議;

2、《GSM 03.39(版本6.0.0)》:歐洲數字蜂窩電信系統(階段2+);短消息服務中心(SMSCs)與短消息實體(SMEs)連接的接口協議;

3、《GSM 03.40(版本4.8.1):歐洲數字蜂窩電信系統(第二階段);點對點短消息業務的技術實現》

4、《GSM 03.38(版本5.2.0):數字蜂窩電信系統(階段2+);字母和語言特定信息》

5、《GSM 03.47(版本5.0.0):數字蜂窩電信系統;用於互連服務中心(SC)和移動服務交換中心(MSC)的示例協議棧》

6.900/1800 MHz數字蜂窩移動通信系統短消息中心設備規範(第壹卷點對點短消息業務)。

縮寫

中小企業短信實體

SMPP短消息點對點協議

SMSC短信服務中心

擴展短消息實體

3.2系統結構和功能概述

通過SMPP、ESME(如尋呼臺、語音郵件系統、股票交易業務處理平臺等。)可以綁定或解除綁定短消息中心,提交短消息或從短消息中心發送。

本協議由以下兩部分組成:

*(協議)從ESME到SMSC的消息

*(協議)從SMSC到擴展ESME的消息

其中,用戶管理部分僅適用於有用戶數據庫支持的SMSC。

下圖顯示了SMSC和ESME之間的關系:

圖3-1:SMSC和ESME連接的短信網絡

3.3消息協議

根據短信信息的流向,ESME與SMSC之間的短信信息可以分為兩類:1,SMSC到ESME的消息;2.埃斯梅給SMSC的信。對於所有請求消息,無論是來自ESME還是SMSC,都必須生成確認消息。

對於ESME提交給SMSC的信息,可能有兩種回應:

*SMSC收到消息的響應(ACK)

*如果為該短消息設置了狀態報告,則在該短消息到達目的地後,SMSC將向ESME生成狀態報告消息。

. 1從SMSC到ESME的消息

以下是SMSC給埃斯梅的信息。

命令

形容

綁定_接收方_響應

bind_receiver的響應,狀態指示連接是否成功。

綁定_發送器_響應

bind_transmitter的響應,狀態指示連接是否成功。

解除綁定_resp

解除綁定響應,狀態指示斷開是否成功。

提交_sm_resp

submit_sm,status的響應表示短消息是否提交成功。

deliver_sm

SMSC給埃斯梅發短信

enquire_link_resp

Enquire_link的響應

通用_nak

指示消息頭有錯誤的響應。

. 2從esme到SMSC的消息

以下是埃斯梅給SMSC的信息。

命令

形容

綁定_接收方

作為服務器,短消息實體(ESME/SME)與短消息中心(SMSC)建立連接。該連接建立後,允許短消息實體接受短消息中心發送的短消息。

綁定_發送器

作為客戶端,短消息實體(ESME/SME)與短消息中心(SMSC)建立連接。該連接建立後,允許短消息實體向短消息中心提交短消息。

解放

短消息實體(ESME/SME)從短消息中心系統(SMSC)斷開。

提交_短信

ESME將短消息提交給SMSC,以便SMSC可以將短消息發送到指定的移動站。

交付_sm_resp

deliver_sm的響應。狀態指示分發是否成功。

查詢_鏈接

短消息實體向短消息中心發起的連接維護查詢請求保證了通信鏈路的暢通。壹般來說,ENQUIRE_LINK消息大約每5秒發送壹次。

通用_nak

指示消息頭有錯誤的響應。

3.4消息語法

3.4.1語法定義規則

在以下語法描述中,遵循以下規則:

A.根據類型,未使用的字段必須設置為0或NULL。

b、消息由消息頭和消息體組成。

C.命令語法中未指定狀態。

0:表示成功。

非0:表示失敗。

& lt0x80000000:未定義值保留。

在類型中,可以使用以下定義。

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的

年份的最後兩位數(00-99)

abbr. 毫米(millimeter)

月份(01-12)

直接傷害

日(01-31)

倍硬

小時(00-23)

毫米

分數(00-59)

懸浮物

秒(00-59)

T

十分之壹秒(0-9)

神經網絡

UTC(通用時間常數)和UTC (00-48)之間的差距。

+'(p)

時間早於UTC時間。

-'(p)

時間落後於UTC時間。

unicode字符串:unicode編碼的字符串。

消息頭的語法

領域

長度(字節)

類型

指令長度

整數

命令ID

整數

命令_狀態

整數

序列號

整數

可選消息正文

可變的

混合

特定字段的描述:

l命令長度:整個包的長度(包括字段本身)。

l命令ID:該字段指示短消息的類型,相當於標識符。例如,ESME_SUB_SM表示該消息是由ESME提交給SMSC的短消息。當標識符指示消息是請求消息時,標識符的保留值範圍是0h到FFh。當標識符指示消息是響應消息時,標識符的保留值範圍從080000000h到0800000FFh。壹般來說,回復消息的類型對應於相應的請求消息的類型,但不同的是,回復消息的類型被設置為比特31。

命令ID命令值:

命令ID編碼

命令ID

形容

命令ID值

ESME_BNDRCV

綁定_接收方

ESME要求您作為接收者連接到SMSC。

0X00000001

RESP埃斯梅

綁定_接收方_響應

綁定接收方的響應

0X80000001

ESME_BNDTRN

綁定_發送器

ESME要求作為發送方連接到SMSC。

0X00000002

RESP埃斯梅

bind_transmitrer_resp

綁定發送器的響應

0X80000002

UBD埃斯梅

解放

埃斯梅要求與SMSC斷交。

0x 000000006

RESP UBD埃斯梅

解除綁定_resp

解除綁定響應

0X80000006

ESME_SUB_SM

提交_短信

埃斯梅給SMSC發短信。

0x 000000004

RESP

提交_sm_resp

submit_sm的響應

0X80000004

SMSC交貨

Deliver_sm

SMSC給埃斯梅發短信

0x 000000005

SMSC交貨RESP SM

交付_sm_resp

deliver_sm的響應

0X80000005

ESME_QRYLINK

查詢_鏈接

埃斯梅詢問了與SMSC的關系。

0X00000015

RESP埃斯梅

Enquire_link_resp

enquire_link的響應

0X80000015

NACK埃斯梅

納克

指示消息頭有錯誤的響應。

0X80000000

l命令狀態:該字段指示請求消息的成功或失敗,例如失敗,指示導致失敗的錯誤類型和其他信息。該字段僅在回復消息中使用,在請求消息中必須為空。

命令狀態值描述:

錯誤代碼

錯誤的值

形容

e _成功

0X00000000

成功

其他錯誤

0X00000001

其他錯誤

0x 000000002–0x 0000000 f

為SMSC制造商定義預留時出錯。

E_MSGLENERR

0X00000010

消息長度錯誤

E _ CMDLENERR

0X00000011

命令長度誤差

E_INVLDCMDID

0X00000012

無效的消息ID。

E_NORIGHT(0X00000013)

0X00000013

您沒有執行此命令的權限。

0x 00000014–0x 0000001F

保留

E_INVLDSYSTEMID

0X00000020

無效的SYSTEMID。

E_INVLDPASSWORD

0X00000021

無效密碼。

E_INVLDSYSTEMTYPE

0X00000022

無效的系統類型。

0x 00000023–0x 0000003 f

保留

電子地址

0X00000040

地址錯誤

電動自行車

0X00000041

超過了提交的最大數量。

E_MTEXCEED

0X00000042

超過最大分配數。

E_INVLDUSER

0X00000043

無效用戶。

E_INVLDDATAFMT

0X00000044

無效的數據格式。

e _創建失敗

0X00000045

無法創建消息。

E_INVLDMSGID

0X00000046

無效的短信ID

e _數據庫故障

0X00000047

數據庫故障

取消失敗

0X00000048

取消消息失敗。

E _ MSGSTATEERR

0X00000049

短信狀態錯誤

E_REPLACEMSGFAILURE

0X0000004A

無法替換消息。

E_INVLDRPLADDR

0X0000004B

替換消息的源地址中有錯誤。

0x 0000004 c–0x 0000005 f

保留

E_INVLDORGTON

0X00000060

無效的源地址TON。

E_INVLDORGNPI

0X00000061

無效的源地址NPI。

E_ORGADDRERR

0X00000062

源地址錯誤

E _ INVLDDESTTON

0X00000063

無效的目的地址TON。

E_INVLDDESTNPI

0X00000064

無效的目標地址NPI。

E _ DESTADDRERR

0X00000065

目的地址錯誤

電子發票計劃

0X00000066

無效的計時時間。

E _ INVLDEXPIRE

0X00000067

無效超時。

E_INVLDESM

0X00000068

無效的ESM_CALSS。

E_INVLDUDLEN

0X00000069

無效的UDLEN。

E_INVLDPRI

0X0000006A

無效優先級

E_INVLDRDF

0X0000006B

無效的註冊交貨標誌。

E_INVLDRPF

0X0000006C

Replace_if_present_flag無效。

0x 0000006d–0x 0000007 f

保留

用戶管理部分(可選)

e _用戶已存在

0X00000080

指定的用戶已經存在。

E _ CREATEUSERERR

0X00000081

無法創建用戶。

E _ USERIDERR

0X00000082

用戶ID錯誤

e _用戶不存在

0X00000083

指定的用戶不存在。

0x 00000084–0x 0000008 f

保留

0x 00000090–0x 00000 fff

為SMSC制造商定義預留時出錯。

其他的

保留

順序號。:該字段表示報文的序列號,由ESME生成,是報文與其回復之間的對應標誌,取值在01h和07FFFFFFFh之間。對於每個請求消息,該字段的值必須嚴格單調遞增。當序列號達到最大值時,返回將從01h繼續。

l可選消息體:該字段表示短消息的消息體部分,攜帶移動股票交易應用中的STK卡應用協議內容。

3.4.3每個命令消息體的具體格式

1,泛型_Nak命令

該命令用於在收到的消息報頭中有錯誤時做出響應。此響應只能由接收方發送。該命令只有消息頭,沒有消息體。

2.綁定接收器命令

在擴展短消息實體和短消息中心之間建立虛擬連接,接收SMSC轉發的短消息。

領域

長度(字節)

類型

系統標識

最大16

c _字符串

密碼

最多9個

c _字符串

系統類型

最大13

c _字符串

接口版本

1

整數

地址噸

1

整數

Addr_npi

1

整數

地址範圍

最大值41

C_DecString

特定字段的描述:

System_id:該字段是系統登錄短消息中心時使用的接口號。

密碼:該字段是系統登錄短消息中心時使用的密碼。

System_type:該字段指示登錄的接口類型。

Interface_version:該字段指示登錄接口的版本號。

Addr_ton:該字段指示編碼類型。如果沒有,可以設置為空。值描述:

當用戶或網絡不包含關於編碼方案的早期信息時,0是未知的。

1國際號碼,

2國內號碼

3網絡特殊號碼

4用戶號碼

5個字符的數字

6縮寫數字

7預訂

Addr_npi:該字段指示編碼方案。如果沒有,可以設置為空。值描述:

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。如果沒有,可以設置為空。

3.綁定接收方RESP語法

該命令用於響應MI_BIND_RECEIVER。

領域

大小(字節)

類型

系統標識

最大16

c _字符串