Sun Java System Messaging Server 6 2005Q4 管理指南

SMS 閘道伺服器作業原理

SMS 閘道伺服器可透過將行動電話發出的 SMS 郵件匹配至正確電子郵件位址的機制來實現雙向 SMS。本節包含以下 SMS 閘道伺服器主題:

SMS 閘道伺服器的功能

SMS 閘道伺服器同時充當 SMPP 轉送器與伺服器。可以將其配置為具有每項功能的多個「創設」。例如,它可被配置為具有三個不同的 SMPP 轉送器,每個都偵聽不同的 TCP 連接埠或網路介面,並轉送至不同的遠端 SMPP 伺服器。同樣,它也可被配置為具有四個不同的 SMPP 伺服器,每個都偵聽 TCP 連接埠與網路介面的不同組合。

SMS 閘道伺服器若要配置為將 SMS 郵件傳送至電子郵件,可以不使用閘道設定檔也可以使用多個閘道設定檔。每個閘道設定檔都說明哪個目標 SMS 位址符合該設定檔、如何從 SMS 郵件擷取目標電子郵件位址,以及 SMS 至電子郵件轉換程序的各種特徵。透過 SMPP 轉送器或伺服器提交給 SMS 閘道伺服器的每封 SMS 郵件都會與每個設定檔進行比對。如果找到相符項目,則此郵件會路由至電子郵件。

最後,閘道設定檔還說明如何處理遠端 SMSC 為回應先前的電子郵件至行動電話郵件而傳回的通知郵件。

SMPP 轉送器與伺服器的運作方式

充當 SMPP 轉送器時,SMS 閘道伺服器會儘可能嘗試透明化,將來自本機 SMPP 用戶端的所有請求轉送至遠端 SMPP 伺服器,然後再轉送回遠端伺服器的回應。存在兩種異常:

請注意,SMS 閘道伺服器通常會配置為:其產生的唯一 SMS 來源位址符合閘道設定檔之一。


備註 –

SMS 閘道伺服器的 SMPP 轉送僅適合與合格的 Sun Java System SMPP 用戶端 (亦即 Sun Java System Messaging Server 的 SMS 通道) 配合使用。而不適合與任意 SMPP 用戶端配合使用。


充當 SMPP 伺服器時,在以下三種情況下 SMS 閘道伺服器會將 SMS 郵件導向至電子郵件

所有其他 SMS 郵件將被 SMPP 伺服器拒絕。

遠端 SMPP 至閘道 SMPP 通訊

遠端 SMPP 用戶端透過協定資料單元 (PDU) 與閘道 SMPP 伺服器通訊。遠端 SMPP 用戶端會傳送請求 PDU,閘道 SMPP 伺服器會對其作出回應。閘道 SMPP 伺服器同步運作。它會先完成對請求 PDU 的回應,然後再處理下一個來自所連線的遠端 SMPP 用戶端的請求 PDU。

以下表 D–19 列出閘道 SMPP 伺服器處理的請求 PDU,並指定閘道 SMPP 伺服器的回應。

表 D–19 SMPP 伺服器協定資料單元

請求 PDU 

SMPP 伺服器回應 

BIND_TRANSMITTERBIND _TRANSCEIVERUNBIND

使用適當的回應 PDU 進行回應。認證憑證會被忽略。 

OUTBIND

閘道 SMPP 伺服器傳回 BIND_RECEIVER PDU。提交的認證憑證會被忽略。

SUBMIT_SMDATA_SM

嘗試使用唯一的 SMS 來源位址或閘道設定檔的 SELECT_RE 設定來比對目標 SMS 位址。如果均不相符,則會拒絕 PDU,並顯示 ESME_RINVDSTADR 錯誤。

DELIVER_SM

嘗試在歷程記錄中找到目標 SMS 位址或接收的郵件 ID。如果均不相符,會傳回錯誤 ESME_RINVMSGID

BIND_RECEIVER

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

SUBMIT_MULTI

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

REPLACE_SM

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

CANCEL_SM

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

QUERY_SM

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

QUERY_LAST_MSGS

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

QUERY_MSG_DETAILS

不支援。傳回 GENERIC_NAK PDU,並顯示 ESME_RINVCMDID 錯誤。

ENQUIRE_LINK

傳回 ENQUIRE_LINK_RESP PDU。

ALERT_NOTIFICATION

接受但忽略。 

SMS 回覆與通知處理

SMS 閘道伺服器可維護透過其 SMPP 伺服器轉送的每封 SMS 郵件的歷程記錄。需要使用歷程資料是基於以下事實:提交一封電子郵件至 SMS 時,通常不可能將郵件創建者的電子郵件位址轉換成 SMS 來源位址。由於任何 SMS 回覆和通知都會導向至此 SMS 來源位址,這樣就會出現問題。這個問題可以透過使用轉送郵件中自動產生的唯一 SMS 來源位址解決。因此,遠端 SMSC 會被配置為可將這些 SMS 來源位址路由回閘道 SMPP 伺服器。

歷程資料是指記憶體內雜湊表,其中包含 ID 郵件和產生的唯一 SMS 來源位址。這些資料以及關聯的電子郵件源資料也會儲存在磁碟上。基於磁碟的儲存為一系列檔案,每個檔案代表 HASH_FILE_ROLLOVER_PERIOD 秒的作業事件 (預設為 30 分鐘)。每個檔案會保留 RECORD_LIFETIME 秒 (預設為 3 天)。請參閱「Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide」,以取得歷程資料的記憶體內和磁碟上資源需求的論述。

每個記錄都有三個元件:

SMS 回覆的路由程序

閘道 SMPP 轉送器與伺服器使用歷程記錄來處理 SMS 回覆、通知與行動電話發出的郵件。當 SMS 郵件提交至 SMPP 轉送器或伺服器時,以下路由程序就會發生:

  1. SMS 目標位址會與歷程記錄進行比對,查看是否有 SMPP 轉送器先前產生的相符且唯一的 SMS 來源位址。如果找到相符項目,請參閱步驟 6。

  2. 如果沒有相符項目,但郵件為 SMS 通知 (SMPP DELIVER_SM PDU),則接收郵件 ID (如果有) 會與歷程記錄進行比較。如果找到相符項目,請至步驟 8。[SMS 閘道伺服器實際允許這些項目存在於 SMPP 轉送或 SMPP 伺服器中。]

  3. 如果沒有相符項目,則目標 SMS 位址會與每個已配置的閘道設定檔的 SELECT_RE 選項表示式進行比較。如果找到相符項目,則至步驟 9。

  4. 如果沒有相符項目且 SMS 郵件已提交給閘道 SMPP 轉送器,則郵件會轉送至遠端 SMPP 伺服器。

  5. 如果沒有相符項目且 SMS 郵件已提交給閘道 SMPP 伺服器,則郵件被確定為無效郵件並會在 SMPP 回應 PDU 中傳回錯誤回應。對於電子郵件至 SMS,最終會產生未遞送通知 (NDN)。

  6. 如果找到相符的唯一 SMS 來源位址,則 SMS 郵件會接收進一步檢查,查看是回覆還是通知郵件。若要成為通知郵件,其必須為具有接收郵件 ID 的 SUBMIT_SM PDU。否則,將其視為一個回覆。

  7. 如果是回覆,則 SMS 郵件會使用歷程記錄中的源電子郵件資訊轉換成電子郵件。

  8. 如果是通知郵件,則 SMS 郵件會依照 RFC 1892-1894 轉換成電子郵件傳送狀態通知 (DSN)。請注意,將遵循原始電子郵件的 ESMTP NOTIFY 旗標 (RFC 1891) (例如,如果 SMS 郵件是「成功」DSN,但原始電子郵件僅請求「失敗」通知,則 SMS 通知會被捨棄)。

  9. 如果目標 SMS 位址與已配置的閘道設定檔中的 SELECT_RE 選項相符,則 SMS 郵件會被視為行動電話發出的郵件,並依照閘道設定檔的 PARSE_RE_n 規則轉換回電子郵件。如果轉換失敗,則 SMS 郵件無效且傳回錯誤回應。