?? smppv3.3規(guī)范(翻譯) ---第二期;.txt
字號(hào):
作者:退退
email: jasmine@2911.net
日期:7/31/2001 6:22:13 PM
3. 接口規(guī)范
SMSC和ESME間的接口可以是基于X.25網(wǎng)的,也可以是TCP/IP的.對(duì)于特定實(shí)現(xiàn)的細(xì)節(jié)請(qǐng)參考SMPP應(yīng)用指南[1].
無(wú)視底層網(wǎng)絡(luò)類型的SMSC和ESME間的接口將是客戶-服務(wù)器模式,也就是說(shuō),SMSC扮演服務(wù)器角色而ESME扮演客戶角色.在本文檔的剩余部分,"客戶"指系統(tǒng)初始化一個(gè)連接而"服務(wù)器"指系統(tǒng)為一個(gè)連接服務(wù).
注意這份文檔確定了接口在網(wǎng)絡(luò)層.然而事實(shí)是,這個(gè)接口也可能會(huì)在傳輸層實(shí)現(xiàn).
4. 協(xié)議消息
所有發(fā)出的消息,或者從ESME到SMSC,或者從SMSC到ESME,都將立即產(chǎn)生相應(yīng).
就向剛才提到的,一條消息從ESME提交到了SMSC最多能產(chǎn)生兩條響應(yīng).它們是:
一個(gè)應(yīng)用程序級(jí)的"resp"
SMSC處理完消息后將返回一個(gè)狀態(tài)報(bào)告.
圖4.1描繪了這些消息可能的遞送順序(基于X.25或TCP/IP實(shí)現(xiàn)的例子).Figure 4.1 Sample Message Sequence
ESME SMSC
| |
| submit_sm (1) |
|---------------------------------------------->|
| |
| submit_sm_resp(1) |
|<----------------------------------------------|
| |
| deliver_sm(1) |
|<----------------------------------------------|
| |
| deliver_sm_resp (1) |
|---------------------------------------------->|
| |
| submit_sm (2) |
|---------------------------------------------->|
| |
| submit_sm_resp(2) |
|<----------------------------------------------|
| |
圖4.1 消息順序樣例
想獲得ESME/SMSC協(xié)議消息順序的更多詳情,請(qǐng)參考SMPP應(yīng)用指南[1]
5. 基本應(yīng)用
本章主要講述ESME和SMSC之間基本的交換機(jī)制.有關(guān)網(wǎng)絡(luò)的具體實(shí)現(xiàn),比如X.25或TCP/IP,請(qǐng)看SMPP應(yīng)用指南[1].
5.1 SMSC通信的初始化
ESME通過(guò)實(shí)現(xiàn)特定的機(jī)制(見(jiàn)SMPP應(yīng)用指南[1])建立與SMSC的通信.
連接需要兩個(gè)虛擬連接.一個(gè)用于ESME系統(tǒng)中消息的產(chǎn)生,以及它的響應(yīng)消息.(比如,submit_sm, query_sm, cancel_sm,等等);另一個(gè)將用于SMSC中消息的產(chǎn)生和它們的響應(yīng)(比如: delivery_sm);
一旦一個(gè)"虛擬連接"被建立,ESME的兩個(gè)進(jìn)程都將發(fā)送一個(gè)請(qǐng)求,或者是綁定發(fā)送(Bind-Transmitter)的,或者是綁定接受(Bind-Reciver)的.假如是綁定發(fā)送的請(qǐng)求被發(fā)送出去,SMSC的進(jìn)程將接收產(chǎn)生于ESME系統(tǒng)的消息;如果是綁定接收的請(qǐng)求被發(fā)送,SMSC上的進(jìn)程將把消息給ESME.在同一個(gè)的"虛擬連接"上,響應(yīng)總是根據(jù)相應(yīng)的請(qǐng)求信息被返回.
關(guān)于上述描述見(jiàn)下圖說(shuō)明:
-----------------------------------------------------------
| ----------------------- ------------------------- |
| | | | | |
| | | ESME | | |
| | | | | | |
| |_____|_______________| |_______________________| |<----|
|_______|_________________________________________________| |
| |
| |
(虛擬連接)| ------------------------- |(虛擬連接)
| | | |
|------>| 通訊供應(yīng)商 |_______________________|
| 比如:X.25, TCP/IP |
----------------| |<---------------
| |_______________________| |
| |
| ----------------- ------------------- |
|------>| SMSC應(yīng)用程序 | | SMSC應(yīng)用程序 |-----
________|(綁定發(fā)送) | | (綁定接收) |<-----
| |_______________| |_________________| |
| |
| |
| ----------------------------------------- |
| | | |
------> | SMSC內(nèi)核 |_______|
| |
|_______________________________________|
圖5.1 ESME/SMSC通信
5.2 與SMSC間的穩(wěn)固狀態(tài)通信
一旦連接被建立,授權(quán)"綁定"請(qǐng)求被應(yīng)答,更多的請(qǐng)求/響應(yīng)消息可以被交換.響應(yīng)是針對(duì)某個(gè)請(qǐng)求而發(fā)送的.
5.3 停止與SMSC的通信
在任何時(shí)間,ESME或SMSC需要終止與對(duì)方的通信,它都將在合適的"虛擬連接"上發(fā)出"unbind"請(qǐng)求.這將使得接收系統(tǒng)有序地中斷通信.兩種虛擬連接的unbind請(qǐng)求都應(yīng)該在虛擬連接關(guān)閉前被接收系統(tǒng)應(yīng)答,
5.4 錯(cuò)誤處理和重發(fā)
接收系統(tǒng)必須確保所收數(shù)據(jù)類型的合法,并且檢查消息體各字段的值是否恰當(dāng)并且合法.如果消息類型或者字段的值不正確,將返回錯(cuò)誤代碼.本規(guī)范的7.1章將有關(guān)于錯(cuò)誤狀態(tài)碼的完整列表.
不論錯(cuò)誤是由于底層通信網(wǎng)絡(luò)產(chǎn)生的,還是由主機(jī)用于發(fā)送的應(yīng)用程序產(chǎn)生的,重發(fā)消息的任務(wù)都是屬于發(fā)送者的.發(fā)信方應(yīng)該設(shè)置好重發(fā)的次數(shù)以及當(dāng)重發(fā)次數(shù)用完后連接應(yīng)該關(guān)閉.ESME應(yīng)該嘗試重新連接.重新連接的方法與啟動(dòng)協(xié)議一樣.
消息頭中的序列號(hào)應(yīng)該由ESME生成.這個(gè)號(hào)碼應(yīng)該隨著每一個(gè)新生成的事務(wù)遞增.這個(gè)字段被接收系統(tǒng)保存并隨著應(yīng)答消息一同返回.這樣可以允許事務(wù)的映射和檢測(cè)重復(fù)的消息.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -