版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中國(guó)網(wǎng)絡(luò)通信集團(tuán)公司企業(yè)標(biāo)準(zhǔn)PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范第一分冊(cè) 短消息網(wǎng)關(guān)與服務(wù)提供商(SP)接口規(guī)范(CNGP)V2.0目 錄前 言11適用范圍22引用標(biāo)準(zhǔn)23縮略語(yǔ)24CNGP概述34.1 CNGP功能描述34.2 協(xié)議棧34.3 通信方式34.3.1 長(zhǎng)連接44.3.2 短連接64.3.3 交互過程中的應(yīng)答方式74.3.4 端口號(hào)74.4 通信流程74.4.1 CNGP登錄模式74.4.2 SP發(fā)送短消息84.4.3 SP接收短消息84.4.4 SMGW轉(zhuǎn)發(fā)短消息94.5 編號(hào)規(guī)則105CNGP消息定義125.1 基本數(shù)據(jù)類型125.2 消息結(jié)構(gòu)125.3 消息頭格式125.4 SP與SM
2、GW之間的消息定義135.4.1 login135.4.2 login_resp145.4.3 submit155.4.4 submit_resp165.4.5 deliver165.4.6 deliver_resp175.4.7 active_test185.4.8 active_test_resp185.4.9 exit185.4.10 exit_resp185.5 SMGW與SMGW之間的消息定義185.5.1 login195.5.2 login_resp195.5.3 active_test205.5.4 active_test_resp205.5.5 forward205.5.6
3、forward_resp225.5.7 exit225.5.8 exit_resp236狀態(tài)報(bào)告格式246.1 MO的狀態(tài)報(bào)告246.2 MT的狀態(tài)報(bào)告257CNGP編碼說明267.1 短消息格式代碼表267.2 短消息狀態(tài)表267.3 Err錯(cuò)誤代碼表317.4 status錯(cuò)誤代碼表327.5 TLV說明表338基于CNGP的API函數(shù)35附錄A 基于CNGP協(xié)議的API函數(shù)說明36前 言本標(biāo)準(zhǔn)描述了PHS短消息網(wǎng)關(guān)(SMGW)和服務(wù)提供商(SP)之間、短消息網(wǎng)關(guān)(SMGW)和短消息網(wǎng)關(guān)(SMGW)之間的通信協(xié)議。本協(xié)議簡(jiǎn)稱CNGP(China Netcom Short Message G
4、ateway Protocol)。本標(biāo)準(zhǔn)是PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范的系列規(guī)范之一,該系列規(guī)范的名稱如下:PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范 第一分冊(cè):短消息網(wǎng)關(guān)與服務(wù)提供商(SP)接口規(guī)范(CNGP);PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范 第二分冊(cè):短消息網(wǎng)關(guān)與計(jì)費(fèi)中心接口規(guī)范;PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范 第三分冊(cè):短消息中心外部接口協(xié)議(CNPP);PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范 第四分冊(cè):短消息網(wǎng)關(guān)設(shè)備規(guī)范;PHS短消息網(wǎng)關(guān)技術(shù)規(guī)范 V2.0說明。1適用范圍本規(guī)范適用于短消息網(wǎng)關(guān)(SMGW)開發(fā)商和短消息服務(wù)提供商(SP)。2引用標(biāo)準(zhǔn) SMPP (Short Message Peer to Peer Protocol
5、Specification) v3.43縮略語(yǔ)英文縮寫英文全稱說明SMGW Short Message Gateway短消息網(wǎng)關(guān)SMPPShort Message Peer to Peer 短消息點(diǎn)對(duì)點(diǎn)協(xié)議SMSCShort Message Service Center短消息中心SP Service Provider服務(wù)提供商TLVTag Length Value由tag/length/value三參數(shù)定義變量MOMessage Origination用戶發(fā)送短消息到SP 的上行過程MTMessage TerminationSP發(fā)送短消息到用戶的下行過程PSCPrepaid Service C
6、enter預(yù)付費(fèi)中心CRCharge RequestSP為收取業(yè)務(wù)費(fèi)用而向短消息網(wǎng)關(guān)發(fā)送的消息,短消息網(wǎng)關(guān)收到消息后不送給用戶,僅產(chǎn)生相應(yīng)的話單4CNGP概述4.1 CNGP功能描述CNGP標(biāo)準(zhǔn)是SP與SMGW,以及SMGW與SMGW之間的通信標(biāo)準(zhǔn)。CNGP可以實(shí)現(xiàn)以下功能:1) SP通過SMGW向用戶發(fā)送短消息,例如郵件通知、天氣預(yù)報(bào)等。2) 短消息用戶向SP點(diǎn)播信息,例如查詢股票信息、航班信息等。3) SP以某個(gè)短消息用戶的身份向其他短消息用戶發(fā)送信息。4) 短消息用戶發(fā)送的短消息通過SMGW轉(zhuǎn)發(fā)給異地或異網(wǎng)的短消息用戶。注:異網(wǎng)是指其他運(yùn)營(yíng)商的網(wǎng)絡(luò),以下同。4.2 協(xié)議棧CNGP標(biāo)準(zhǔn)以T
7、CP/IP作為底層通信承載,具體結(jié)構(gòu)由圖4.1所示:CNGP TCPIP底層承載SMGWCNGP TCPIP底層承載CNGP/CNPPTCPIP底層承載CNPP TCPIP底層承載SMGWSP SMSC圖4.1 CNGP協(xié)議棧4.3 通信方式SP與SMGW之間、SMGW與SMGW之間進(jìn)行信息交互時(shí),可以采用長(zhǎng)連接方式,也可以采用短連接方式。所謂長(zhǎng)連接,指在一個(gè)TCP連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,在TCP連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測(cè)消息以維持此連接。短連接是指通信雙方有數(shù)據(jù)交互時(shí),就建立一個(gè)TCP連接,數(shù)據(jù)發(fā)送完成后,則斷開此TCP連接,即每次TCP連接只完成一對(duì)CNGP
8、消息的發(fā)送。4.3.1 長(zhǎng)連接通信雙方以客戶-服務(wù)器方式建立TCP連接,用于雙方信息的相互提交。當(dāng)信道上沒有數(shù)據(jù)傳輸時(shí),通信雙方應(yīng)每隔時(shí)間C發(fā)送鏈路檢測(cè)消息以維持此連接,當(dāng)鏈路檢測(cè)消息發(fā)出超過時(shí)間T后未收到應(yīng)答,應(yīng)立即再發(fā)送鏈路檢測(cè)消息,再連續(xù)發(fā)送N-1次后仍未得到應(yīng)答則斷開此連接。參數(shù)C、T、N原則上應(yīng)可配置,現(xiàn)階段建議取值為:C=3分鐘,T=60秒,N=3。SMGW與SP之間、SMGW與SMGW之間的消息發(fā)送后等待T秒后未收到應(yīng)答,應(yīng)立即重發(fā),再連續(xù)發(fā)送N-1次后仍未得到應(yīng)答則停發(fā)?,F(xiàn)階段建議取值為:T=60秒,N=3。消息采用并發(fā)方式發(fā)送,加以滑動(dòng)窗口流量控制,窗口大小參數(shù)W可配置,現(xiàn)階
9、段建議為16,即接收方在應(yīng)答前一次收到的消息最多不超過16條。長(zhǎng)連接的操作流程舉例如圖4.2所示: . . . . . . 拆除TCP連接建立TCP連接對(duì)CNGP消息2的應(yīng)答對(duì)CNGP消息1的應(yīng)答CNGP消息2服務(wù)器端客戶端CNGP消息1滑動(dòng)窗口不大于WW鏈路檢測(cè)消息 鏈路檢測(cè)消息應(yīng)答鏈路檢測(cè)消息 鏈路檢測(cè)消息應(yīng)答 . . . . . . 圖4.2 長(zhǎng)連接一次操作流程4.3.2 短連接通信雙方以客戶-服務(wù)器方式建立TCP連接,應(yīng)答與請(qǐng)求在同一個(gè)連接中完成。系統(tǒng)采用客戶/服務(wù)器模式,操作以客戶端驅(qū)動(dòng)方式發(fā)起連接請(qǐng)求,完成一次操作后關(guān)閉此連接。SMGW與SP之間、SMGW與SMGW之間的消息發(fā)送后
10、等待T秒后未收到應(yīng)答,應(yīng)根據(jù)重發(fā)機(jī)制進(jìn)行重發(fā),再連續(xù)發(fā)送N-1次后仍未得到應(yīng)答則停發(fā)?,F(xiàn)階段建議取值為:T=60秒,N=3。短連接的操作流程舉例如圖4.3所示: . . . . . . 對(duì)CNGP消息1的應(yīng)答CNGP消息1建立TCP連接拆除TCP連接服務(wù)器/客戶端客戶端/服務(wù)器端建立TCP連接CNGP消息2對(duì)CNGP消息2的應(yīng)答拆除TCP連接圖4.3 短連接的操作流程4.3.3 交互過程中的應(yīng)答方式在SP與SMGW及SMGW與SMGW之間的交互過程中均采用異步方式,即任一個(gè)網(wǎng)元在收到請(qǐng)求消息后應(yīng)立即回送應(yīng)答消息。每個(gè)網(wǎng)元單獨(dú)產(chǎn)生并匹配MsgID。舉例如圖4.4所示: SMGW2 SMGW1 S
11、MSC SP CNPP應(yīng)答消息 CNPP請(qǐng)求消息CNGP請(qǐng)求消息CNGP應(yīng)答消息CNGP請(qǐng)求消息CNGP應(yīng)答消息圖4.4 異步交互方式示意圖4.3.4 端口號(hào)端口號(hào)應(yīng)用9890 長(zhǎng)連接(SP與SMGW之間)9900短連接(SP與SMGW或SMGW與SMGW之間)9930 長(zhǎng)連接(SMGW與SMGW之間)9001長(zhǎng)連接(SMGW與預(yù)付費(fèi)平臺(tái)之間) 4.4 通信流程4.4.1 CNGP登錄模式在CNGP標(biāo)準(zhǔn)的一個(gè)會(huì)話中客戶端可以采用三種登錄方式與服務(wù)器端相連:發(fā)送模式(Transmit Mode)、接收模式(Receive Mode)和收發(fā)模式(Transceiver Mode)。在發(fā)送模式中客戶
12、端只能發(fā)送短消息、在接收模式中客戶端只能接收短消息、在收發(fā)模式中客戶端既可以發(fā)送也可以接收短消息。三種模式均可以采用長(zhǎng)連接與短連接兩種連接方式的一種,根據(jù)實(shí)際情況選擇。4.4.2 SP發(fā)送短消息SP以發(fā)送者或者是收發(fā)者身份登錄后,就可以發(fā)送短消息。SP可以不等待上一個(gè)短消息的應(yīng)答消息,就發(fā)送下一個(gè)短消息。 圖 4.5 SP發(fā)送短消息4.4.3 SP接收短消息SP以接收者或者是收發(fā)者身份登錄后,SMGW向SP發(fā)送短消息,SMGW可以不等待上一個(gè)短消息的應(yīng)答消息,就發(fā)送下一個(gè)短消息。圖 4.6 SP接收短消息4.4.4 SMGW轉(zhuǎn)發(fā)短消息SMGW需要把異地或異網(wǎng)短消息轉(zhuǎn)發(fā)到相應(yīng)的SMGW,在轉(zhuǎn)發(fā)短
13、消息之前SMGW需要通過對(duì)方SMGW認(rèn)證。圖 4.7 SMGW轉(zhuǎn)發(fā)短消息4.5 編號(hào)規(guī)則在整個(gè)SMGW系統(tǒng)中所有的通信節(jié)點(diǎn)(SMGW、SP 和SMSC)都有一個(gè)唯一的數(shù)字編號(hào),不同的SP 、SMSC 或SMGW 編號(hào)不能相同,編號(hào)由系統(tǒng)管理人員負(fù)責(zé)分配,由集團(tuán)統(tǒng)一管理,編號(hào)規(guī)則如下:SMGW的編號(hào)規(guī)則:1AAAXYSMSC的編號(hào)規(guī)則: 2AAAXYSP企業(yè)的編號(hào)規(guī)則:3AAAQQQQQQ其中,AAA 表示三位長(zhǎng)途區(qū)號(hào)(不足三位的長(zhǎng)途區(qū)號(hào)右對(duì)齊左補(bǔ)零),XY表示從00到99的序號(hào),QQQQQQ 表示6位企業(yè)代碼。SP服務(wù)的編號(hào)規(guī)則:服務(wù)代碼是在使用短消息方式的點(diǎn)播類業(yè)務(wù)中,提供給用戶點(diǎn)播的短消息
14、服務(wù)代碼。服務(wù)代碼以前綴4位數(shù)字表示,全國(guó)業(yè)務(wù)服務(wù)代碼長(zhǎng)度統(tǒng)一為 8 位,即前綴“1000”“9999”,其中前綴為“1061”“1069”,由集團(tuán)統(tǒng)一分配;本地業(yè)務(wù)服務(wù)代碼長(zhǎng)度統(tǒng)一為9 位,即前綴“01000”“09999”,其中前綴為“1061”“1069”,后五位數(shù)字由各省自行分配。SP業(yè)務(wù)的編號(hào)規(guī)則:SP的業(yè)務(wù)類型,數(shù)字、字母和符號(hào)的組合,由SP自定,如圖片傳情可定為TPCQ,股票查詢可定義為11。最大長(zhǎng)度為10字節(jié)。5CNGP消息定義5.1 基本數(shù)據(jù)類型類型說明Integer整數(shù),長(zhǎng)度根據(jù)具體協(xié)議確定,多字節(jié)情況下高字節(jié)在前Unsigned Integer無(wú)符號(hào)整數(shù)Octet Str
15、ing定長(zhǎng)字符串,位數(shù)不足時(shí)左對(duì)齊,右補(bǔ)二進(jìn)制的零5.2 消息結(jié)構(gòu)項(xiàng)目說明格式Message Header消息頭(所有消息公共包頭)定長(zhǎng)Message Body消息體(必選部分)變長(zhǎng)Message Body消息體(可選部分)TLV5.3 消息頭格式字段名字節(jié)數(shù)類型描述total_length4Unsigned Integer消息總長(zhǎng)度(含消息頭及消息體)command_id4Unsigned Integer命令標(biāo)識(shí)command_status4Unsigned Integer命令狀態(tài)(參見7.4 status錯(cuò)誤代碼表)sequence_id4Unsigned Integer消息流水號(hào),順序累
16、加,步長(zhǎng)為1,循環(huán)使用(一對(duì)請(qǐng)求和應(yīng)答消息的流水號(hào)必須相同)5.4 SP與SMGW之間的消息定義請(qǐng)求名稱請(qǐng)求標(biāo)識(shí)消息方向說明login0xSPSMGW登錄請(qǐng)求login_resp0xSPSMGW登錄請(qǐng)求的應(yīng)答submit0xSP SMGWSP發(fā)送短消息請(qǐng)求submit_resp0xSPSMGWSP發(fā)送短消息請(qǐng)求的應(yīng)答deliver0xSMGWSPSMGW發(fā)送短消息請(qǐng)求deliver_resp0xSMGWSPSMGW發(fā)送短消息的應(yīng)答active_test0xSPSMGW測(cè)試通信鏈路是否正常請(qǐng)求(由客戶端發(fā)起,SP和SMGW可以通過定時(shí)發(fā)送此請(qǐng)求來(lái)維持連接)active_test_resp0xSP
17、 SMGW測(cè)試通信鏈路是否正常的應(yīng)答exit0xSPSMGW退出請(qǐng)求exit_resp0xSPSMGW退出請(qǐng)求的應(yīng)答5.4.1 login字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明ClientID10Octet StringSMGW設(shè)置的SP接入標(biāo)識(shí)AuthenticatorClient16Octet String客戶端密碼用于鑒別客戶端的接入請(qǐng)求。其值通過單向MD5 hash計(jì)算得出,表示如下:AuthenticatorClient =MD5(ClientID+7字節(jié)的二進(jìn)制0 +Shared secret+TimeStamp)Shared secret 由服務(wù)器端與客戶端事先商定的,最長(zhǎng)15 字節(jié), T
18、imeStamp格式為:mmddhhmmss,即月日時(shí)分秒,10位LoginMode1Integer登錄類型(0=發(fā)送短消息,1=接收短消息,2=收發(fā)短消息,其他保留)TimeStamp4Integer時(shí)間戳的明文,由客戶端產(chǎn)生,格式為mmddhhmmss,即月日時(shí)分秒,10位數(shù)字的整型,右對(duì)齊 Version1Integer客戶端支持的版本號(hào)(高位4bit表示主版本號(hào),低位4bit表示次版本號(hào))5.4.2 login_resp字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明AuthenticatorServer16Octet String服務(wù)器端認(rèn)證碼,當(dāng)客戶端認(rèn)證出錯(cuò)時(shí),此項(xiàng)為空其值通過單向MD5 hash計(jì)
19、算得出,表示如下:AuthenticatorServer=MD5(Status+AuthenticatorClient+Shared secret)Shared secret 由服務(wù)器端與客戶端事先商定,最長(zhǎng)15 字節(jié)AuthenticatorClient為客戶端發(fā)送給服務(wù)器端的上一條消息login中的值Version1Integer服務(wù)器支持的最高版本號(hào)5.4.3 submit字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明SPID10IntegerSP的企業(yè)代碼SubType1Integer短消息子類型(0取消訂閱,1訂閱或點(diǎn)播請(qǐng)求,2點(diǎn)播下發(fā),3訂閱下發(fā),其他保留)NeedReport1Integer是否要
20、求返回狀態(tài)報(bào)告:(0不要求,1要求)Priority1Integer發(fā)送優(yōu)先級(jí)(從0到3)3為最高級(jí)ServiceID10Octet String業(yè)務(wù)類型FeeType2Octet String資費(fèi)類型00=免費(fèi)01=按條收費(fèi)02=包月03=封頂04=包月扣費(fèi)請(qǐng)求05=CR話單 其他:保留FeeUserType1Octet String計(jì)費(fèi)用戶類型字段0:對(duì)目的終端計(jì)費(fèi)1:對(duì)源終端計(jì)費(fèi)2:對(duì)SP計(jì)費(fèi)3:按照計(jì)費(fèi)用戶號(hào)碼計(jì)費(fèi)其他保留FeeCode6Octet String每條短消息的信息費(fèi),單位:分MsgFormat1Octet String短消息格式(參見短消息格式代碼表7.1)ValidTi
21、me17Octet String有效時(shí)間,(格式:參照SMPP3.4協(xié)議)AtTime17Octet String定時(shí)發(fā)送時(shí)間,(格式:參照SMPP3.4協(xié)議)SrcTermID21Octet String短消息發(fā)送用戶號(hào)碼ChargeTermID21Octet String計(jì)費(fèi)用戶號(hào)碼DestTermIDCount1Integer短消息接收號(hào)碼總數(shù)(100)DestTermID21* DestTerm CountOctet String短消息接收號(hào)碼(連續(xù)存儲(chǔ)DestTermIDCount個(gè)號(hào)碼)MsgLength1Unsigned Integer短消息長(zhǎng)度MsgContent254Octe
22、t String短消息內(nèi)容ProtocolIDTLV協(xié)議標(biāo)識(shí)(參見TLV說明表7.5)5.4.4 submit_resp字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明MsgID10Octet StringSMGW產(chǎn)生的短消息流水號(hào),由三部分組成:SMGW代碼:3字節(jié)(BCD碼)時(shí)間:4字節(jié)(BCD碼)序列號(hào):3字節(jié)(BCD碼)CongestionState TLV 流量控制(參見TLV說明表7.5)5.4.5 deliver字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明MsgID10Octet StringSMGW產(chǎn)生的短消息流水號(hào),由三部分組成:SMGW代碼:3字節(jié)(BCD碼)時(shí)間:4字節(jié)(BCD碼)序列號(hào):3字節(jié)(BCD碼)
23、IsReport1Integer是否狀態(tài)報(bào)告:0:不是1:是MsgFormat1Integer短消息格式(參見短消息格式代碼表7.1)RecvTime14Octet String短消息接收時(shí)間(格式:yyyymmddhhmmss,例如000)SrcTermID21Octet String短消息發(fā)送用戶號(hào)碼DestTermID21Octet String短消息接收用戶號(hào)碼MsgLength1Unsigned Integer短消息長(zhǎng)度MsgContent254Octet String短消息內(nèi)容ProtocolIDTLV協(xié)議標(biāo)識(shí)(參見TLV說明表7.5)5.4.6 deliver_resp字段長(zhǎng)度(
24、字節(jié))數(shù)據(jù)類型說明MsgID10Octet StringSMGW產(chǎn)生的短消息流水號(hào),由三部分組成:SMGW代碼:3字節(jié)(BCD碼)時(shí)間:4字節(jié)(BCD碼)序列號(hào):3字節(jié)(BCD碼)CongestionState TLV 流量控制(參見TLV說明表7.5)5.4.7 active_test無(wú)消息體。5.4.8 active_test_resp無(wú)消息體。5.4.9 exit無(wú)消息體。5.4.10 exit_resp無(wú)消息體。5.5 SMGW與SMGW之間的消息定義請(qǐng)求名稱請(qǐng)求標(biāo)識(shí)說明login0xSMGW登錄請(qǐng)求login_resp0xSMGW登錄請(qǐng)求的應(yīng)答active_test0x測(cè)試通信鏈路是
25、否正常請(qǐng)求(由客戶端發(fā)起,SMGW和SMGW可以通過定時(shí)發(fā)送此請(qǐng)求來(lái)維持連接)active_test_resp0x測(cè)試通信鏈路是否正常的應(yīng)答forward0xSMGW轉(zhuǎn)發(fā)短消息請(qǐng)求forward_resp0xSMGW轉(zhuǎn)發(fā)短消息的應(yīng)答exit0x退出請(qǐng)求exit_resp0x退出請(qǐng)求的應(yīng)答5.5.1 login字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明ClientID10Octet String此處為源SMGW代碼AuthenticatorClient16Octet String客戶端密碼用于鑒別客戶端的接入請(qǐng)求。其值通過單向MD5 hash計(jì)算得出,表示如下:AuthenticatorClient =MD5
26、(ClientID+7字節(jié)的二進(jìn)制0 +Shared secret+TimeStamp) Shared secret 由服務(wù)器端與客戶端事先商定的,最長(zhǎng)15 字節(jié), TimeStamp格式為:mmddhhmmss,即月日時(shí)分秒,10位LoginMode1Integer登錄類型(0=發(fā)送短消息,1=接收短消息,2=收發(fā)短消息,其他保留)TimeStamp4Integer時(shí)間戳的明文,由客戶端產(chǎn)生,格式為mmddhhmmss,即月日時(shí)分秒,10位數(shù)字的整型,右對(duì)齊 Version1Integer客戶端支持的版本號(hào)(高位4bit表示主版本號(hào),低位4bit表示次版本號(hào))5.5.2 login_resp
27、字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明AuthenticatorServer16Octet String服務(wù)器端認(rèn)證碼,當(dāng)客戶端認(rèn)證出錯(cuò)時(shí),此項(xiàng)為空其值通過單向MD5 hash計(jì)算得出,表示如下:AuthenticatorServer=MD5(Status+AuthenticatorClient+Shared secret) Shared secret 由服務(wù)器端與客戶端事先商定,最長(zhǎng)15 字節(jié) AuthenticatorClient為客戶端發(fā)送給服務(wù)器端的上一條消息login中的值Version1Integer服務(wù)器支持的最高版本號(hào)5.5.3 active_test無(wú)消息體。5.5.4 active_
28、test_resp無(wú)消息體。5.5.5 forward字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明MsgID10Octet StringSMGW產(chǎn)生的短消息流水號(hào),由三部分組成:SMGW代碼:3字節(jié)(BCD碼)時(shí)間:4字節(jié)(BCD碼)序列號(hào):3字節(jié)(BCD碼)DestSMGWNo6Octet String目標(biāo)SMGW代碼SrcSMGWNo6Octet String源SMGW代碼SMSCNo6Octet String源SMSC代碼SMType1Integer短消息類型(0=PHS用戶發(fā)到SP的MO,1PHS用戶發(fā)到異網(wǎng)用戶,2SP發(fā)到PHS用戶的MT,3異網(wǎng)用戶發(fā)到PHS用戶,4同一二級(jí)SMGW下的不同SMSC
29、之間的點(diǎn)對(duì)點(diǎn),5=異省點(diǎn)到點(diǎn),其他保留)SubType1Integer短消息子類型(0取消訂閱,1訂閱或點(diǎn)播請(qǐng)求,2點(diǎn)播下發(fā),3訂閱下發(fā),其他保留)ReportFlag1Integer狀態(tài)報(bào)告標(biāo)志(0是狀態(tài)報(bào)告,1要求狀態(tài)報(bào)告,2不要求狀態(tài)報(bào)告,其他保留)Priority1Integer發(fā)送優(yōu)先級(jí)(從0到3)3為最高級(jí)ServiceID10Octet String業(yè)務(wù)類型FeeType2Octet String資費(fèi)類型00=免費(fèi)01=按條收費(fèi)02=包月03=封頂04=包月扣費(fèi)請(qǐng)求05=CR話單 其他:保留FeeCode6Octet String每條短消息的信息費(fèi),單位:分MsgFormat1I
30、nteger短消息格式(參見短消息格式代碼表7.1)ValidTime17Octet String有效時(shí)間,(格式:參照SMPP3.4協(xié)議)AtTime17Octet String定時(shí)發(fā)送時(shí)間,(格式:參照SMPP3.4協(xié)議) SrcTermID21Octet String短消息發(fā)送用戶號(hào)碼DestTermID21Octet String短消息接收號(hào)碼ChargeTermID21Octet String表示“計(jì)費(fèi)用戶號(hào)碼”; 一級(jí)網(wǎng)關(guān)與二級(jí)網(wǎng)關(guān)把此字段作為計(jì)費(fèi)號(hào)碼標(biāo)識(shí)并觸發(fā)計(jì)費(fèi)。MsgLength1Unsigned Integer短消息長(zhǎng)度MsgContent254Octet String短消
31、息內(nèi)容NodesCount1Integer經(jīng)過SMGW的數(shù)量ProtocolIDTLV協(xié)議標(biāo)識(shí)(參見TLV說明表7.5)5.5.6 forward_resp字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明MsgID10Octet StringSMGW產(chǎn)生的短消息流水號(hào),由三部分組成:SMGW代碼:3字節(jié)(BCD碼)時(shí)間:4字節(jié)(BCD碼)序列號(hào):3字節(jié)(BCD碼)CongestionState TLV 流量控制(參見TLV說明表7.5)5.5.7 exit無(wú)消息體。5.5.8 exit_resp無(wú)消息體。6狀態(tài)報(bào)告格式6.1 MO的狀態(tài)報(bào)告目的SMGW向源SMGW通知SP接收情況的狀態(tài)報(bào)告,即MO的狀態(tài)報(bào)告,信息
32、內(nèi)容字段(MsgContent)格式定義:“id:IIIIIIIIII sub:SSS dlvrd:DDD delivertime:YYMMDDhhmm done_time: YYMMDDhhmm stat:DDDDDDD err:E txt:”。其中各字段的定義如下表所示:字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明id10Octet String狀態(tài)報(bào)告對(duì)應(yīng)原短消息的MsgIDsub 3Octet String取缺省值001dlvrd3Octet String取缺省值001delivertime10Octet StringYYMMDDHHMM(YY為年的后兩位00-99,MM:01-12,DD:01-31
33、,HH:00-23,MM:00-59)注:短消息網(wǎng)關(guān)發(fā)出deliver的時(shí)間done_time10Octet StringYYMMDDHHMM注:短消息網(wǎng)關(guān)收到deliver_resp的時(shí)間stat7Octet String短消息狀態(tài)(參見第7.2 節(jié)短消息狀態(tài)表)err3Octet String參見第7.3 節(jié)Err錯(cuò)誤代碼表txt20Octet String前3 個(gè)字節(jié),表示短消息長(zhǎng)度(用ASCII碼表示),后17 個(gè)字節(jié)表示短消息的內(nèi)容(保證內(nèi)容不出現(xiàn)亂碼)后補(bǔ)零6.2 MT的狀態(tài)報(bào)告當(dāng)SMGW向SP送交狀態(tài)報(bào)告時(shí),即MT的狀態(tài)報(bào)告,信息內(nèi)容字段(MsgContent)格式定義:“id:
34、IIIIIIIIII sub:SSS dlvrd:DDD; submit_date:YYMMDDhhmm done_date: YYMMDDhhmm stat:DDDDDDD; err:E;txt:”。其中各字段的定義如下表所示:字段長(zhǎng)度(字節(jié))數(shù)據(jù)類型說明id10Octet String上次提交到SMSC的短消息編號(hào)sub3Octet String取缺省值001dlvrd3Octet String取缺省值001submit_date10Octet StringSMGW提交短消息到SMSC的時(shí)間,時(shí)間格式為YYMMDDhhmmdone_date10Octet String短消息產(chǎn)生狀態(tài)報(bào)告時(shí)間
35、時(shí)間格式為YYMMDDhhmmstat7Octet String短消息狀態(tài)(參見第7.2 節(jié)短消息狀態(tài)表)err3Octet String錯(cuò)誤碼,參見第7.3 節(jié)Err錯(cuò)誤代碼表txt20Octet String前3 個(gè)字節(jié),表示短消息長(zhǎng)度(用ASCII碼表示),后17 個(gè)字節(jié)表示短消息的內(nèi)容(保證內(nèi)容不出現(xiàn)亂碼)注:狀態(tài)報(bào)告在SMSC產(chǎn)生,SMGW接收狀態(tài)報(bào)告時(shí),修改狀態(tài)報(bào)告中的MsgID并轉(zhuǎn)發(fā)。異網(wǎng)用戶發(fā)到PHS用戶、同一二級(jí)SMGW下的不同SMSC之間的點(diǎn)對(duì)點(diǎn)、異省點(diǎn)到點(diǎn)的短消息狀態(tài)報(bào)告均遵照MT的狀態(tài)報(bào)告格式。狀態(tài)報(bào)告的smtype按照普通短消息來(lái)填寫,即按照消息傳送方向填寫,如:mo
36、的狀態(tài)報(bào)告消息的smtype填寫2,mt的狀態(tài)報(bào)告消息的smtype填為0,PHS用戶發(fā)到異網(wǎng)用戶消息的狀態(tài)報(bào)告smtype填寫3,異網(wǎng)用戶發(fā)到PHS用戶消息的狀態(tài)報(bào)告smtype填寫1,同一二級(jí)SMGW下的不同SMSC之間的點(diǎn)對(duì)點(diǎn)消息狀態(tài)報(bào)告填寫4,異省省點(diǎn)到點(diǎn)消息狀態(tài)報(bào)告填寫5。狀態(tài)報(bào)告消息中除了MsgContent和SMType按照定義來(lái)填寫,其余字段可以看作沒有明確定義取值的字段,整型字段取0,octet string取null。7CNGP編碼說明7.1 短消息格式代碼表代碼含義0ASCII編碼3保留4二進(jìn)制短消息8UCS2編碼15GB2312編碼7.2 短消息狀態(tài)表狀態(tài)名狀態(tài)值(字符
37、串)說明DELIVEREDDELIVRD短消息轉(zhuǎn)發(fā)成功EXPIREDEXPIRED短消息超過有效期DELETEDDELETED短消息已經(jīng)被刪除UNDELIVERABLEUNDELIV短消息是不可轉(zhuǎn)發(fā)的ACCEPTEDACCEPTD短消息已經(jīng)被最終用戶接收(為保持與SMPP兼容,保留)UNKNOWNUNKNOWN未知短消息狀態(tài)REJECTEDREJECTD短消息被拒絕(為保持與SMPP兼容,保留)CA:XXXXCA:XXXXSMGW向PSC發(fā)送計(jì)費(fèi)請(qǐng)求時(shí),因?yàn)榘l(fā)送失敗、網(wǎng)絡(luò)原因、PSC超時(shí)等原因造成的SMGW未接收到PSC應(yīng)答消息,SMGW生成的狀態(tài)報(bào)告中status字段的取值,其中XXXX為S
38、MGW認(rèn)定的錯(cuò)誤原因代碼,其長(zhǎng)度為4位,不足4位在前面補(bǔ)0,具體值見對(duì)XXXX的說明CB:YYYYCB:YYYYSMGW向PSC發(fā)送計(jì)費(fèi)請(qǐng)求時(shí),接收到PSC的應(yīng)答消息表明計(jì)費(fèi)失敗,SMGW生成的狀態(tài)報(bào)告中的status字段的取值,其中YYYY為PSC返回給SMGW的錯(cuò)誤碼,其長(zhǎng)度為4位,不足4位在前面補(bǔ)0,具體值參見對(duì)YYYY的說明MA:XXXXMA:XXXXSMGW向SMSC發(fā)送短消息時(shí),因?yàn)榘l(fā)送失敗、網(wǎng)絡(luò)原因、SMSC超時(shí)等原因造成的SMGW未接收到SMSC應(yīng)答消息,SMGW生成的狀態(tài)報(bào)告中的status字段的取值,其中XXXX為SMGW認(rèn)定的錯(cuò)誤原因代碼,其長(zhǎng)度為4位,不足4位在前面補(bǔ)0
39、,具體值參見對(duì)XXXX的說明MB:ZZZZMB:ZZZZSMGW向SMSC發(fā)送短消息時(shí),接收到SMSC的應(yīng)答消息表明SMSC處理消息失敗,SMGW生成的狀態(tài)報(bào)告中的status字段的取值,其中ZZZZ為SMSC返回給SMGW的錯(cuò)誤碼,其長(zhǎng)度為4位,不足4位在前面補(bǔ)0,具體值參見對(duì)ZZZZ的說明1、XXXX的定義:XXXX的值(4位,不足4位前面補(bǔ)0)含義0051尚未建立連接0052尚未成功登錄0053發(fā)送消息失敗0054超時(shí)未接收到應(yīng)答消息01000499廠家自定義的錯(cuò)誤碼其它保留未用2、YYYY的定義:YYYY的值(4位,不足4位前面補(bǔ)0)含義0001非預(yù)付費(fèi)用戶0002數(shù)據(jù)庫(kù)操作失敗000
40、3鑒權(quán)失敗0004超過最大錯(cuò)誤次數(shù)0005PHS用戶帳戶數(shù)據(jù)異常0006服務(wù)沒有激活0007用戶余額不足0008超過包月費(fèi)用上限0009超過最高欠費(fèi)額0010用戶已注冊(cè)該項(xiàng)服務(wù)0011用戶沒有注冊(cè)該項(xiàng)服務(wù)0014未登記的SMGW0015SMGW登錄摘要錯(cuò)誤0016參數(shù)錯(cuò)誤0017服務(wù)器端數(shù)據(jù)未傳完0018重復(fù)發(fā)送消息序列號(hào)MsgID相同的計(jì)費(fèi)請(qǐng)求消息0020未知錯(cuò)誤0021數(shù)據(jù)庫(kù)錯(cuò)誤0022SP互聯(lián)失敗0023數(shù)值越界0024字段超長(zhǎng)0025無(wú)相關(guān)數(shù)據(jù)0026數(shù)據(jù)重復(fù)0040未登記的SP0041SP帳戶狀態(tài)異常0042SP無(wú)權(quán)限0043SP帳戶已存在0044未登記的SP業(yè)務(wù)類型0045SP業(yè)務(wù)
41、類型數(shù)據(jù)異常0046SP業(yè)務(wù)類型已存在0052保留0053保留0054保留0055簽約信息已存在0056簽約信息不存在0057簽約數(shù)據(jù)異常0061月消費(fèi)超額0062單筆消費(fèi)超額0063用戶拒絕0064短消息編號(hào)已存在0065對(duì)應(yīng)扣費(fèi)請(qǐng)求不存在0066扣費(fèi)請(qǐng)求已被確認(rèn)0067未定義的計(jì)費(fèi)類型0068未定義的編碼方式01000499廠家自定義的錯(cuò)誤碼其它保留未用3、ZZZZ的定義:ZZZZ的值(4位,不足4位前面補(bǔ)0)含義0X 0XF保留給SMSC廠商定義錯(cuò)誤0X消息長(zhǎng)度錯(cuò)誤0X命令長(zhǎng)度錯(cuò)誤0X消息ID無(wú)效0X沒有執(zhí)行此命令的權(quán)限0X 0XF保留0X無(wú)效的SYSTEMID0X無(wú)效的密碼0X無(wú)效的S
42、YSTEMTYPE0X 0XF保留0X地址錯(cuò)誤0X超過最大提交數(shù)0X超過最大下發(fā)數(shù)0X無(wú)效的用戶0X無(wú)效的數(shù)據(jù)格式0X創(chuàng)建消息失敗0X無(wú)效的MsgID0X數(shù)據(jù)庫(kù)失敗0X取消消息失敗0X短消息狀態(tài)錯(cuò)誤0XA替換消息失敗0XB替換消息源地址錯(cuò)誤0XC 0XF保留0X保留0X保留0X源地址錯(cuò)誤0X保留0X保留0X目的地址錯(cuò)誤0X無(wú)效的定時(shí)時(shí)間0X無(wú)效的超時(shí)時(shí)間0X無(wú)效的IsReport0X保留0XA無(wú)效的PRI0XB無(wú)效的NeedReport0XC保留0XD 0XF保留0X指定用戶已經(jīng)存在0X創(chuàng)建用戶失敗0X用戶ID錯(cuò)誤0X指定用戶不存在0X 0XF保留0X 0X00000FFF保留給SMSC廠商定
43、義錯(cuò)誤其他保留3、PSC常見的錯(cuò)誤情況1) 狀態(tài)報(bào)告stat為CB:0005:表示PHS后付費(fèi)用戶因?yàn)闋顟B(tài)不正確如處于停機(jī)、掛起等狀態(tài)而導(dǎo)致的用戶無(wú)法享受服務(wù);2) 狀態(tài)報(bào)告stat為CB:0007:表示PHS預(yù)付費(fèi)用戶因?yàn)橛囝~不足而導(dǎo)致用戶無(wú)法享受服務(wù);3) 狀態(tài)報(bào)告stat為EXPIRED:表示因?yàn)橛脩糸L(zhǎng)時(shí)間關(guān)機(jī)或者不在服務(wù)區(qū)等導(dǎo)致的短消息超時(shí)沒有遞交到用戶手機(jī)上;4) 狀態(tài)報(bào)告stat為UNDELIVERABLE:表示PHS后付費(fèi)用戶因?yàn)闋顟B(tài)不正確如處于停機(jī)、掛起等狀態(tài)而導(dǎo)致的用戶無(wú)法享受服務(wù)。7.3 Err錯(cuò)誤代碼表狀態(tài)值(字符串)說 明對(duì)應(yīng)狀態(tài)000成功DELIVRD001用戶不能通
44、信EXPIRED002用戶忙EXPIRED003終端無(wú)此部件號(hào)UNDELIV004非法用戶UNDELIV005用戶在黑名單內(nèi)UNDELIV006系統(tǒng)錯(cuò)誤UNDELIV007用戶內(nèi)存滿EXPIRED008非信息終端UNDELIV009數(shù)據(jù)錯(cuò)誤UNDELIV010數(shù)據(jù)丟失UNDELIV注:沒有的錯(cuò)誤類型一律用系統(tǒng)錯(cuò)誤,即006。用err還是stat判斷要說明。7.4 status錯(cuò)誤代碼表代碼含義0成功1系統(tǒng)忙2超過最大連接數(shù)3-9保留10消息結(jié)構(gòu)錯(cuò)11命令字錯(cuò)12序列號(hào)重復(fù)13-19保留20IP地址錯(cuò)21認(rèn)證錯(cuò)22版本太高23非法FeeUserType24非法SubType25NodesCoun
45、t 超過閾值26非法MsgID 27-29保留30非法消息類型(SMType)31非法優(yōu)先級(jí)(Priority)32非法資費(fèi)類型(FeeType)33非法資費(fèi)代碼(FeeCode)34非法短消息格式(MsgFormat)35非法時(shí)間格式36非法短消息長(zhǎng)度(MsgLength)37有效期已過38非法查詢類別(QueryType)39路由錯(cuò)誤40帳戶不存在41余額不足42帳戶不可用43非預(yù)付費(fèi)用戶44-127保留128-255廠家自定義7.5 TLV說明表1) TAG值定義如下:標(biāo)簽標(biāo)簽值描述ProtocolID0x0100協(xié)議標(biāo)識(shí)CongestionState0x0428擁塞狀態(tài)2) 具體定義:
46、A協(xié)議標(biāo)識(shí),缺省0字段長(zhǎng)度(字節(jié))類型描述Parameter Tag2Integer0x0100Length2IntegerValue實(shí)際長(zhǎng)度Value1Integer協(xié)議標(biāo)識(shí)B擁塞狀態(tài),缺省0字段長(zhǎng)度(字節(jié))類型描述Parameter Tag2Integer0x0428Length2IntegerValue實(shí)際長(zhǎng)度Value1Integer0 = 空閑1-29 = 低負(fù)荷30-49 =中負(fù)荷50-79 =高負(fù)荷80-90 =最合適的負(fù)荷90-99 =接近擁塞100 = 擁塞8基于CNGP的API函數(shù)詳見附錄A。附錄A 基于CNGP協(xié)議的API函數(shù)說明(提示的附錄)A.1基本要求A.1.1安裝
47、SMGW需要提供API軟件包,解壓到指定目錄下后可以修改配置文件,配置參數(shù)至少包括SPId(SP編號(hào))、SPShareKey(SP密碼)、ClientIP(客戶主機(jī)的IP地址)和ServerIP(SMGW地址)。A.1.2例子程序SMGW至少應(yīng)該提供以下例程,供SP調(diào)試使用,分別為:l Connect(參數(shù)),檢查是否能夠成功登錄SMGW;l TestAPI(參數(shù)),檢查是否能夠成功連接SMGW。l SetKey (參數(shù)),修改SP密碼。l SendSM(參數(shù))嘗試發(fā)送短消息。l RecvSM(參數(shù))嘗試接收短消息等。l RecvSMReport(參數(shù)),嘗試接收短消息狀態(tài)報(bào)告。A.1.3操作
48、系統(tǒng)平臺(tái)要求SMGW提供的API軟件包至少要求支持以下操作系統(tǒng)平臺(tái):l Free BSD 3.x,4.2l Solaris 5.6, 5.7, 5.8(包含x86)l Linux(Redhat和Slack等主流產(chǎn)品)l Windows NT/2000等SMGW提供的API軟件包至少要求支持以下編程語(yǔ)言:l C/C+l JAVAA.2 API數(shù)據(jù)結(jié)構(gòu)說明(以C語(yǔ)言為例)A.2.1接收短消息的返回?cái)?shù)據(jù)結(jié)構(gòu)(DeliverResp)l 用途保存CNGPDeliver函數(shù)返回的短消息內(nèi)容。l 字段說明字段名數(shù)據(jù)類型說明SMsgIDChar(11)短消息標(biāo)識(shí)nMsgFormatInt短消息格式(參照短消
49、息格式代碼表7.1)。SMGW不做判定, 透明傳輸。SSrcTermIDChar(22)短消息發(fā)送用戶號(hào)碼NIsReportInt是否為應(yīng)答信息。代碼含義:非應(yīng)答信息(0);應(yīng)答信息(1)NMsgLenInt消息長(zhǎng)度sMsgContentChar(201)消息內(nèi)容SDestTermIDchar(21)SP的接入代碼SRecvTimechar(15)短消息接收時(shí)間(格式:yyyymmddhhmiss,例如000)A.2.2獲取群發(fā)短消息的返回?cái)?shù)據(jù)結(jié)構(gòu)(SendBatchResp)l 用途使用CNGPSendBatch群發(fā)短消息后,每條短消息的“消息標(biāo)識(shí)”和“錯(cuò)誤代碼”保存在文件里。CNGP API提供GetSendBatchResp函數(shù)獲取每一條短消息返回信息,保存在SendBatchResp中。l 字段說明字段名數(shù)據(jù)類型說明SmsgIDChar(11)短消息標(biāo)識(shí)NerrorCodeInt錯(cuò)誤代碼(參照錯(cuò)誤代碼表)SphoneNoChar(22)發(fā)送號(hào)碼A.2.3查詢SMGW的返回?cái)?shù)據(jù)結(jié)構(gòu)(QueryResp可選)l 用途保存CNGPQuery函數(shù)返回的查詢結(jié)果。l 字段說明字段
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44878-2024凍土觀測(cè)頻域反射法
- 孕期水腫的健康宣教
- 慢性鼻炎的健康宣教
- 腳破潰的臨床護(hù)理
- 自發(fā)性蕁麻疹的臨床護(hù)理
- 《單片機(jī)原理及應(yīng)用》課件-第8章
- 腎上腺皮質(zhì)功能亢進(jìn)癥的臨床護(hù)理
- 代謝綜合征的臨床護(hù)理
- 宮頸外翻的健康宣教
- 更年期角化癥的臨床護(hù)理
- 鈴木教學(xué)法在我國(guó)鋼琴教學(xué)中的應(yīng)用研究 開題
- 掘進(jìn)迎頭預(yù)防冒頂片幫安全技術(shù)措施
- 【MOOC】操作系統(tǒng)及Linux內(nèi)核-西安郵電大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 全新危險(xiǎn)廢物運(yùn)輸安全協(xié)議(2024版)3篇
- 混凝土輸送泵車安全操作規(guī)程(4篇)
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題
- 2020年度圖書館中級(jí)職稱專業(yè)技術(shù)資格考試題庫(kù)
- 南京工業(yè)大學(xué)甲醇制氫工藝設(shè)計(jì)(反應(yīng)器)
- 農(nóng)業(yè)氣象學(xué)-作業(yè)3-國(guó)開(ZJ)-參考資料
- 口腔門診內(nèi)外營(yíng)銷培訓(xùn)
- 學(xué)校食堂應(yīng)對(duì)臨時(shí)增員的預(yù)案
評(píng)論
0/150
提交評(píng)論