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

附錄 D 簡短郵件服務 (SMS)

本章節說明在 SunTM ONE Messaging Server 上如何實作簡短郵件服務 (SMS)。其中包含以下主題:

介紹

Sun Java System Messaging Server 透過使用簡短郵件服務 (SMS) 來實作電子郵件至行動電話和行動電話至電子郵件的郵件傳送。可以將 SMS 配置為單向 (僅電子郵件至行動電話) 或雙向 (電子郵件至行動電話和行動電話至電子郵件均可)。若要只啟用單向服務,則必須新增並配置 SMS 通道。若要啟用雙向服務,除了要新增並配置 SMS 通道以外,還要配置 SMS 閘道伺服器。

不論是單向還是雙向 SMS,產生的 SMS 郵件都使用簡短郵件點對點 (SMPP) 協定提交到簡短郵件服務中心 (SMSC)。具體來說,SMSC 必須提供支援 TCP/IP 的 V3.4 或更高版本的 SMPP 伺服器。

圖 D–1 說明單向和雙向 SMS 的郵件邏輯流程。

圖 D–1 單向與雙向 SMS 的邏輯流程

本圖顯示單向與雙向 SMS 的邏輯資料流程。

單向 SMS

為啟用單向服務,Messaging Server 會實作一個與遠端 SMSC 進行通訊的 SMPP 用戶端 (MTA SMS 通道)。SMS 通道將形成佇列的電子郵件轉換為多重 MIME 郵件的 SMS 郵件以及字元集翻譯問題,如電子郵件至 SMS 轉換程序中所述。

以這種功能運作,SMS 通道就充當一個 (SMPP) 外部簡短郵件實體 (ESME)。

雙向 SMS

雙向 SMS 使郵件伺服器不僅可以將電子郵件傳送至遠端裝置,還可以從遠端裝置以及遠端裝置電子郵件源接收回覆郵件。

啟用雙向 SMS 服務除了需要上一主題中說明的 MTA SMS 通道 (SMPP 用戶端) 以外,還需要 SMS 閘道伺服器。Sun Java System Messaging Server 會將 SMS 閘道伺服器做為其一般安裝程序的一部分來安裝,之後您必須對其進行配置。SMS 閘道伺服器執行兩項功能:


備註 –

在 Windows 平台上,Sun Java System Messaging Server 不支援雙向 SMS。


需求

本手冊假設您已閱讀 LogicaCMG 的 SMPP 規格以及適用於您的 SMSC 的 SMPP 文件。

若要實作 SMS,您必須具有以下各項︰

如需有關 SMS 閘道伺服器的儲存規劃資訊,請參閱SMS 閘道伺服器儲存需求

SMS 通道的作業原理

SMS 通道是多重執行緒的通道,可以將形成佇列的電子郵件轉換為 SMS 郵件,然後提交以將它們傳送至 SMSC。

本節包含以下通道作業主題:

將電子郵件導向通道

依照SMS 通道配置討論的目的配置 SMS 通道時,讓我們假設主機名稱 sms.siroe.com 是與通道關聯的主機名稱。在這種情況下,電子郵件被導向此通道,使用的位址形式為:

local-part@sms.siroe.com

其中 local-part 可以是 SMS 目標位址 (例如,無線電話號碼、傳呼器 ID 等),也可以是屬性值對,格式如下:

/attribute1=value1/attribute 2=value2/.../@sms.siroe.com

識別的屬性名稱及其用法在表 D–1 中提供。這些屬性允許透過一些通道選項來針對每位收件者進行控制。

表 D–1 SMS 屬性

屬性名稱 

屬性值和用法 

ID

SMS 郵件導向的 SMS 目標位址 (例如無線電話號碼、傳呼器 ID 等)。此屬性與關聯值必須存在。 

FROM

SMS 來源位址。當選項 USE_HEADER_FROM=0 時忽略此屬性。

FROM_NPI

使用指定的 NPI 值。當選項 USE_HEADER_FROM=0 時忽略此屬性。

FROM_TON

使用指定的 TON 值。當選項 USE_HEADER_FROM=0 時忽略此屬性。

MAXLEN

為此收件者產生的 SMS 郵件可包含的最大總位元組 (即八個位元形成的位元組數量)。使用 MAXLENMAX_MESSAGE_SIZE通道選項指定的值兩者中較低的值。

MAXPAGES

此收件者的電子郵件可分割成的 SMS 郵件最大數量。使用 MAXPAGESMAX_PAGES_PER_MESSAGE通道選項指定的值兩者中較低的值。

NPI

為透過 ID 屬性指定的目標 SMS 位址,指定數值規劃指示器 (NPI) 的值。請參閱DEFAULT_DESTINATION_NPI通道選項的說明,以取得有關此屬性可接受的值之資訊。使用此屬性時,其值會覆寫 DEFAULT_DESTINATION_NPI 通道選項提供的值。

PAGELEN

此收件者單封 SMS 郵件可包含的最大位元組數量。使用此值的最小值和透過MAX_PAGE_SIZE通道選項指定的值。

TO

ID 的同義詞。 

TO_NPI

NPI 的同義詞。 

TO_TON

TON 的同義詞。 

TON

為透過 ID 屬性指定的目標 SMS 位址,指定數字類型 (TON) 的值。請參閱DEFAULT_DESTINATION_TON通道選項的說明,以取得有關此屬性可接受的值之資訊。使用此屬性時,其值會覆寫 DEFAULT_DESTINATION_TON 通道選項提供的值。

一些範例位址:


123456@sms.siroe.com
/id=123456/@sms.siroe.com
/id=123456/maxlen=100/@sms.siroe.com
/id=123456/maxpages=1/@sms.siroe.com

如需有關在電子郵件位址的 SMS 目標位址部分上執行翻譯、有效性檢查以及其他作業之資訊,請參閱網站定義的位址有效性檢查和轉譯

電子郵件至 SMS 轉換程序

為了將電子郵件傳送至遠端網站,必須將電子郵件轉換成遠端 SMSC 可以理解的 SMS 郵件。本節說明將在 SMS 通道上已形成佇列的電子郵件轉換成一封或多封 SMS 郵件的程序。如下所述,可以使用選項來控制 SMS 郵件產生的最大數量、這些 SMS 郵件的最大總長度以及任一封 SMS 郵件的最大大小。只有電子郵件的文字部分 (即 MINE 文字內容類型) 會被使用,被轉換部分的最大數量也會受到控制。

電子郵件的標頭行和文字部分中使用的字元集全部都會轉換成 Unicode,然後再轉換成適當的 SMS 字元集。

當不存在 SMS_TEXT 對映表 (請參閱網站定義的文字轉換) 時,佇列至 SMS 通道的電子郵件會接收到處理,如圖 D–2 中所述。

圖 D–2 SMS 通道電子郵件處理

流程圖顯示 SMS 通道電子郵件處理。

圖 D–3 SMS 通道電子郵件處理 ()

流程圖顯示 SMS 通道電子郵件處理 (續)。

以下步驟與圖 D–2 中編號的方塊相對應︰

  1. 開始時是一個空白的輸出緩衝區。緩衝區使用的字元集為 Unicode。

  2. 電子郵件的創建者位址可以取自以下五種來源之一,這些來源依優先順序由高到低顯示:


    1. Resent-from:
    2. From:
    3. Resent-sender:
    4. Sender:
    5. Envelope From:
    

    如果創建者位址為空字串,則FROM_NONE通道選項的值會附加至緩衝區。

    然而,如果創建者位址為非空字串,則處理FROM_FORMAT通道選項的結果和 LINE_STOP 通道選項的值會附加至輸出緩衝區。

    請注意,如果USE_HEADER_RESENT選項值為 1,則僅考量 Resent-from:Resent-sender: 標頭行。否則,忽略 Resent- 標頭行。

  3. 如果 Subject: 標頭行不存在或為空,則SUBJECT_NONE選項的值會附加至輸出緩衝區。

    否則,處理SUBJECT_FORMAT選項的結果和LINE_STOP通道選項的值會附加至輸出緩衝區。

  4. 如果不存在文字郵件部分,則NO_MESSAGE通道選項的值會附加至輸出緩衝區。

    如果存在文字郵件部分,則CONTENT_PREFIX通道選項的值會附加至輸出緩衝區。

    將捨棄非文字郵件部分。

  5. 對於每個文字部分,如果未達到 MAX_MESSAGE_PARTS 的限制,就會被解碼成 Unicode,並連同 LINE_STOP 通道選項的值一起附加至緩衝區。

  6. 然後,輸出緩衝區的結果就會從 Unicode 轉換成 SMSC 的預設字元集或 UCS2 (UTF-16)。SMSC 的預設字元集使用SMSC_DEFAULT_CHARSET選項指定。

  7. 轉換之後,會將其截斷以不超過MAX_MESSAGE_SIZE位元組。

  8. 來自電子郵件至 SMS 轉換程序的轉換字串會被分割為一個或多個 SMS 郵件,任何單一 SMS 郵件均不超過 MAX_PAGE_SIZE 位元組。至多將產生MAX_PAGES_PER_MESSAGESMS 郵件。


    備註 –

    由於一封電子郵件可能有多位收件者,可能需要對每個收件者位址都執行步驟 6 到步驟 8,這樣會使用第 4 頁「將電子郵件導向通道」中所述的 MAXLENMAXPAGESPAGELEN 屬性。


範例電子郵件處理

例如,使用通道的預設設定,電子郵件為︰


From: John Doe 
To: 1234567@sms.siroe.com
Subject: Today’s meeting
Date: Fri, 26 March 2001 08:17

The staff meeting is at 14:30 today in the big conference room.

將會轉換成以下 SMS 郵件:

jdoe@siroe.com (Today’s meeting) The staff meeting is at 14:30 today in the big conference room.

如果使用以下這組不同的選項設定:


CONTENT_PREFIX=Msg:
FROM_FORMAT=From:${pa}
SUBJECT_FORMAT=Subj:$s

則會產生:

From:John Doe Subj:Today’s meeting Msg:The staff meeting is at 14:30 today in the big conference room.

SMS 郵件提交處理

電子郵件轉換成一封或多封 SMS 郵件後,每位收件者可能有不同的設定,SMS 郵件將被提交給目標 SMSC。使用經由 TCP/IP 的 SMPP V3.4 實現提交。SMPP 伺服器的主機名稱 (SMPP_SERVER) 會被視為與 SMS 通道關聯的正式主機名稱;要使用的 TCP 連接埠 (SMPP_PORT) 則透過 port 通道關鍵字來指定。

有郵件需要處理時通道會啟動。通道做為傳輸器連結至 SMPP 伺服器,表示透過 ESME_ 通道選項指定的憑證,如SMPP 選項中所述。表 D–2 列出了 BIND_TRANSMITTER PDU (協定資料單位) 中設定的欄位,並提供其值︰

表 D–2 BIND_TRANSMITTER PDU 中產生的欄位

欄位 

值 

system_id

ESME_SYSTEM_ID通道選項;預設值為空字串

password

ESME_PASSWORD通道選項;預設值為空字串

system_type

ESME_SYSTEM_TYPE通道選項;預設值為空字串

interface_version

0x34 表示 SMPP V3.4 

addr_ton

ESME_ADDRESS_TON;預設值為 0x00,表示不明的 TON

addr_npi

ESME_ADDRESS_NPI;預設值為 0x00,表示不明的 NPI

addr_range

ESME_IP_ADDRESS通道選項;預設值為空字串

請注意此通道為多重執行緒。根據要傳送之郵件的多少,通道可以執行多重移出佇列執行緒。(甚至可以執行多個通道程序。)每個執行緒均執行 BIND_TRANSMITTER,然後在 TCP/IP 連線上傳送所有必須傳送的 SMS 郵件,再傳送 UNBIND,之後關閉連線。請勿為可能的重複使用而嘗試保持該連線開啟,使其閒置一段時間。如果遠端 SMPP 伺服器傳回阻塞錯誤,則會執行 UNBIND,然後關閉 TCP/IP 連線並建立新的連線和 BIND。如果遠端 SMPP 伺服器在其完成傳送 SMS 郵件之前傳送 UNBIND,則運作方式相似。

然後,透過 SUBMIT_SM PDU 提交 SMS 郵件。如果傳回永久性錯誤 (例如,ESME_RINVDSTADR),則電子郵件會做為無法傳送的郵件傳回。如果傳回暫時性錯誤,則電子郵件會重新形成佇列,稍後再嘗試遞送。要闡明的是,永久性錯誤是指一種可能會無限期存在而且重複嘗試遞送將毫無積極效果的狀況,例如無效的 SMS 目標位址。而暫時性錯誤是指一種可能會在短期內消失的狀況,例如伺服器當機或伺服器擁塞狀況。

如果 USE_HEADER_FROM 選項的值為 1,則已提交之 SMS 郵件的來源位址會被設定。使用的值取自原始電子郵件,並選作最接近所有回覆應導向的 (電子郵件) 位址。因此,來源位址取自以下七種來源之一,這些來源依優先順序由高到低顯示:


1. Resent-reply-to:
2. Resent-from:
3. Reply-to:
4. From:
5. Resent-sender:
6. Sender:
7. Envelope From:

請注意,如果USE_HEADER_REPLY_TO選項的值為 1,則僅考量 Resent-reply-to:Reply-to: 標頭行。此外,如果USE_HEADER_RESENT選項的值為 1,則僅考量 Resent-reply-to:Resent-from:Resent-sender: 標頭行。(請注意,這意味著這兩個選項的值均必須為 1,才會考量 Resent-reply-to: 標頭行。) 這兩個選項的預設值均為 0。因此,依預設配置,僅考量項目 4、6 和 7。最後,由於 SMS 郵件中的來源位址被限制為 20 個位元組以內,如果超過此限制,選擇的來源位址就會被截斷。

表 D–3 顯示了在 SUBMIT_SM PDU 中設定的強制性欄位︰

表 D–3 SUBMIT_SM PDU 中產生的強制性欄位

欄位 

值 

service_type

DEFAULT_SERVICE_TYPE通道選項;預設值為空字串。

source_addr_ton

DEFAULT_SOURCE_TON通道選項;如果 USE_HEADER_FROM=1,則通常此欄位會被強制設定為表示字母數字式 TON 之值 0x05;否則,為預設值 0x01,表示國際 TON。

source_addr_npi

DEFAULT_SOURCE_NPI通道選項;預設值為 0x00。

source_addr

如果 USE_HEADER_FROM=0,則為DEFAULT_SOURCE_ADDRESS通道選項;否則,為表示電子郵件創建者的字母數字式字串。

dest_addr_ton

TON 定址屬性或DEFAULT_DESTINATION_TON通道選項;預設值為 0x01,表示國際 TON。

dest_addr_npi

NPI 定址屬性或DEFAULT_SOURCE_NPI通道選項;預設值為 0x00,表示不明的 NPI。

dest_addr

目標 SMS 位址取自電子郵件訊息封 To: 位址的本機部分;請參閱將電子郵件導向通道

esm_class

對於單向 SMS,設定為 0x03 表示儲存和轉寄模式,預設郵件 SMSC 類型並且不設定回覆路徑。對於雙向 MSM 郵件,設定為 0x83。 

protocol_id

0x00;不適用於 CDMA 及 TDMA;對於 GSM,0x00 表示無網際網路但使用 SME-to-SME 協定。 

priority_flag

用於 GSM 和 CDMA 的 0x00,以及用於 TDMA 的 0x01,全部表示一般優先權;請參閱DEFAULT_PRIORITY通道選項的說明。

schedule_delivery_time

空白字串表示立即遞送。 

validity_period

DEFAULT_VALIDITY_PERIOD通道選項;預設值為空字串,表示應使用 SMSC 的預設。

registered_delivery

0x00 表示沒有已註冊的遞送。 

replace_if_present_flag

0x00 表示不取代任何先前的 SMS 郵件。 

data_coding

對於 SMSC 預設字元集應為 0x00;對於 UCS2 字元集應為 0x08。 

sm_default_msg_id

0x00 表示不使用預先定義的郵件。 

sm_length

SMS 郵件的長度和內容;請參閱電子郵件至 SMS 轉換程序

short_message

SMS 郵件的長度和內容;請參閱電子郵件至 SMS 轉換程序

表 D–4 顯示了 SUBMIT_SM PDU 中的可選欄位︰

表 D–4 SUBMIT_SM PDU 中產生的可選欄位

欄位 

值 

privacy

請參閱DEFAULT_PRIVACY通道關鍵字的說明;預設不會提供此欄位,除非電子郵件具有 Sensitivity: 標頭行

sar_refnum

請參閱USE_SAR通道關鍵字的說明;預設不會提供這些欄位

sar_total

請參閱上述 sar_refnum

sar_seqnum

請參閱上述 sar_refnum

通道持續連結至 SMPP 伺服器,直至再沒有要提交的 SMS 郵件 (郵件佇列為空),或MAX_PAGES_PER_BIND已超過限制。在後一種情況下,如果還有 SMS 郵件需要傳送,則會建立新的連線並執行連結作業。

請注意 SMS 通道為多重執行緒。通道中每個處理執行緒都會維護其本身與 SMPP 伺服器的 TCP 連線。例如,如果有三個處理執行緒,每個執行緒都需要提交 SMS 郵件,則通道會有三個開啟的 TCP 連線連至 SMPP 伺服器。每個連線都會連結至作為傳輸器的 SMPP 伺服器。此外,任何給定的處理執行緒一次只有一個未完成的 SMS 提交。亦即,一個給定的執行緒將提交一封 SMS 郵件,然後在提交另一封 SMS 郵件之前,先等待提交回應 (亦即 SUBMIT_SM_RESP PDU)。

網站定義的位址有效性檢查和轉譯

網站會將有效性檢查或翻譯套用至在收件者電子郵件中編碼的 SMS 目標位址,如將電子郵件導向通道中所述

可使用DESTINATION_ADDRESS_NUMERICDESTINATION_ADDRESS_PREFIX通道選項完成前兩個作業。一般,所有這三項任務以及其他任務,都可以使用對映表來實作:可以使用重寫規則呼叫對映表,也可以使用 FORWARD 對映表。使用重寫規則呼叫對映表將提供最大程度的靈活性,其中包括以網站定義的錯誤回應來拒絕位址的功能。本節後述部分將集中論述如何使用重寫規則呼叫對映表。

讓我們假設目標位址需要為全數值,長度為 10 或 11 位數,前綴為字串「+1」。使用以下重寫規則即可實現

sms.siroe.com      ${X-REWRITE-SMS-ADDRESS,$U}@sms.siroe.com
sms.siroe.com       $?Invalid SMS address

以上第一個重寫規則呼叫名為 X-REWRITE-SMS-ADDRESS 的網站定義的對映表。將傳送此對映表電子郵件位址的本機部分以供檢查。如果對映程序決定可以接受此本機部分,則此位址會被接受,並重新寫入 SMS 通道。如果對映程序決定不接受此本機部分,則套用下一個重寫規則。由於其為 $? 重寫規則,位址會被拒絕,並隨附錯誤文字「無效的 SMS 位址」。

X-REWRITE-SMS-ADDRESS 對映表顯示如下。它會對屬性-值對清單格式或原始 SMS 目標位址中的本機部分執行必要的驗證步驟。

X-VALIDATE-SMS-ADDRESS

! Iteratively strip any non-numeric characters 
   $_*$[$ -/:-~]%*  $0$2$R
! Accept the address if it is of the form 1nnnnnnnnnn or nnnnnnnnnn
! In accepting it, ensure that we output +1nnnnnnnnnn
   1%%%%%%%%%%      +1$0$1$2$3$4$5$6$7$8$9$Y
   %%%%%%%%%%       +1$0$1$2$3$4$5$6$7$8$9$Y
! We didn’t accept it and consequently it’s invalid
   *                $N

X-REWRITE-SMS-ADDRESS
    */id=$_*/*       $C$0/id=$|X-VALIDATE-SMS-ADDRESS;$1|/$2$Y$E
    */id=$_*/*       $N
    *                $C$|X-VALIDATE-SMS-ADDRESS;$0|$Y$E
    *                $N

對於以上設定,請確定DESTINATION_ADDRESS_NUMERIC選項值為 0 (預設)。否則,「+」將從 SMS 目標位址中被刪除。

網站定義的文字轉換

網站可自訂步驟 1 - 6,如 MTA 對映檔案中的對映表電子郵件至 SMS 轉換程序中所述。

對映表的名稱應為 SMS_Channel_TEXT,其中,SMS_Channel 為 SMS 通道名稱;例如,SMS_TEXT (如果通道名為 sms) 或 SMS_MWAY_TEXT (如果通道名為 sms_mway)。

在此對映表中可以建立兩種項目類型。但是在詳細說明這些項目的格式之前,清楚瞭解如何使用對映檔案非常重要,這樣才能瞭解如何建構並使用這些項目。在說明這兩種項目類型之後,我們會提供範例對映表。

目前此兩種項目類型是:

郵件標頭項目

這些項目指定哪些郵件標頭行應包含在 SMS 郵件中,以及應如何縮寫或轉換它們。僅當標頭行透過這些項目之一成功對映至一個非零長度的字串時,它才會包含在將要產生的 SMS 郵件中。每個項目的格式如下

H|pattern replacement-text

如果郵件標頭行符合此式樣,則系統將使用符合的對映檔案的式樣與字串替代功能以替代文字 replacement-text 替代該郵件標頭行。然後,標頭行對映的最終結果將包含在 SMS 郵件中 (如果取代文字內指定了中介字元 $Y)。如果標頭行不符合任何式樣字串,或者對映至一個零長度字串,又或者取代文字中未指定中介字元 $Y,則 SMS 郵件會忽略此標頭行。以下兩個項目


H|From:* F:$0$Y 
H|Subject:* S:$0$Y

導致 From:Subject: 標頭行包含在 SMS 郵件中,且 From:Subject: 縮寫為 F:S:。以下項目:


H|Date:* H|D:$0$R$Y 
H|D:*,*%19%%*:*:* H|D:$0$ $5:$6$R$Y

導致 Date: 標頭行被接受並可進行對映,例如標頭行

Date: Wed, 16 Dec 1992 16:13:27 -0700 (PDT)

將被轉換成

D: Wed 16:13

可以建立極為複雜的反覆式對映。網站如果要設定自訂篩選器,首先就需要瞭解對映檔案是如何運作的。如有必要,可以省略項目右側的 H|。保留右側的 H|,以便減少各組反覆式對映所需要的表格項目數量。

郵件內文項目

這些項目建立的對映會套用於郵件內文中的每一行。郵件內文中的每一行在併入即將建立的 SMS 郵件之前都會通過這些對映。這些項目格式如下:

B|pattern B| replacement-text

如果郵件內文中某一行符合 pattern 的式樣,則會被替代文字 replacement-text 所替代。使用此功能也可以建構極為複雜的反覆式對映。如有必要,可以省略項目右側的 B|。

範例 SMS 對映表

SMS_TEXT 對映表範例在範例 D–1 中顯示。每一行末端括號內的數字都對應於此表格之後名為說明文字的小節中的項目編號。


範例 D–1 範例 SMS_TEXT 對映表。


SMS_TEXT

   H|From:*        H|F:$0$R$Y       (1)
   H|Subject:*     H|S:$0$R$Y       (1)
   H|F:*<*>*       H|F:$1$R$Y       ()
   H|F:*(*)*       H|F:$0$2$R$Y     (2)
   H|F:*"*"*       H|F:$0$2$R$Y     (3)
   H|F:*@*         H|F:$0$R$Y       (4)
   H|%:$ *         H|$0:$1$R$Y      (5)
   H|%:*$          H|$0:$1$R$Y      (5)
   H|%:*$ $ *      H|$0:$1$ $2$R$Y  (6)
   B|*--*          B|$0-$1$R        (7)
   B|*..*          B|$0.$1$R        (7)
   B|*!!*          B|$0!$1$R        (7)
   B|*??*          B|$0?$1$R        (7)
   B|*$ $ *        B|$0$ $1$R       (6)
   B|$ *           B|$0$R           (5)
   B|*$            B|$0$R           (5)

               

說明文字

上述 SMS_TEXT 對映表範例中的項目說明如下內容:

在上述範例中,中介字元 $R 用於實作與控制對映的反覆式應用程式。透過對這些對映進行迭代,可實現功能強大的篩選效果。例如,這些簡單對映可移除單一前導或尾隨空格 (6),或將兩個空格縮減為一個 (7),將這些對映作為整體來使用時,便可以得到一個篩選器,它可以刪除所有前導或尾隨空格,並將所有的連續多個空格縮減為一個。此種篩選作業有助於縮減每封 SMS 郵件的大小。

  1. 這兩個項目導致在 SMS 郵件中包含 From:Subject: 標頭行。From:Subject: 分別縮寫為 F:S:。某些其他項目可能會進一步影響 From:Subject: 標頭行。

    此項目將包含 <...> 式樣的 From: 標頭行減少為僅包含角括號中的文字。例如:

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    將被取代為:

    F: jdoe@siroe.com

  2. 此項目將僅移除 From: 標頭行中 (...) 式樣內的所有內容。例如:

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    將被取代為:

    F: "John C. Doe" <jdoe@siroe.com>

  3. 此項目將僅移除 From: 標頭行中「...」式樣內的所有內容。例如:

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    將被取代為:

    F: <jdoe@siroe.com> (Hello)

  4. 此項目將會移除 From: 標頭行中 @ 符號右側的所有內容。例如:

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    將被取代為:

    F: "John C. Doe" <jdoe@

  5. 這四個項目可移除郵件標頭與內文中各行的前導和尾隨空格。

  6. 這兩個項目可將郵件標頭與內文中各行內的兩個空格縮減為一個。

  7. 這四個項目可將成對的破折號、句點、感嘆號及問號縮減成相應的單個字元。這同樣有助於縮減 SMS 郵件的大小。

項目的次序非常重要。例如,依給定的順序,郵件 From: 標頭行的內文︰

From: "John C. Doe" (Hello)

將被縮減成:

jdoe

實現此種效果的步驟如下:

  1. 從 From: 標頭行開始:

    From: "John C. Doe" (Hello)

    第一個對映項目中的式樣與此相符,並產生以下結果:

    F: "John C. Doe" (Hello)

    結果字串中的中介字元 $R 會使結果字串重新進行對映。

  2. 對映會套用於最後一個步驟的結果字串。會產生:

    F: jdoe@siroe.com

    對映中的 $R 會使整組對映重新套用於此步驟的結果。

  3. 接著套用此對映會產生:

    F: jdoe

    對映中的 $R 會使整組對映重新套用於此步驟的結果。

  4. 接著套用此對映會產生:

    F:jdoe

    對映中的 $R 會使整組對映重新套用於此步驟的結果。

  5. 由於沒有其他相符的項目,因此最終結果字串:

    F:jdoe

    將會併入 SMS 郵件中。


    備註 –

    imsimta 對映測試公用程式可用於測試對映表。例如


    # imsimta test -mapping -noimage_file -mapping_file=test.txt
    Enter table name: SMS_TEXT
    Input string: H|From: "John C. Doe"  (Hello)
    Output string: H|F:jdoe
    Output flags: [0,1,2,89]
    Input string: ^D
    #

    如需有關 imsimta test 公用程式的進一步詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「imsimta test」


SMS 通道配置

本節將指導如何為單向 (電子郵件至行動電話) 與雙向 (電子郵件至行動電話與行動電話至電子郵件) 功能設定 SMS 通道。單向和雙向功能的 SMS 通道設定相同,除在主題為雙向 SMS 配置 SMS 通道中說明的例外。

本節包含以下主題:

新增 SMS 通道

增加 SMS 通道至 Messaging Server 配置需要兩個步驟

  1. 新增通道定義與重寫規則

  2. 建立 SMS 通道選項檔案

由於沒有在所有狀況下都必須設定的通道選項,因此您可能只需設定一個或多個以下選項即可:ESME_PASSWORDESME_SYSTEM_IDMAX_PAGE_SIZEDEFAULT_SOURCE_TONDEFAULT_DESTINATION_TON。而且,如上所述,SMPP 伺服器的主機名稱或 IP 位址以及 TCP 連接埠必須透過 imta.cnf 檔案或通道選項檔案中的通道定義進行設定。

您可以配置多個 SMS 通道,並為不同的 SMS 通道指定不同的特徵。請參閱新增額外的 SMS 通道,以取得有關使用多個 SMS 通道的進一步資訊。

請注意以下說明︰如果變更 imta.cnf 檔案,則必須重新編譯。如果僅變更通道選項檔案,則無需重新編譯。

另請注意,通道變更不同,其生效之前的等待時間也會有所不同。許多通道選項變更都在變更後於所有啟動的通道中生效,看起來似乎是即刻生效,這是因為 Job Controller 經常在啟動新的通道。某些變更要在您重新編譯並重新啟動 SMTP 伺服器後才會生效。處理這些選項是在郵件於通道中形成佇列時,而非通道本身執行時。

新增通道定義與重寫規則

若要新增通道定義與重寫規則,請執行以下步驟:

Procedure增加通道定義和重寫規則

步驟
  1. 在增加 SMS 通道至 MTA 配置之前,需要為通道選取一個名稱。通道名稱可以是 smssms_x (其中 x 是長度在一到三十六個位元組之間的任何字串,且不區分大小寫)。例如,sms_mway

  2. 若要增加通道定義,請編輯 imta.cnf 檔案 (位於 installation-directory/config/ 目錄中)。在此檔案結尾處新增一個空行,其後再加入以下兩行:

    channel-name port p threaddepth t \ 
      backoff pt2m pt5m pt10m pt30m notices 1
    smpp-host-name
    

    其中 channel-name 是您為通道選擇的名稱,p 是 SMPP 伺服器偵聽的 TCP 連接埠,t 是每個傳送程序中同時執行的 SMPP 伺服器連線最大數目,而 smpp-host-name 則是執行 SMPP 伺服器的系統主機名稱。

    例如,您可指定以下通道定義:


    sms_mway port 55555 threaddepth 20 \ 
    backoff pt2m pt5m pt10m pt30m notices 1
    smpp.siroe.com

    如需有關如何計算 threaddepth 的說明,請參閱控制同時連線的數量

    請參閱調整遞送重試的頻率,以取得 backoffnotices 通道關鍵字的論述。

    如果您想為 smpp-host-name 指定 IP 位址而非主機名稱,請指定網域文字。例如,如果 IP 位址為 127.0.0.1,則為 smpp-host-name 指定 [127.0.0.1]。也可考量使用SMPP_SERVER通道選項。


    備註 –

    對於 Sun Java System Messaging Server 6.1,已停用 master 通道關鍵字。即使存在也會被忽略。


  3. 新增通道定義後,請至檔案上半部分,然後依以下格式新增重寫規則:

    smpp-host-name $u@smpp-host-name

    例如,

    smpp.siroe.com $u@smpp.siroe.com

  4. 儲存 imta.cnf 檔案。

  5. 使用 imsimta cnbuild 指令重新編譯此配置。

  6. 使用 imsimta restart dispatcher 指令重新啟動 SMTP 伺服器。

  7. 透過上述配置,電子郵件會被定址至 id@smpp-host-name (例如,123456@smpp.siroe.com),從而導向該通道。請參閱電子郵件至 SMS 轉換程序,以取得有關定址的進一步資訊。

  8. 或者,如果您想對使用者隱藏 SMPP 伺服器的主機名稱,或想將同一通道與其他主機名稱關聯,請增加額外的重寫規則。例如,若要將此通道與 host-name-1host-name-2 關聯,增加以下重寫規則:


    host-name-1 $U%host-name-1@smpp-host-name
    host-name-2 $U%host-name-2@smpp-host-name

    例如,如果 SMPP 伺服器的主機名稱為 smpp.siroe.com,但您希望使用者將電子郵件傳送至 id@sms.sesta.com,則可增加重寫規則:

    sms.sesta.com $U%sms.sesta.com@smpp.siroe.com

    請注意,SMPP_SERVERSMPP_PORT通道選項將覆寫通道的正式主機名稱和 port 通道關鍵字設定。使用 SMPP_PORT 選項時,無需同時使用 port 關鍵字。使用這兩個選項的優點是,它們無需重新編譯配置即可生效,並可隨後進行變更。SMPP_SERVER 選項的其他用法在新增額外的 SMS 通道中說明。

控制同時連線的數量

threaddepth 通道關鍵字控制每個傳送程序中,指定給每個傳送執行緒的郵件數量。若要計算允許的並行運作的連線總數,請將以下兩個選項的值相乘:SMPP_MAX_CONNECTIONSjob_limit (SMPP_MAX_CONNECTIONS * job_limit)。SMPP_MAX_CONNECTIONS選項控制傳送程序中傳送執行緒的最大數量。而 job_limit 選項 (適用於通道執行時所在的工作控制器處理池) 控制同步執行的傳送程序的最大數量。

若要限制並行運作的連線總數,您必須適當調整這兩個選項或其中之一。例如,如果遠端 SMPP 伺服器僅允許單一連線,則 SMPP_MAX_CONNECTIONSjob_limit 均必須設定為 1。調整這些值時,最好允許 job_limit 超過 1

建立 SMS 通道選項檔案

通道選項檔案一般都包含通道作業所需的網站特定參數。通道選項檔案不是 SMS 所必需的。如果確定安裝需要一個通道選項檔案,請將其儲存為文字檔案,並置於 installation-directory/config/ 目錄下。如同其他通道選項檔案,此檔案名稱的形式如下:

channel_name_option

例如,如果通道名為 sms_mway,則通道選項檔案為:

installation-directory/config/sms_mway_option

每個選項在檔案中佔據一行,格式如下:

option_name=option_value

例如,


PROFILE=GSM
SMSC_DEFAULT_CHARSET=iso-8859-1 
USE_UCS2=1

如需可用 SMS 通道選項的清單以及每個選項的說明,請參閱可用選項

可用選項

SMS 通道包含大量選項,這些選項可以分為六大種類︰

這些選項在下表中概括,並會在後續各節中加以更完整的說明。

表 D–5 SMS 通道選項

 

 

 

電子郵件至 SMS 轉換選項 

選項 (頁碼) 

說明 

預設 

GATEWAY_NOTIFICATIONS

指定是否將電子郵件通知郵件轉換成 SMS 郵件。 

0

MAX_MESSAGE_PARTS

從電子郵件中擷取的郵件部分之最大數量 

2

MAX_MESSAGE_SIZE

從電子郵件中擷取的最大位元組數量 

960

MAX_PAGE_SIZE

可置入單封 SMS 郵件中的最大位元組數量 

160

MAX_PAGES_PER_MESSAGE

電子郵件可分割成的 SMS 郵件最大數量 

6

ROUTE_TO

路由 SMS 郵件至指定 IP 主機名稱。 

 

SMSC_DEFAULT_CHARSET

SMSC 使用的預設字元集。 

US-ASCII

USE_HEADER_FROM

設定 SMS 來源位址 

0

USE_HEADER_PRIORITY

控制電子郵件標頭中優先權資訊的使用 

1

USE_HEADER_REPLY_TO

產生 SMS 來源位址時,控制 Reply-to: 標頭行的使用

0

USE_HEADER_RESENT

產生創建者資訊時,控制 Resent-*: 標頭行的使用

0

USE_HEADER_SENSITIVITY

控制電子郵件標頭中私密性資訊的使用 

1

USE_UCS2

在 SMS 郵件中使用 UCS2 字元集 (如果有) 

1

     

SMS 閘道伺服器選項 

GATEWAY_PROFILE

符合在 SMS 閘道伺服器的配置檔案 sms_gateway.cnf 中配置的閘道設定檔名稱

不適用 

     

SMS 欄位選項 

DEFAULT_DESTINATION_NPI

SMS 目標位址的預設 NPI 

0x00

DEFAULT_DESTINATION_TON

SMS 目標位址的預設 TON 

0x01

DEFAULT_PRIORITY

SMS 郵件的預設優先順序設定 

0=GSM, CDMA

1=TDMA

DEFAULT_PRIVACY

SMS 郵件的預設私密性值旗標 

-1

DEFAULT_SERVICE_TYPE

與已提交的 SMS 郵件關聯的 SMS 應用程式服務 

不適用 

DEFAULT_SOURCE_ADDRESS

預設 SMS 來源位址 

0

DEFAULT_SOURCE_NPI

SMS 來源位址的預設 NPI 

0x00

DEFAULT_SOURCE_TON

SMS 來源位址的預設 TON 

0x01

DEFAULT_VALIDITY_PERIOD

SMS 郵件的預設有效期 

不適用 

DESTINATION_ADDRESS_NUMERIC

縮減目標 SMS 位址為僅含字元 0 - 9 

0

DESTINATION_ADDRESS_PREFIX

置於目標 SMS 位址之前的文字字串 

不適用 

PROFILE

要使用的 SMS 設定檔 

GSM

USE_SAR

使用 SMS sar_ 欄位列出多個 SMS 郵件

0

     

SMPP 協定選項 

ESME_ADDRESS_NPI

連結至 SMPP 伺服器時指定的 ESME NPI 

0x00

ESME_ADDRESS_TON

連結至 SMPP 伺服器時指定的 ESME TON 

0x00

ESME_IP_ADDRESS

執行 Sun Java System MessagingServer 的主機 IP 位址 

不適用 

ESME_PASSWORD

連結至 SMPP 伺服器時提交的密碼 

不適用 

ESME_SYSTEM_ID

連結時向 SMSC 提交的系統標識 

不適用 

ESME_SYSTEM_TYPE

連結時向 SMSC 提交的系統類型 

不適用 

MAX_PAGES_PER_BIND

單一階段作業中,可透過 SMPP 伺服器提交的 SMS 郵件之最大數量 

1024

REVERSE_ORDER

多部分 SMS 郵件的傳輸序列 

0

SMPP_MAX_CONNECTIONS

同時執行的 SMPP 伺服器連線的最大數量 

20

SMPP_PORT

對於單向 SMS,SMPP 伺服器偵聽的 TCP 連接埠。對於雙向 SMS,為供 SMPP 轉送的 LISTEN_PORT 使用的 TCP 連接埠。

不適用 

SMPP_SERVER

對於單向 SMS,要連線的 SMPP 伺服器之主機名稱。 

對於雙向 SMS,設定為指向 SMS 閘道伺服器主機名稱或 IP 位址。如果使用 SMPP 轉送的 LISTEN_INTERFACE_ADDRESS 選項,則務必使用與指定的網路介面位址關聯的主機名稱或 IP 位址。

不適用 

TIMEOUT

透過 SMPP 伺服器完成讀取和寫入的逾時 

30

     

本土化選項 

CONTENT_PREFIX

用於介紹電子郵件內容的文字 

Msg:

DSN_DELAYED_FORMAT

遞送延遲通知的格式化字串 

空白字串 

DSN_FAILED_FORMAT

遞送失敗通知的格式化字串 

請參閱說明 

DSN_RELAYED_FORMAT

轉送通知的格式化字串。 

請參閱說明 

DSN_SUCCESS_FORMAT

遞送成功通知的格式化字串。 

請參閱說明 

FROM_FORMAT

顯示用於指示電子郵件創建者的文字 

$a

FROM_NONE

沒有創建者時顯示的文字 

不適用 

LANGUAGE

(i-預設) 可從中選取文字欄位的語言群組 

i-default

LINE_STOP

置於從電子郵件中擷取的每行結尾處的文字 

空格字元 

NO_MESSAGE

用於指示郵件無內容的文字 

]no message]

SUBJECT_FORMAT

顯示用於指示電子郵件訊息主旨的文字 

$s

SUBJECT_NONE

電子郵件無主旨時顯示的文字 

不適用 

     

其他選項 

DEBUG

啟用詳細除錯輸出 

-1

電子郵件至 SMS 轉換選項

以下選項控制電子郵件至 SMS 郵件的轉換。括號中是選項值的範圍。一封給定的電子郵件一般都可以轉換成一封或多封 SMS 郵件。請參閱電子郵件至 SMS 轉換程序

GATEWAY_NOTIFICATIONS

(0 或 1) 指定是否將電子郵件通知轉換成 SMS 通知。電子郵件通知郵件必須符合 RFC 1892、1893、1894。預設值為 0

GATEWAY_NOTIFICATIONS=0 時,這類通知將被捨棄,不會轉換成 SMS 通知。

若要啟用將通知轉換成 SMS 通知的功能,請設定 GATEWAY_NOTIFICATIONS=1。當此選項設定為 1 時,本土化選項 (DSN_*_FORMAT) 將控制轉換成 SMS 郵件並經由閘道傳送的通知類型 (成功、失敗、延遲、轉送)。(如果通知類型的值為空白字串,則此類型通知不會轉換成 SMS 郵件。)

MAX_MESSAGE_PARTS

(整數) 將多部分電子郵件轉換成一封 SMS 郵件時,僅第一批 MAX_MESSAGE_PARTS 數量的文字部分會被轉換。其餘部分將被捨棄。依預設,MAX_MESSAGE_PARTS 為 2。若要讓郵件部分的數量不受限制,可將此值指定為 -1。指定值為 0 時,沒有郵件內容會置於 SMS 郵件中。僅使用電子郵件中的標頭行 (例如,Subject:) 會產生 SMS 郵件。

請注意,包含文字和附件的電子郵件通常由兩個部分組成。更需注意,只有一般文字郵件部分才會轉換。所有其他 MIME 內容類型都將被捨棄。

MAX_MESSAGE_SIZE

(整數,>= 10) 使用此選項,可設定從電子郵件產生的 SMS 郵件中能包含的位元組總數的上限。具體來說,MAX_MESSAGE_SIZE 指定的最大位元組數量將用於一封或多封產生的 SMS 郵件。任何額外的位元組都將被捨棄。

依預設,設定上限為 960 個位元組。其與 MAX_MESSAGE_SIZE=960 對應。若要讓位元組數量不受限制,可將此值指定為零。

在將電子郵件從 Unicode 轉換成 SMSC 的預設字元集或 UCS2 後使用位元組計數。這意味著,對於 UCS2,將產生至多 960 位元組的 MAX_MESSAGE_SIZE,480 個字元 (由於每個 UCS2 字元至少兩個位元組長。)

請注意,MAX_MESSAGE_SIZEMAX_PAGES_PER_MESSAGE選項同時服務於同一目的︰限制產生的 SMS 郵件之整體大小。更確切地說,MAX_PAGE_SIZE=960 和MAX_PAGE_SIZE=160 表示 MAX_PAGES_PER_MESSAGE=6。那為何會有兩個不同的選項?這是為了便於控制整體大小或頁數,而不必考量單一 SMS 郵件的最大大小 MAX_PAGE_SIZE。在通道選項檔案中此功能可能不重要,但在使用將電子郵件導向通道將電子郵件導向通道定址屬性時很重要,如將電子郵件導向通道中所述。

最後,請注意,會使用 MAX_MESSAGE_SIZEMAX_PAGE_SIZE * MAX_PAGES_PER_MESSAGE 兩個中較小的限制。

MAX_PAGE_SIZE

(整數,>= 10) 允許在單一 SMS 郵件中使用的最大位元組數目由 MAX_PAGE_SIZE 選項控制。依預設,將使用 160 個位元組的值。其與 MAX_PAGE_SIZE=160 對應。

MAX_PAGES_PER_MESSAGE

(整數,1 - 255) 此選項可控制給定的電子郵件能產生的 SMS 郵件之最大數目。實際上,此選項會截斷電子郵件,只將電子郵件中符合 MAX_PAGES_PER_MESSAGE SMS 郵件選項的部分轉換成 SMS 郵件。請參閱MAX_PAGE_SIZE選項的說明,以取得進一步論述。

依預設,MAX_PAGES_PER_MESSAGE 設定為 1 和由MAX_PAGE_SIZE分割的MAX_MESSAGE_SIZE 兩者中較大值。

ROUTE_TO

(字串IP 主機名稱1-64 個位元組) 所有以設定檔為目標的 SMS 郵件將會使用以下格式的電子郵件位址重新路由至指定的 IP 主機名稱:

SMS-destination-address@route-to

其中 SMS-destination-address 為 SMS 郵件的目標位址,而 route-to 為此選項指定的 IP 主機名稱。SMS 郵件的整個內容會作為產生的電子郵件之內容傳送。PARSE_RE_* 選項會被忽略。


備註 –

PARSE_RE_*ROUTE_TO 選項互相排斥。在同一閘道設定檔中同時使用這兩個選項會造成配置錯誤。


SMSC_DEFAULT_CHARSET

(字串) 透過此選項,可以指定 SMSC 的預設字元集。請使用以下檔案中給定的字元集名稱

installation-directory/config/charsets.txt

如果未指定此選項,則假定為 US-ASCII。請注意,charsets.txt 中使用的快捷名稱在同一目錄中的 charnames.txt 內定義。

處理電子郵件時,標頭行和文字郵件部分會先被解碼,然後轉換成 Unicode。然後,資料會轉換成 SMSC 的預設字元集或 UCS2,具體取決於USE_UCS2選項的值,以及 SMS 郵件是否至少包含一個在預設 SMSC 字元集中找不到的文字影像。請注意,UCS2 字元集是 16 位元的 Unicode 編碼,通常被稱為 UTF-16。

USE_HEADER_FROM

(整數,0 - 2) 設定此選項以允許 From: 位址傳送至 SMSC。該值表示 From: 位址的來源及其具有的格式。表 D–6 顯示允許的值及其涵義。

表 D–6 USE_HEADER_FROM 的值

值 

說明 

0

永遠不從 From: 位址設定 SMS 來源位址。使用找到的屬性-值對

1

SMS 來源位址設定為 from-local@from-domain,其中 From: 位址為:@from-route:from-local@from-domain

2

SMS 來源位址設定為 from-local,其中 From: 位址為:@from-route:from-local@from-domain

USE_HEADER_PRIORITY

(0 或 1) 此選項控制 RFC 822 Priority: 標頭行的處理。依預設,Priority: 標頭行的資訊用於設定產生的 SMS 郵件之優先權旗標,覆寫由DEFAULT_PRIORITY選項指定的預設 SMS 優先權。其與 USE_HEADER_PRIORITY=1 對應。若要停用 RFC 822 Priority: 標頭行,請指定 USE_HEADER_PRIORITY=0

請參閱 DEFAULT_PRIORITY 選項的說明,以取得有關處理 SMS 優先權旗標的進一步資訊。

USE_HEADER_REPLY_TO

(0 或 1) 當 USE_HEADER_FROM =1 時,此選項控制是否考量將 Reply-to:Resent-reply-to: 標頭行做為 SMS 來源位址使用。依預設,忽略 Reply-to:Resent-reply-to: 標頭行。與此對應,選項值為 0。若要啟用對這些標頭行的考量,請使用選項值 1。

請注意,RFC 2822 已停用 Reply-to:Resent-reply-to: 標頭行。

USE_HEADER_RESENT

(0 或 1) 當 USE_HEADER_FROM =1 時,此選項控制是否考量使用 Resent- 標頭行做為 SMS 來源位址。依預設,忽略 Resent- 標頭行。與此對應,選項值為 0。若要啟用對這些標頭行的考量,請使用選項值 1。

請注意,RFC 2822 已停用 Resent- 標頭行。

USE_HEADER_SENSITIVITY

(0 或 1) USE_HEADER_SENSITIVITY 選項控制 RFC 822 Sensitivity: 標頭行的處理。依預設,Sensitivity: 標頭行的資訊用於設定產生的 SMS 郵件之私密性旗標,覆寫由 DEFAULT_PRIVACY 選項指定的預設 SMS 私密性。這種情況為預設,對應於 USE_HEADER_SENSITIVITY=1。若要停用 RFC 822 Sensitivity: 標頭行,請指定 USE_HEADER_SENSITIVITY=0

請參閱DEFAULT_PRIVACY選項的說明,以取得有關處理 SMS 私密性旗標的進一步資訊。

USE_UCS2

(0 或 1) 如果可能,通道將在其產生的 SMS 郵件中使用 UCS2 字元集。此為預設運作方式,對應於 USE_UCS2=1。若要停用 UCS2 字元集,請指定 USE_UCS2=0。請參閱SMSC_DEFAULT_CHARSET選項的說明,以取得有關字元集問題的進一步資訊。

表 D–7 USE_UCS2 的有效值

USE_UCS2 的值 

結果 

預設 

將會儘可能地使用 SMSC 預設字元集。當原始電子郵件包含不屬於 SMSC 預設字元集的文字影像時,便會使用 UCS2 字元集。 

始終使用 SMSC 預設字元集。此字元集內不可用的文字影像將以快捷名稱表示,例如以「AE」表示 AE-ligature。 

SMS 閘道伺服器選項

GATEWAY_PROFILE

SMS 閘道伺服器配置檔案 sms_gateway.cnf 中的閘道設定檔名稱。

SMS 選項

以下選項允許用於產生的 SMS 郵件中的 SMS 欄位規格。

DEFAULT_DESTINATION_NPI

(整數,0 - 255) 依預設,會為目標位址指定 NPI (數值規劃指示器) 零值。透過此選項,可以指定替代整數值,範圍為 0 至 255。典型 NPI 值包含下面表 D–8 中的內容︰

表 D–8 數值規劃指標值

值 

說明 

未知 

ISDN (E.163, E.164) 

資料 (X.121) 

電報 (F.69) 

陸上行動電話 (E.212) 

國內 

Private 

10 

ERMES 

14 

IP 位址 (網際網路) 

18 

WAP 用戶端 ID 

>= 19 

未定義 

此選項的值可用以下三種方式指定:

DEFAULT_DESTINATION_TON

(整數,0 - 255) 依預設,會為目標位址指定 TON (數字類型) 指標值零。透過此選項,可以指定替代整數值,範圍為 0 至 255。典型 TON 值包含下面表 D–9 中的內容︰

表 D–9 典型 TON 值

值 

說明 

未知 

國際 

國內 

網路特定 

訂閱者號碼 

字母數字式 

縮寫式 

>=7 

未定義 

此選項的值可用以下三種方式指定:

DEFAULT_PRIORITY

(整數,0 - 255) SMS 郵件具有強制性優先權欄位。SMS 優先權值的轉譯在下面表 D–10 中顯示︰

表 D–10 為每個 SMS 設定檔類型解譯的 SMS 優先順序值

值 

GSM 

TDMA 

CDMA 

Non-priority 

Bulk 

Normal 

Priority 

Normal 

Interactive 

Priority 

Urgent 

Urgent 

Priority 

Very urgent 

Emergency 

透過此選項可以指定 SMS 郵件的預設優先順序。未指定時,會將預設優先權 0 用於 PROFILE=GSMCDMA,將優先權 1 用於PROFILE=TDMA。

請注意,如果USE_HEADER_PRIORITY=1,且電子郵件具有 RFC 822 Priority: 標頭行,則在該標頭行中指定的優先權將用於設定產生的 SMS 郵件之優先權。尤其是,如果 USE_HEADER_PRIORITY=0,則 SMS 優先權旗標將總是依據 DEFAULT_PRIORITY 選項設定,且 RFC 822 Priority: 標頭行總是會被忽略。如果 USE_HEADER_PRIORITY=1,則會使用原始電子郵件 RFC 822 Priority: 標頭行設定 SMS 郵件的優先權旗標。如果此標頭行不存在,則使用 DEFAULT_PRIORITY 選項設定 SMS 優先權旗標。

用於將 RFC 822 Priority: 標頭行值翻譯為 SMS 優先權旗標的對映在下表中顯示︰

表 D–11 將 Priority 標頭翻譯為 SMS 優先權旗標的對映

RFC 822 

SMS 優先順序旗標 

   

優先順序:value 

GSM 

TDMA 

CDMA 

Third 

Non-priority (0) 

Bulk (0) 

Normal (0) 

Second 

Non-priority (0) 

Bulk (0) 

Normal (0) 

Non-urgent 

Non-priority (0) 

Bulk (0) 

Normal (0) 

Normal 

Non-priority (0) 

Normal (1) 

Normal (0) 

Urgent 

Priority (1) 

Urgent (2) 

Urgent (2) 

DEFAULT_PRIVACY

(整數,-1、0 - 255) 是否在 SMS 郵件中設定私密性旗標,且要使用的值由 DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY 選項控制。依預設,值 -1 用於 DEFAULT_PRIVACY表 D–12 顯示了將 DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY選項設定為各種值的結果。

表 D–12 DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY 值的結果

DEFAULT_PRIVACY 

USE_HEADER_SENSITIVITY 

結果 

-1 

永遠不在 SMS 郵件中設定 SMS 私密性旗標。 

n >= 0 

總是將 SMS 私密性旗標設定為值 n。總是忽略 RFC 822 Sensitivity: 標頭行。

-1 (預設) 

預設 

僅當原始電子郵件包含 RFC 822 Sensitivity: 標頭行時,才設定 SMS 郵件的私密性旗標。在該情況下,SMS 私密性旗標會設定為對應 Sensitivity: 標頭行的值。這是預設。

n >= 0 

設定 SMS 郵件私密性旗標,使之對應於原始電子郵件的 RFC 822 Sensitivity: 標頭行。如果電子郵件不具有 Sensitivity: 標頭行,則 SMS 私密性旗標的值設定為 n。

SMS 私密性值的轉譯在下面表 D–13 中顯示︰

表 D–13 SMS 私密性值的解譯

值 

說明 

無限制 

有限制 

機密 

秘密 

>= 4 

未定義 

用於將 RFC 822 Sensitivity: 標頭行值翻譯為 SMS 私密性值的對映,在下面表 D–14 中顯示︰

表 D–14 Sensitivity 標頭翻譯為 SMS 私密性值的對映

RFC 822 Sensitivity: value 

SMS 私密性值 

Personal 

1 (有限制) 

Private 

2 (機密) 

Company confidential 

3 (秘密) 

DEFAULT_SERVICE_TYPE

(字串,0 - 5 位元組) 與通道產生的 SMS 郵件關聯的服務類型。依預設,不指定服務類型 (即為零長度字串)。一些常見服務類型為:CMT (行動郵件傳送)、CPT (行動傳呼)、VMN (語音郵件通知)、VMA (語音郵件提示)、WAP (無線應用程式協定) 以及 USSD (非結構化輔助資料服務)。

DEFAULT_SOURCE_ADDRESS

(字串,0 - 20 位元組) 供電子郵件產生的 SMS 郵件使用的來源位址。請注意,當 USE_HEADER_FROM=1 時,透過此選項指定的值會由電子郵件的創建者位址所覆寫。依預設,停用此值,亦即值為 0

DEFAULT_SOURCE_NPI

(整數,0 - 255) 依預設,為來源位址指定 NPI 值零。透過此選項,可以指定替代整數值,範圍為 0 至 255。請參閱用於典型 NPI 值的DEFAULT_DESTINATION_NPI選項的說明。

DEFAULT_SOURCE_TON

(整數,0 - 255) 依預設,為來源位址指定 TON 指標值零。透過此選項,可以指定替代整數值,範圍為 0 至 255。請參閱用於典型 TON 值的DEFAULT_DESTINATION_TON選項說明。

DEFAULT_VALIDITY_PERIOD

(字串,0 - 252 位元組) 依預設,不會為 SMS 郵件指定相對有效期,而是使用 SMSC 的預設值。使用此選項來指定不同的相對有效期。以秒、分鐘、小時或天為單位來指定值。下面表 D–15 指定了此選項的各種值之格式和說明︰

表 D–15 DEFAULT_VALIDITY_PERIOD 格式和值

格式 

說明 

nnn

秒鐘的隱式單位;例如 604800 

nnns

秒鐘單位;例如 604800s 

nnnm

分鐘單位;例如 10080m 

nnnh

小時單位;例如 168h 

nnnd

天的單位;例如 7d 

可以使用 0、0s、0m、0h 或 0d 規格選取 SMSC 的預設有效期。即,使用 0、0s、0m、0h 或 0d 的規格時,會為產生的 SMS 郵件中的有效期指定一個空白字串。

請注意此選項不接受 UTC 格式的值。

DESTINATION_ADDRESS_NUMERIC

(0 或 1) 使用此選項刪除擷取自電子郵件訊息封 To: 位址的 SMS 目標位址中的所有非數值字元。例如,如果訊息封 To: 位址為︰

"(800) 555-1212"@sms.siroe.com

將被縮減成:

8005551212@sms.siroe.com

若要啟用此刪除功能,請指定此選項的值為 1。依預設,停用此刪除功能,對應於選項值 0。請注意,啟用後,刪除作業會在透過DESTINATION_ADDRESS_PREFIX選項增加任何目標位址前綴之前完成。

DESTINATION_ADDRESS_PREFIX

(字串) 在某些情況下,可能需要確保所有 SMS 目標位址都前置有固定文字字串,例如「+」。此選項可以用於指定這樣一個前綴。然後,該前綴會加入缺少指定前綴的任何 SMS 目標位址中。若要防止被DESTINATION_ADDRESS_NUMERIC選項刪除,應在 DESTINATION_ADDRESS_NUMERIC 選項之後套用此選項。

PROFILE

(字串) 指定與 SMSC 配合使用的 SMS 設定檔。可能的值為 GSMTDMACDMA。如未指定,則假定為 GSM。此選項僅用於為其他通道選項 (例如DEFAULT_PRIORITYDEFAULT_PRIVACY) 選取預設。

USE_SAR

(0 或 1) 過大的電子郵件可能需要分割成多封 SMS 郵件。發生這種情況時,個別 SMS 郵件可以選擇性地包含使用 SMS sar_ 欄位加入的定序資訊。這會產生「分段的」SMS 郵件,這些郵件可以透過接收終端機重新組合成單一 SMS 郵件。指定 USE_SAR=1 來指示增加此序列資訊 (如果有)。預設為不增加序列資訊,對應於 USE_SAR=0

指定 USE_SAR=1 時,會忽略REVERSE_ORDER選項。

SMPP 選項

以下選項允許用於 SMPP 協定參數規格。這些名稱以字串「ESME_」開頭的選項可用於識別充當外部簡短郵件實體 (ESME) 的 MTA;亦即 MTA 連結至 SMPP 伺服器,以將 SMS 郵件提交至該伺服器的關聯 SMSC 的情況。

ESME_ADDRESS_NPI

(整數,0 - 255) 依預設,連結作業將指定 ESME NPI 的值為零,表示不明的 NPI。透過此選項,可以指定替代整數值,範圍為 0 至 255。請參閱DEFAULT_DESTINATION_NPI選項的說明,以取得典型 NPI 值表。

ESME_ADDRESS_TON

(整數,0 - 255) 依預設,連結作業將指定 ESME TON 的值為 0。透過此選項,可以指定替代整數值 (範圍為 0 至 255)。請參閱DEFAULT_DESTINATION_TON選項的說明,以取得典型 TON 值表。

ESME_IP_ADDRESS

(字串,0 - 15 位元組) 連結至 SMPP 伺服器時,BIND PDU 表示用戶端 (亦即 ESME) 的位址範圍是一個 IP 位址。透過指定 TON 值為 0x00,NPI 值為 0x0d 來完成此作業。位址範圍欄位的值會設定為正在執行 SMS 通道的主機之 IP 位址。請以帶點的十進位格式指定 IP 位址,例如 127.0.0.1。

ESME_PASSWORD

(字串,0 - 8 位元組) 連結至 SMPP 伺服器時,可能需要密碼。如果是這樣,請透過此選項指定密碼。依預設,使用零長度密碼字串。

ESME_SYSTEM_ID

(字串,0 - 15 位元組) 連結至 SMPP 伺服器時,可以提供 MTA 的系統 ID。依預設,不指定系統 ID (即,使用零長度字串)。若要指定系統 ID,請使用此選項。

ESME_SYSTEM_TYPE

(字串,0 - 12 位元組) 連結至 SMPP 伺服器時,可以提供 MTA 的系統類型。依預設,不指定系統類型 (即,使用零長度字串)。

MAX_PAGES_PER_BIND

(整數,>= 0) 有些 SMPP 伺服器可能會限制單一連結階段作業中提交的 SMS 郵件之最大數目。鑑於此,此選項可規定單一階段作業中可提交的 SMS 郵件的最大數量。達到此限制時,通道將中斷連結,關閉 TCP/IP 連線,然後重新連線並再次連結。

依預設,MAX_PAGES_PER_BIND 使用值 1024。請注意,通道還會偵測 ESME_RTHROTTLED 錯誤並在通道的單次執行中相應地調整 MAX_PAGES_PER_BIND

REVERSE_ORDER

(0 或 1) 當電子郵件產生多個 SMS 郵件時,這些 SMS 郵件可以提交至 SMSC,以循序順序 (REVERSE_ORDER=0) 或反向循序順序 (REVERSE_ORDER=1)。反向排定次序適用於接收終端機首先顯示最後收到的郵件之情形。在這種情況下,最後收到的郵件會是電子郵件的第一部分,而非最後一部分。依預設,使用 REVERSE_ORDER=1

請注意,指定USE_SAR=1 時,會忽略此選項。

SMPP_MAX_CONNECTIONS

(整數,1 - 50) 此選項控制每個程序中同步執行的 SMPP 連線的最大數量。由於每個連線都有一個關聯的執行緒,因此,此選項還可對每個程序中「工作者」執行緒的最大數量進行限制。依預設,SMPP_MAX_CONNECTIONS=20

SMPP_PORT

(整數,1 - 65535) 可以使用此選項或 port 通道關鍵字指定 SMPP 伺服器偵聽的 TCP 連接埠。此連接埠號碼必須透過這兩種機制之一指定。如果同時使用這兩種機制指定,則透過 SMPP_PORT 選項做出的設定優先。請注意,此選項無預設值。

對於雙向 SMS,請確定其連接埠與 SMPP 轉送的 LISTEN_PORT 相同。

SMPP_SERVER

(字串,1 - 252 位元組) 對於單向 SMS,依預設,要連線的 SMPP 伺服器之 IP 主機名稱為與通道關聯的正式主機名稱,亦即顯示在 MTA 配置內通道定義第二行的主機名稱。此選項可用於指定不同的主機名稱或 IP 位址,而該主機名稱或 IP 位址將置換通道定義中指定的值。指定 IP 位址時,請使用帶點的十進位表示法,例如 127.0.0.1。

對於雙向 SMS,設定為指向 SMS 閘道伺服器主機名稱或 IP 位址。如果使用 SMPP 轉送的 LISTEN_INTERFACE_ADDRESS 選項,則務必使用與指定的網路介面位址關聯的主機名稱或 IP 位址。

TIMEOUT

(整數,>= 2) 依預設,等候資料寫入 SMPP 伺服器完成或從 SMPP 伺服器接收資料時,逾時時間為 30 秒。使用 TIMEOUT 選項來指定不同的逾時值 (以秒為單位)。指定的值至少為 1 秒。

本土化選項

建構 SMS 郵件時,SMS 通道有大量固定文字字串將置入郵件中。例如,這些字串說明了電子郵件的 From: 位址和 Subject: 標頭行。透過本小節說明的通道選項,可以為不同語言指定這些字串版本,並指定通道的預設語言。範例 D–2 顯示選項檔案的語言部分:


範例 D–2 通道選項檔案的語言規格部分


LANGUAGE=default-language

[language=i-default]
FROM_PREFIX=From:
SUBJECT_PREFIX=Subj:
CONTENT_PREFIX=Msg:
LINE_STOP= NO_MESSAGE=[no message]
REPLY_PREFIX=Re:

[language=en]
FROM_PREFIX=From:
SUBJECT_PREFIX=Subj:
CONTENT_PREFIX=Msg:
LINE_STOP= 
NO_MESSAGE=[no message]
REPLY_PREFIX=Re:
  ...

在每個 [language=x] 區段內,均可以指定與該語言相關的本土化選項。如果在該區塊內未指定特定選項,則會使用此選項的全域值。[language=x] 區段以外指定的本土化選項會設定此選項的全域值。

對於下列選項字串值必須使用 US-ASCII 或 UTF-8 字元集指定。請注意,US-ASCII 字元集為 UTF-8 字元集的特例。

CONTENT_PREFIX

(字串,0 - 252 位元組) 置於 SMS 郵件內、電子郵件內容自身之前的文字字串。預設的全域值為 US-ASCII 字串「Msg:」。

DSN_DELAYED_FORMAT

(字串,0 - 256 個字元) 傳送延遲通知的格式化字串。依預設,此選項使用空白字串,因此禁止延遲通知轉換成 SMS。請注意,GATEWAY_NOTIFICATIONS必須設定為 1,才能使此選項生效。GATEWAY_NOTIFICATIONS=0 時,會忽略此選項。

DSN_FAILED_FORMAT

(字串,0 - 256 個字元) 永久性傳送失敗通知的格式化字串。此選項的預設值為字串:

Unable to deliver your message to $a; no further delivery attempts will be 
made.

若要禁止轉換失敗通知,請為此選項指定空白字串。請注意,GATEWAY_NOTIFICATIONS必須設定為 1,才能使此選項生效。GATEWAY_NOTIFICATIONS=0 時,會忽略此選項。

DSN_RELAYED_FORMAT

(字串,0 - 256 個字元) 轉送通知的格式化字串。預設值為字串:

Your message to $a has been relayed to a messaging system which may not 
provide a final delivery confirmation

若要禁止轉換轉送通知,請為此選項指定空白字串。請注意,GATEWAY_NOTIFICATIONS必須設定為 1,才能使此選項生效。GATEWAY_NOTIFICATIONS=0 時,會忽略此選項。

DSN_SUCCESS_FORMAT

(字串,0 - 256 個字元) 傳送成功通知的格式化字串。預設值為字串:

Your message to $a has been delivered

若要禁止轉換遞送成功通知,請為此選項指定空白字串。請注意,GATEWAY_NOTIFICATIONS必須設定為 1,才能使此選項生效。GATEWAY_NOTIFICATIONS=0 時,會忽略此選項。

FROM_FORMAT

(字串,0 - 252 位元組) 用於格式化創建者資訊以插入 SMS 郵件中的格式化範本。預設全域值為 US-ASCII 字串「$a」,它會在創建者的電子郵件位址進行替換。請參閱格式化範本

FROM_NONE

(字串,0 - 252 位元組) 沒有創建者位址可供顯示時,置於 SMS 郵件中的文字字串。預設全域值為空白字串。

請注意通常不使用此選項,因為網站通常會拒絕缺少創建者位址的電子郵件。

LANGUAGE

(字串,0 - 40 位元組) 用於從中選取文字字串的預設語言群組。如未指定,則該語言將取自主機的預設本機規格。如果主機的本機規格不可用或對應於「C」,則使用 i-default。(i-default 對應於「適用於國際使用者的英語文字」。)

LINE_STOP

(字串,0 - 252 位元組) 置於 SMS 郵件內、自電子郵件擷取的各行之間的文字字串。預設全域值為 US-ASCII 空格字元「 」。

NO_MESSAGE

(字串,0 - 252 位元組) 置於 SMS 郵件內以表示電子郵件沒有內容的文字字串。預設全域值為 US-ASCII 字串「[no message]」。

SUBJECT_FORMAT

(字串,0 - 252 位元組) 格式化在 SMS 郵件中顯示的 Subject: 標頭行內容的格式化範本。此選項的全域預設值為 US-ASCII 字串「($s)」。請參閱格式化範本,以取得進一步詳細資訊。

請參閱 SUBJECT_NONE 選項,以取得不存在 Subject: 標頭行,或該標頭行內容為空字串時如何進行處理的說明。

SUBJECT_NONE

(字串,0 - 252 位元組) 當原始電子郵件不具有 Subject: 標頭行或 Subject: 標頭行值為空字串時,顯示的文字字串。此選項的預設全域值為空白字串。

DEBUG

(整數,位元遮罩) 啟用除錯輸出。預設值為 6,選取警告郵件和錯誤郵件。任何非零值均會啟用通道自身的除錯輸出,與通道定義上指定 master_debug 相同。表 D–16 定義了 DEBUG 位元遮罩的位元值。

表 D–16 DEBUG 位元遮罩

位元 

值 

說明 

0 - 31 

-1

極其詳細輸出 

1

資訊郵件 

2

警告郵件 

4

錯誤郵件 

8

子常式呼叫追蹤 

16

雜湊表診斷 

32

I/O 診斷,接收 

64

I/O 診斷,傳輸 

128

SMS 至電子郵件轉換診斷 (行動電話發出的郵件與 SMS 通知) 

256

PDU 診斷,標頭資料 

512

PDU 診斷,內文資料 

10 

1024

PDU 診斷,類型-長度-值資料 

11 

2048 

選項處理;傳送所有選項設定至記錄檔。 

格式化範本

使用FROM_FORMATSUBJECT_FORMAT以及所有 DSN_* 通道選項指定的格式化範本為 UTF-8 字串,其可能包含文字列文字和替換序列的組合。假定範例電子郵件位址為

Jane Doe <user@siroe>

識別的替換序列在下面表 D–17 中顯示︰

表 D–17 替代序列

序列 

說明 

$a

以創建者電子郵件位址的本機與網域部分替代 (例如,「user@siroe」)

$d

以創建者電子郵件位址的網域部分替代 (例如,「 domain」)

$p

以創建者電子郵件位址的片語部分 (如果有) 替代 (例如,「Jane Doe」)

$s

Subject: 標頭行的內容替代

$u

以創建者電子郵件位址的本機部分替代 (例如,「user」)

\x

以文字字元「x」替代

例如,格式化範本

From: $a

會產生文字字串

From: user@siroe

建構

${xy:alternate text}

可用於在序列 x 關聯的文字中進行替換。如果該文字為空白字串,則會使用與序列 y 關聯的文字。而如果此文字也為空白字串,則以替代文字進行替代。例如,考量格式化範本

From: ${pa:unknown sender}

對於創建者電子郵件位址

John Doe <jdoe@siroe.com>

該位址中包含片語部分,因此範本產生:

From: John Doe

但是對於位址

jdoe@siroe.com

該位址缺少片語,因此產生

From: jdoe@siroe.com

而對於空白創建者位址,則會產生

From: unknown sender

新增額外的 SMS 通道

您可以將 MTA 配置為具有多個 SMS 通道。這樣做的典型原因有兩個:

  1. 與不同的 SMPP 伺服器通訊。

    十分簡單:只需新增額外的 SMS 通道至配置,並確定 (a) 為該通道給定不同的通道名稱,(b) 並將其與不同的主機名稱關聯。例如,


    sms_mway port 55555 threaddepth 20  
    smpp.siroe.com
    
    sms_ace port 777 threaddepth 20
    sms.ace.net

    請注意無需新的重寫規則。如果沒有直接相符的重寫規則,Messaging Sever 會尋找具有關聯主機名稱的通道。例如,如果伺服器使用的是 user@host.domain,則會搜尋名為「host.domain」的通道。如果找到此類通道,會將郵件路由至該通道。否則,會開始搜尋「.domain」的重寫規則,如果仍找不到,則會繼續搜尋小數點號 (「.」) 規則。如需有關重寫規則的更多資訊,請參閱第 11 章, 配置重寫規則

  2. 與同一 SMPP 伺服器通訊但使用不同的通道選項。

    若要與同一 SMPP 伺服器通訊,但使用不同的通道選項,請在每個通道定義的SMPP_SERVER通道選項中指定同一 SMPP 伺服器。

    使用此機制很有必要,因為兩個不同的通道不能具有同一正式主機名稱 (即通道定義第二行列出的主機名稱)。若要允許它們與同一 SMPP 伺服器通訊,請定義兩個單獨的通道,每個通道均在其通道選項檔案內的 SMPP_SERVER 中指定同一 SMPP 伺服器。

    例如,您可以使用以下通道定義


    sms_mway_1 port 55555 threaddepth 20
    SMS-DAEMON-1
    
    sms_mway_2 port 55555 threaddepth 20
    SMS-DAEMON-2

    以及重寫規則


    sms-1.siroe.com $u%sms-1.siroe.com@SMS-DAEMON-1
    sms-2.siroe.com $U%sms-2.siroe.com@SMS-DAEMON-2

    然後,讓它們都使用同一 SMPP 伺服器,這兩個通道中每一個都要在其通道選項檔案中指定SMPP_SERVER=smpp.siroe.com。

調整遞送重試的頻率

當 SMS 郵件因暫時性錯誤 (例如 SMPP 伺服器無法到達) 而無法遞送時,電子郵件會保留在遞送佇列中並會在稍後再重試。除非另有配置,否則,Job Controller 不會在一小時內重試遞送。對於 SMS 郵件傳送,似乎等待時間太長。因此,建議將 backoff 通道關鍵字與 SMS 通道配合使用,指定更積極的遞送嘗試排程。例如,

sms_mway port 55555 threaddepth 20 \ 
  backoff pt2m pt5m pt10m pt30m notices 1
smpp.siroe.com

透過上述設定,首次嘗試後兩分鐘會進行重新遞送嘗試。如果這次也失敗,則會在第二次嘗試後五分鐘再次進行嘗試。然後是十分鐘,最後是每三十分鐘一次。notices 1 通道關鍵字可使一天後還無法傳送的郵件做為無法傳送的郵件傳回。

範例單向配置 (MobileWay)

MTA SMS 通道可與任何 SMPP V3.4 相容的 SMPP 伺服器配合使用。為說明範例配置,本節會詳細說明如何將 SMS 通道配置為與 MobileWay SMPP 伺服器配合使用。MobileWay 是全域資料與 SMS 連結的領先供應商。透過 MobileWay 路由您的 SMS 通訊流,您可以觸及全世界大多數主要 SMS 網路上的 SMS 訂閱者。

透過 MobileWay 請求 SMPP 帳號時,您可能要回答以下問題:

向 MobileWay 提供上述問題的答案後,他們會提供給您一個 SMPP 帳號以及與他們的 SMPP 伺服器通訊的必要資訊。這些資訊包括


Account Address: a.b.c.d:p
Account Login: system-id
Account Passwd: secret

[帳號位址] 欄位為 IP 位址 a.b.c.d 以及您要連線至 MobileWay SMPP 伺服器的 TCP 連接埠號碼 p。將這些值用於SMPP_SERVERSMPP_PORT通道選項。帳號登入和密碼分別是用於ESME_SYSTEM_IDESME_PASSWORD通道選項的值。使用此資訊後,您的通道選項檔案應包含


SMPP_SERVER=a.b.c.d
SMPP_PORT=p
ESME_SYSTEM_ID=system-id
ESME_PASSWORD=secret

現在若要與 MobileWay 互通,您需要設定兩個額外選項


ESME_ADDRESS_TON=0x01
DEFAULT_DESTINATION_TON=0x01

imta.cnf 檔案中的重寫規則可能如下所示

sms.your-domain $u@sms.your-domain

imta.cnf 檔案中通道定義可能如下所示


sms_mobileway 
sms.your-domain

通道選項檔案、重寫規則及通道定義均已設定妥當後便可傳送一封測試郵件。MobileWay 需要國際定址,形式如下

+<country-code><subscriber-number>

例如,若要傳送一封測試郵件至電話號碼為 (800) 555-1212 的北美訂閱者,您可以將電子郵件傳送至

+18005551212@sms.your-domain

除錯

若要對通道除錯,請在通道的定義中指定 master_debug 通道關鍵字。例如,


sms_mway port 55555 threaddepth 20 \ 
backoff pt2m pt5m pt10m pt30m notices 1 master_debug

透過 master_debug 通道關鍵字,有關通道作業的基本診斷資訊會被輸出至通道記錄檔。如需有關通道所進行的 SMPP 異動之詳細診斷資訊,還需在通道選項檔案中指定

DEBUG=-1

為雙向 SMS 配置 SMS 通道

如需有關配置 SMS 通道的一般說明,請參閱從SMS 通道配置開始的上述主題。配置 SMS 通道內容,將其視為可直接與遠端 SMSC 進行通訊,但在表 D–18 中列出的異常除外︰

表 D–18 雙向配置異常

異常 

詳細說明 

master 通道關鍵字

移除 master 通道關鍵字 (如果有)。

SMS 通道配置不再需要該關鍵字。 

SMPP_SERVER

設定為指向 SMS 閘道伺服器 IP 位址中的主機名稱。如果使用 SMPP 轉送的 LISTEN_INTERFACE_ADDRESS 選項 (請參閱配置選項),則務必使用與指定的網路介面位址關聯的主機名稱或 IP 位址。

SMPP_PORT

用於創設 SMPP 轉送 (請參閱SMPP 轉送器) 的 LISTEN_PORT 設定所用的同一 TCP 連接埠。

DEFAULT_SOURCE_ADDRESS

挑選一個值,然後將遠端 SMSC 配置為將此位址路由回閘道 SMPP 伺服器。在 SMS 通道的選項檔案中,透過此選項指定所選擇的值。 

GATEWAY_PROFILE 

設定為符合閘道設定檔名稱。請參閱閘道設定檔

USE_HEADER_FROM

設定為 0

所有其他通道配置的完成方式應如 SMS 通道說明文件所述。

設定雙向 SMS 路由中所述,需要配置遠端 SMSC 以路由 SMS 位址 (在 DEFAULT_SOURCE_ADDRESS 通道選項中定義的) 至閘道的 SMPP 伺服器 (使用由 LISTEN_PORT 選項指定的 TCP 連接埠號碼)。(如需如何指定 LISTEN_PORT 的資訊,請參閱SMPP 伺服器。)

請注意多個 SMS 通道可以使用同一 SMPP 轉送器。同樣,只需一個 SMPP 伺服器或閘道設定檔即可處理多個 SMS 通道的 SMS 回覆與通知。配置多個轉送器、伺服器和閘道設定檔之功能會透過配置選項來影響不同的使用特徵。

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 郵件無效且傳回錯誤回應。

SMS 閘道伺服器配置

本節將指導如何設定 SMS 閘道伺服器以實現電子郵件至行動電話以及行動電話至電子郵件的功能。本節包含以下主題:

設定雙向 SMS 路由

設定 MTA 與 SMSC 之間的雙向電子郵件與 SMS 路由的建議方法包含三個步驟:

設定 SMS 位址前綴

MTA SMS 通道產生的來源 SMS 位址應設定為與選取的 SMS 位址前綴相符。設定以下內容便可達此目的:

設定閘道設定檔

隨後,應設定 SMS 閘道伺服器的閘道設定檔,以使所有轉送的 SMS 來源位址成為唯一位址。此為預設設定,但可以透過指定閘道設定檔選項 MAKE_SOURCE_ADDRESSES_UNIQUE=1 進行明確設定。這樣會使轉送的 SMS 來源位址的格式變為:

prefixnnnnnnnnnn

其中 nnnnnnnnnn 是唯一的十位十進位數字。

配置 SMSC

最後,SMSC 應配置為將所有符合前綴 (僅前綴或前綴加上十位數) 的 SMS 目標位址路由至 SMS 閘道伺服器的 SMPP 伺服器。此種路由的常規表示式類似於:

prefix([0-9]{10,10}){0,1}

其中,prefixDEFAULT_SOURCE_ADDRESS 的值,[0-9] 指定允許的十位數字值,{10, 10} 指定十位數的最小值和最大值,而 {0, 1} 指定零值或十位數字的其中一值。

啟用與停用 SMS 閘道伺服器

啟動與停止 SMS 閘道伺服器

啟用 SMS 閘道伺服器後,可以使用以下指令啟動與停止它:

# start-msg sms

# stop-msg sms

SMS 閘道伺服器配置檔案

SMS 閘道伺服器需要配置檔案才能運作。配置檔案為使用 UTF-8 編碼的 Unicode 文字檔案。此檔案可以是 ASCII 文字檔案。檔案名稱必須為:

installation-directory/config/sms_gateway.cnf

檔案中的每個選項設定都使用以下格式:

option-name=option-value

選項群組中的選項會以下列格式顯示:

[group-type=group-name]
option-name-1=option-value-1
option-name-2=option-value-2
...
option-name-n=option-value-n

在閘道伺服器上配置電子郵件至行動電話功能

若要實作雙向 SMS 的電子郵件至行動電話部分,您必須配置以下內容:

閘道設定檔

若要配置電子郵件至行動電話閘道設定檔,請執行以下步驟:

Procedure配置電子郵件至行動電話閘道設定檔

步驟
  1. 新增閘道設定檔至 SMS 閘道伺服器配置檔案。

    若要新增選項群組,請使用以下格式:


    [GATEWAY_PROFILE=profile_name]
    option-name-1=option-value-1
    option-name-2=option-value-2a
    ...
    option-name-n=option-value-n

    閘道設定檔名稱 profile_name 採用前述格式,長度不能超過 11 位元組。此名稱必須與 SMS 通道選項檔案中 GATEWAY_PROFILE 通道選項的名稱相同。該名稱不區分大小寫。如需有效通道選項的清單,請參閱可用選項

  2. 設定閘道設定檔選項 (例如,SMSC_DEFAULT_CHARSET),以與遠端 SMSC 的特徵相符。

  3. 設定其他閘道設定檔選項以與 SMS 通道的電子郵件特徵相符。

    如需閘道設定檔選項的完整說明,請參閱閘道設定檔選項

  4. 設定 CHANNEL 選項。

    設定其值為 MTA SMS 通道名稱。

    當通知透過閘道傳送至電子郵件時,產生的電子郵件將使用此通道名稱在 MTA 中形成佇列。

SMPP 轉送器

若要配置 SMPP 轉送器,請完成以下步驟:

Procedure配置 SMPP 轉送

步驟
  1. 將 SMPP 轉送創設 (選項群組) 增加至 SMS 閘道伺服器的配置檔案。

    若要新增選項群組,請使用以下格式:


    [SMPP_RELAY=relay_name]
    option-name-1=option-value-1
    option-name-2=option-value-2
    ...
    option-name-n=option-value-n

    轉送可以使用任何名稱。唯一要緊的就是該名稱不能是同一配置檔案內任何其他 SMPP 轉送器實例的名稱。

  2. 設定 LISTEN_PORT 選項。

    SMS 通道的 SMPP_PORT 選項使用的值必須與轉送 LISTEN_PORT 選項使用的值相符。對於 LISTEN_PORT,請選取 TCP 連接埠號碼,此連接埠號碼並未由其他任何 SMPP 轉送或伺服器創設使用,也未由同一電腦上執行的其他任何伺服器使用。

  3. 設定 SERVER_HOST 選項。

    轉送的 SERVER_HOST 選項應給定遠端 SMSC 的 SMPP 伺服器主機名稱。可以使用 IP 位址來代替主機名稱。

  4. 設定 SERVER_PORT 選項。

    轉送的 SERVER_PORT 選項應給定遠端 SMSC 的 SMPP 伺服器 TCP 連接埠。

    如需所有 SMPP 轉送選項的完整說明,請參閱SMPP 轉送器選項

SMPP 伺服器

若要配置 SMPP 伺服器,請完成以下步驟:

Procedure配置 SMPP 伺服器

步驟
  1. 將 SMPP 伺服器創設 (選項群組) 增加至 SMS 閘道伺服器的配置檔案。

    若要新增選項群組,請使用以下格式:


    [SMPP_SERVER=server_name]
    option-name-1=option-value-1
    option-name-2=option-value-2...
    option-name-n=option-value-n

    伺服器可以使用任何名稱。唯一要緊的就是該名稱不能是同一配置檔案內任何其他 SMPP 伺服器實例的名稱。

  2. 設定 LISTEN_PORT 選項。

    選擇 TCP 連接埠號碼,此連接埠號碼並未由任何其他伺服器或轉送器實例使用。此外,此連接埠號碼並未由同一電腦上執行的任何其他伺服器使用。

    遠端 SMSC 需要配置為將通知經由 SMPP 路由至使用此 TCP 連接埠的 SMS 閘道伺服器系統。

    如需所有 SMPP 伺服器選項的完整說明,請參閱SMPP 伺服器選項

配置行動電話至電子郵件作業

若要配置行動電話至電子郵件功能,必須執行兩個配置步驟:

請注意多個閘道設定檔可以使用同一 SMPP 伺服器實例。實際上,同一 SMPP 伺服器實例既可用於電子郵件至行動電話應用程式,又可用於行動電話至電子郵件應用程式。

配置行動電話至電子郵件閘道設定檔

對於行動電話源,閘道設定檔提供兩條主要資訊:如何識別適合該設定檔的 SMS 郵件以及如何將這些郵件轉換成電子郵件。請注意,此設定檔可以與電子郵件至行動電話使用的設定檔相同,但帶有 SELECT_RE 選項。

若要配置閘道設定檔,請執行以下步驟:

Procedure配置閘道設定檔

步驟
  1. 將閘道設定檔 (選項群組) 增加至 SMS 閘道伺服器的配置檔案。

    若要新增選項群組,請使用以下格式:


    [GATEWAY_PROFILE=profile_name]
    option-name-1=option-value-1
    option-name-2=option-value-2
    ...
    option-name-n=option-value-n

    任何不超過 11 個字元的名稱均可用做設定檔的名稱。唯一要緊的就是該名稱不能是同一配置檔案中其他閘道設定檔已經使用的名稱。

  2. 設定 SELECT_RE 選項 (必須為每個閘道設定檔指定此選項)。

    此選項的值為 ASCII 常規表示式,用於比對 SMS 目標位址。如果 SMS 目標位址符合此常規表示式,則此 SMS 郵件會透過閘道傳送至使用此相符設定檔說明之特徵的電子郵件。

    請務必注意可以配置多個閘道設定檔,這些閘道設定檔的各組 SMS 位址可以發生重疊 (例如符合位址 000 的設定檔以及另一個符合任一其他三位數位址的設定檔)。但是,應該避免發生這種情形,因為 SMS 郵件只會傳送至一個閘道設定檔:即第一個相符的設定檔。此外,進行比對的次序也無法定義。

  3. 設定 CHANNEL 選項。

    其值應為 MTA 的 SMS 通道名稱。

    如需所有行動電話源選項的完整說明,請參閱閘道設定檔選項

配置行動電話至電子郵件 SMPP 伺服器

增加 SMPP 伺服器的程序與增加電子郵件至行動電話 SMPP 伺服器的程序相同 (請參閱SMPP 伺服器)。

遠端 SMSC 需要配置為將 SMS 通訊流路由至閘道 SMPP 伺服器。若要如此,SMSC 用於路由行動電話至電子郵件通訊的 SMS 目標位址,應為閘道設定檔選項 SELECT_RE 設定的值。

例如,如果 SMS 位址 000 已用於行動電話至電子郵件通訊流,則 SMSC 需要配置為將 SMS 目標位址 000 的通訊流路由至閘道 SMPP 伺服器。閘道設定檔應使用選項設定 SELECT_RE=000。

配置選項

本節詳細描述 SMS 閘道伺服器配置檔案選項。以下各表列出所有可用的配置選項,並針對各項提供簡要說明。各表分別用於全域選項、SMPP 轉送器選項、SMPP 伺服器選項以及 SMS 閘道伺服器設定檔選項。

在後述小節中,針對所有可用的配置選項都提供有完整的說明。這些小節為:

全域選項

目前 SMS 閘道伺服器具有三類全域選項:

全域選項必須在配置檔案上方、指定任何選項群組之前進行指定。表 D–20 列出了所有全域配置選項。

表 D–20 全域選項

選項 

預設 

說明 

DEBUG

6

選取產生的診斷輸出類型 

HISTORY_FILE_DIRECTORY

 

歷程資料檔案的絕對目錄路徑 

HISTORY_FILE_MODE

0770

歷程資料檔案的許可權 

HISTORY_FILE_ROLLOVER_PERIOD

30 分鐘

寫入同一歷程資料檔案的最長時間 

LISTEN_CONNECTION_MAX

 

所有 SMPP 轉送器與伺服器實例中並行運作的內送連線之最大數量 

RECORD_LIFETIME

3 天

歷程資料歸檔檔案中記錄的生命週期 

THREAD_COUNT_INITIAL

10 個執行緒

工作者執行緒的初始數量 

THREAD_COUNT_MAXIMUM

50 個執行緒

工作者執行緒的最大數量 

THREAD_STACK_SIZE

64 Kb

每個工作者執行緒的堆疊大小 

執行緒調校選項

每個內送 TCP 連線代表一個 SMPP 階段作業。對階段作業的處理是由執行緒儲存區中的工作者執行緒所操控的。當階段作業處理需要等候 I/O 請求完成時,工作者執行緒會暫停此階段作業,並執行給定的其他工作。I/O 請求完成後,儲存區中可用的工作者執行緒會恢復此階段作業。

以下選項允許用於調校工作者執行緒程序的儲存區:THREAD_COUNT_INITIALTHREAD_COUNT_MAXIMUMTHREAD_STACK_SIZE

THREAD_COUNT_INITIAL

(整數,> 0) 為工作者執行緒池初始建立的執行緒數。此計數不包括專門用於管理記憶體內歷程資料的執行緒 (2 個執行緒),也不包括專門用於偵聽內送的 TCP 連線的執行緒 (SMS 閘道伺服器偵聽的每個 TCP 連接埠/介面位址對使用一個執行緒)。THREAD_COUNT_INITIAL 的預設值為 10 個執行緒。

THREAD_COUNT_MAXIMUM

(整數,>= THREAD_COUNT_INITIAL) 允許工作者執行緒池的最大執行緒數。預設值為 50 個執行緒。

THREAD_STACK_SIZE

(整數,> 0) 工作者執行緒池中每個工作者執行緒的堆疊大小 (以位元組為單位)。預設值為 65,536 個位元組 (64 Kb)。

歷程資料調校

SMS 郵件轉送後,遠端 SMPP 接收伺服器產生的郵件 ID 會儲存在記憶體內雜湊表中。有關原始電子郵件的資訊也會隨此郵件 ID 一同儲存。如果該郵件 ID 隨後被 SMS 通知所參考,則此資訊可以被擷取。然後,擷取的資訊可用於將 SMS 通知傳送至適當的電子郵件收件者。

記憶體內雜湊表會由專門的執行緒備份到磁碟上。結果磁碟檔案被稱為「歷史檔案」。這些歷程檔案有兩個用途:以永久性形式儲存重新啟動 SMS 閘道伺服器之後復原記憶體內雜湊表時所需的資料;透過將可能的詳細資料儲存在磁碟中來保留虛擬記憶體。每個歷史檔案僅可於 HASH_FILE_ROLLOVER_PERIOD 秒內寫入,超過此時間,歷史檔案便會關閉,並建立新的歷史檔案。當歷史檔案超過 RECORD_LIFETIME 的時效 (以秒為單位) 後,便會從磁碟中刪除。

以下選項允許用於調校歷程檔案:HISTORY_FILE_DIRECTORYHISTORY_FILE_MODEHISTORY_FILE_ROLLOVER_PERIODRECORD_LIFETIME

HISTORY_FILE_DIRECTORY

(字串,絕對目錄路徑) 會在其中寫入歷史檔案的目錄之絕對路徑。如果該目錄路徑不存在,則會建立一個。此選項的預設值為:

msg_svr_base/data/sms_gateway_cache/

使用的目錄應位於相對較快的磁碟系統上,並有足夠的自由空間用於預期的儲存;請參閱SMS 閘道伺服器儲存需求,以將此選項變更為更合適的值。

HISTORY_FILE_MODE

(整數,八進制值) 與歷史檔案關聯的檔案權限。依預設,將使用值 0770 (八進位)。

HISTORY_FILE_ROLLOVER_PERIOD

(整數,秒數)HASH_FILE_ROLLOVER_PERIOD 秒,就會關閉目前的歷史檔案,並建立一個新歷史檔案。依預設,將使用值 1800 秒 (30 分鐘)。

RECORD_LIFETIME

(整數,秒 > 0) 歷程記錄的使用期限 (以秒為單位)。時間長於此生命週期的記錄會從記憶體中清除;時間長於此生命週期的歷程檔案會從磁碟中刪除。依預設,將使用值 259,200 秒 (3 天)。儲存在記憶體內的記錄會在掃描過程中被專門用於管理記憶體內資料的執行緒清除。這些掃描每 HASH_FILE_ROLLOVER_PERIOD 秒執行一次。有必要開啟新的歷程檔案時,磁碟上的檔案就會被清除。

其他

有兩個其他選項:DEBUGLISTEN_CONNECTION_MAX

DEBUG

(整數,位元遮罩) 啟用除錯輸出。預設值為 6,選取警告郵件和錯誤郵件。

表 D–21 定義 DEBUG 位元遮罩的位元值。

表 D–21 DEBUG 位元遮罩

位元 

值 

說明 

0 - 31 

-1

極其詳細輸出 

1

資訊郵件 

2

警告郵件 

4

錯誤郵件 

8

子常式呼叫追蹤 

16

雜湊表診斷 

32

I/O 診斷,接收 

64

I/O 診斷,傳輸 

128

SMS 至電子郵件轉換診斷 (行動電話發出的郵件與 SMS 通知) 

256

PDU 診斷,標頭資料 

512

PDU 診斷,內文資料 

10 

1024

PDU 診斷,類型-長度-值資料 

11 

2048 

選項處理;傳送所有選項設定至記錄檔。 

LISTEN_CONNECTION_MAX

(整數,>= 0) 所有 SMPP 轉送與伺服器創設中允許同步運作的傳入 TCP 連線之最大數量。0 (零) 值表示連線數量無全域限制。但是,也可以由給定轉送器或伺服器實例針對每台轉送器或伺服器設定限制。

SMPP 轉送器選項

SMS 閘道伺服器可具有其 SMPP 轉送器的多個實例,每個都具有不同的特徵,其中主要特徵是偵聽的 TCP 連接埠以及介面。不同的是,對於 SMPP 轉送器偵聽的每個網路介面和 TCP 連接埠對,不同的特徵可以進行歸類。這些特徵可以使用本節所述的選項加以指定。

每個實例應置於以下形式的選項群組中:


[SMPP_RELAY=relay-name]
option-name-1=option-value-1
option-name-2=option-value-2
...
option-name-n=option-value-n

字串 relay-name 僅用於區分不同的創設。

表 D–22 列出 SMPP 轉送配置選項。

表 D–22 SMPP 轉送器選項

選項 

預設 

說明 

LISTEN_BACKLOG

255

內送 SMPP 用戶端連線的連線儲存區 

LISTEN_CONNECTION_MAX

 

並行運作的內送連線的最大數量 

LISTEN_INTERFACE_ADDRESS

 

內送 SMPP 用戶端連線的網路介面 

LISTEN_PORT

 

內送 SMPP 用戶端連線的 TCP 連接埠 

LISTEN_RECEIVE_TIMEOUT

600 s

SMPP 用戶端的內送連線讀取逾時 

LISTEN_TRANSMIT_TIMEOUT

120 s

SMPP 用戶端的內送連線寫入逾時 

MAKE_SOURCE_ADDRESSES_UNIQUE

1

使轉送 SMS 來源位址成為唯一的位址並可回覆至 

SERVER_HOST

 

要轉送至的 SMPP 伺服器的主機名稱或 IP 位址 

SERVER_PORT

 

執行轉送的 SMPP 伺服器之 TCP 連接埠 

SERVER_RECEIVE_TIMEOUT

600 s

外寄 SMPP 伺服器連線的讀取逾時 

SERVER_TRANSMIT_TIMEOUT

120 s

外寄 SMPP 伺服器連線的寫入逾時 

LISTEN_BACKLOG

(整數,在 [0,255] 之間) 傳入 SMPP 用戶端連線的 TCP 堆疊所允許的連線儲存區。預設值為 255。

LISTEN_CONNECTION_MAX

(整數,>= 0) 允許用於此 SMPP 轉送創設的同步運作的傳入 TCP 連線之最大數量。請注意,如果此值超過全域 LISTEN_CONNECTION_MAX 設定,則會被忽略。

LISTEN_INTERFACE_ADDRESS

(字串「INADDR_ANY」或以小數點號分隔的十進制 IP 位址) 偵聽傳入 SMPP 用戶端連線的網路介面 IP 位址。可以是字串「INADDR_ANY」(所有可用介面) 或以小數點號分隔的十進制形式的 IP 位址 (例如,193.168.100.1)。預設值為「INADDR_ANY」。叢集 HA 配置需要將此值設定為與 HA 邏輯 IP 位址相對應。

LISTEN_PORT

(整數,TCP 連接埠號碼) 連結以接受傳入 SMPP 用戶端連線的 TCP 連接埠。此選項的規格為強制性;無預設值。另請注意,沒有為此服務指定網際網路指定號碼授權中心 (IANA)。

LISTEN_RECEIVE_TIMEOUT

(整數,秒數 > 0) 等待從 SMPP 用戶端讀取資料時允許的逾時。預設值為 600 秒 (10 分鐘)。

LISTEN_TRANSMIT_TIMEOUT

(整數,秒數 > 0) 傳送資料至 SMPP 用戶端時允許的逾時。預設值為 120 秒 (2 分鐘)。

MAKE_SOURCE_ADDRESSES_UNIQUE

(0 或 1) 依預設,SMPP 轉送將為每個 SMS 來源位址附加唯一的十位數字串。然後,產生的 SMS 來源位址會與其他歷程資料一同儲存。結果是唯一 SMS 位址,可供 SMS 使用者回覆時使用。用作 SMS 目標位址時,SMPP 伺服器會偵測此位址,然後將 SMS 郵件傳送給正確的電子郵件創建者。

若要停用唯一 SMS 來源位址 (對於單向 SMS) 的產生,請指定此選項的值為 0 (零)。

SERVER_HOST

(字串、TCP 主機名稱或以小數點號分隔的十進制 IP 位址) 轉送 SMPP 用戶端通訊的 SMPP 伺服器。可指定為主機名稱或 IP 位址。此選項的規格為強制性;無預設值。

SERVER_PORT

(整數,TCP 連接埠號碼) 接收轉送郵件的遠端 SMPP 伺服器的 TCP 連接埠。此選項的規格為強制性;無預設值。沒有為此服務指定 IANA;請勿與為 SNPP 指定的 IANA 混淆。

SERVER_RECEIVE_TIMEOUT

(整數,秒數 > 0) 等待從 SMPP 伺服器讀取資料時允許的逾時。預設值為 600 秒 (10 分鐘)。

SERVER_TRANSMIT_TIMEOUT

(整數,秒數 > 0) 傳送資料至 SMPP 伺服器時允許的逾時。預設值為 120 秒 (2 分鐘)。

SMPP 伺服器選項

SMS 閘道伺服器可具有其 SMPP 伺服器的多個實例,每個都具有不同的特徵,其中主要特徵是偵聽的 TCP 連接埠以及介面。不同的是,對於 SMPP 伺服器偵聽的每個網路介面和 TCP 連接埠對,不同的特徵可以歸類。這些特徵可以使用本節所述的選項加以指定。

每個實例應置於以下形式的選項群組中:


[SMPP_SERVER=server-name]
option-value-1=option-value-1
option-value-2=option-value-2
...
option-name-n=option-value-n

字串 server-name 僅用於區分不同的創設。

表 D–23 列出 SMPP 伺服器配置選項。

表 D–23 SMPP 伺服器選項

選項 

預設 

說明 

LISTEN_BACKLOG

255

內送 SMPP 伺服器連線的連線儲存區 

LISTEN_CONNECTION_MAX

 

並行運作的內送連線的最大數量 

LISTEN_INTERFACE_ADDRESS

 

內送 SMPP 伺服器連線的網路介面 

LISTEN_PORT

 

內送 SMPP 伺服器連線的 TCP 連接埠 

LISTEN_RECEIVE_TIMEOUT

600 s

內送 SMPP 伺服器連線的讀取逾時 

LISTEN_TRANSMIT_TIMEOUT

120 s

內送 SMPP 伺服器連線的寫入逾時 

LISTEN_BACKLOG

([0,255] 中的整數) 傳入 SMPP 用戶端連線的 TCP 堆疊所允許的連線儲存區。預設值為 255。

LISTEN_CONNECTION_MAX

(整數 >= 0) 允許用於此 SMPP 轉送創設的同步運作的傳入 TCP 連線之最大數量。請注意,如果此值超過全域 LISTEN_CONNECTION_MAX 設定,則會被忽略。

LISTEN_INTERFACE_ADDRESS

(字串,「INADDR_ANY」以小數點號分隔的十進制 IP 位址) 偵聽傳入 SMPP 用戶端連線的網路介面 IP 位址。可以是字串「INADDR_ANY」(所有可用介面) 或以小數點號分隔的十進制形式的 IP 位址 (例如,193.168.100.1.)。預設值為「INADDR_ANY」。

LISTEN_PORT

(整數,TCP 連接埠號碼) 連結以接受傳入 SMPP 用戶端連線的 TCP 連接埠。此選項的規格為強制性;無預設值。請注意,沒有為此服務指定 IANA。

LISTEN_RECEIVE_TIMEOUT

(整數,秒數 > 0) 等待從 SMPP 用戶端讀取資料時允許的逾時。預設值為 600 秒 (10 分鐘)。

LISTEN_TRANSMIT_TIMEOUT

(整數,秒數 > 0) 傳送資料至 SMPP 用戶端時允許的逾時。預設值為 120 秒 (2 分鐘)。

閘道設定檔選項

可以沒有閘道設定檔也可以有多個閘道設定檔。在 SMS 閘道伺服器的配置檔案中,每個閘道設定檔都在選項群組中宣告,格式如下︰


[GATEWAY_PROFILE=profile-name]
option-name-1=option-value-1
option-name-2=option-value-2
...
option-name-n=option-value-n

字串 profile-name 僅用於區分設定檔與其他源設定檔。

表 D–24 列出 SMS 閘道伺服器設定檔選項。

表 D–24 SMS 閘道伺服器設定檔選項

選項 

預設 

說明 

CHANNEL

sms

讓郵件形成佇列的通道 

EMAIL_BODY_CHARSET

US-ASCII

用於電子郵件內文的字元集 

EMAIL_HEADER_CHARSET

US-ASCII

用於電子郵件標頭的字元集 

FROM_DOMAIN

 

用於將電子郵件路由回 SMS 的網域名稱 

PARSE_RE_0, PARSE_RE_1, ..., PARSE_RE_9

 

用於剖析 SMS 郵件文字的常規表示式 

PROFILE

GSM

作業時使用的 SMS 設定檔︰GSM、TDMA 或 CDMA 

SELECT_RE

 

用於選擇外掛程式的常規表示式 

SMSC_DEFAULT_CHARSET

US-ASCII

SMSC 的預設字元集 

USE_SMS_PRIORITY

0

電子郵件的閘道 SMS 優先順序旗標 

USE_SMS_PRIVACY

0

電子郵件的閘道 SMS 私密性指標 

CHANNEL

(字串,1 - 40 個字元) 用於使電子郵件形成佇列的 MTA 通道之名稱。如未指定,則假設為「sms」。指定的通道必須在 MTA 的配置中定義。

EMAIL_BODY_CHARSET

(字串,字元集名稱) 用於在將 SMS 文字插入電子郵件內文之前翻譯 SMS 文字的字元集。如有必要,轉譯文字將進行 MIME 編碼。預設值為 US-ASCII。如果 SMS 郵件包含此字元集中不可用的文字影像,這些文字影像將被轉換成助憶符號字元,對收件者而言,它們可能有意義,也可能毫無意義。

MTA 可識別的字元集清單位於以下檔案中:

installation-directory/config/charsets.txt

EMAIL_HEADER_CHARSET

(字串,字元集名稱) 用於在將 SMS 文字插入 RFC 822 Subject: 標頭行之前翻譯 SMS 文字的字元集。如有必要,轉譯字串將進行 MIME 編碼。預設值為 US-ASCII。如果 SMS 郵件包含此字元集中不可用的文字影像,這些文字影像將被轉換成助憶符號字元,對收件者而言,它們可能有意義,也可能毫無意義。

FROM_DOMAIN

(字串、IP 主機名稱、1 - 64 個字元) 建構電子郵件的訊息封 From: 時附加至 SMS 來源位址的網域名稱。指定的名稱應是可將電子郵件路由回 SMS 的正確名稱。(例如,與 MTA SMS 通道關聯的主機名稱)。如未指定,則會使用透過 CHANNEL 選項指定的通道之正式主機名稱。

PARSE_RE_0, PARSE_RE_1, ..., PARSE_RE_9

(字串,UTF-8 常規表示式) 對於行動電話源電子郵件,閘道設定檔需要從 SMS 郵件的文字中擷取目標電子郵件位址。透過一個或多個符合 POSIX 的常規表示式 (RE) 可以達此目的。SMS 郵件文字將由每個常規表示式進行評估,直至找到產生目標電子郵件位址的相符項目,或者用完所有常規表示式為止。


備註 –

PARSE_RE_*ROUTE_TO 選項互相排斥。在同一閘道設定檔中同時使用這兩個選項會造成配置錯誤。


每個常規表示式必須符合 POSIX,並且用 UTF-8 字元集編碼。這些常規表示式必須輸出字串 0 作為目標位址。它們可能會選擇性地輸出 Subject: 標頭行中使用的文字做為字串 1,輸出郵件內文中使用的文字做為字串 2。未被常規表示式「消耗」的任何文字還可用於郵件內文,位於任何做為字串 2 輸出的文字之後。

以 PARSE_RE_0、PARSE_RE_1、 ...,直至 PARSE_RE_9 的順序嘗試常規表示式。如果未指定常規表示式,則使用以下預設常規表示式︰

[ \t]*([^\( ]*)[ \t]*(?:\(([^\)]*\))?[ \t]*(.*)

此預設常規表示式分成以下部分:

[ \t]*

忽略前導空格字元 (SPACETAB)。

([^\( ]*)

目標電子郵件位址。此為第一個報告字串。

[ \t]*

忽略空格字元。

(?:\(([^\)]*)$1\))?

括號中的是可選主旨文字。此為第二個報告字串。前導 ?: 導致外括號不會報告字串。它們僅用於將其內容分組為尾隨字元 ? 的單一 RE。尾隨字元 ? 會使此 RE 元件僅比對零或一次,相當於表示式 {0,1}。

[ \t]*

忽略空格字元。

(.*)

在郵件內文中保留文字。此為第三個報告字串。

例如,使用上述常規表示式,範例 SMS 郵件:

dan@sesta.com(Testing)This is a test

可得出電子郵件:


To: dan@sesta.com
Subject: Testing

This is a test

在第二個範例中,SMS 郵件:

sue@sesta.com This is another test

會得到:

To: sue@sesta.com

This is another test

請注意,SMS 郵件在使用上述常規表示式進行評估前將轉譯成 Unicode 的編碼。翻譯的文字會由之前從 UTF-8 轉換為 UTF-16 的常規表示式進行評估。評估結果會針對目標電子郵件位址翻譯為 US-ASCII,針對 Subject: 文字翻譯為 EMAIL_HEADER_CHARSET (如果有),針對郵件內文翻譯為 EMAIL_BODY_CHARSET (如果有)。

PROFILE

(字串、「GSM」、「TDMA」或「CDMA」) 假設的 SMS 設定檔。目前此資訊僅用於將 SMS 優先權旗標對映至 RFC 822 Priority: 標頭行。因此,當 USE_SMS_PRIORITY=0 (該選項的預設設定) 時,此選項不生效。

SELECT_RE

(字串,US-ASCII 常規表示式) 符合 US-ASCII POSIX 的常規表示式,用於比較每封 SMS 郵件的 SMS 目標位址。如果 SMS 郵件的目標位址符合此 RE,則此 SMS 郵件將根據此閘道設定檔,透過閘道傳送至電子郵件。

請注意,由於 SMS 郵件的目標位址在 US-ASCII 字元集中指定,因此,此常規表示式還必須能以 US-ASCII 表示。

SMSC_DEFAULT_CHARSET

(字串,字元集名稱) 遠端 SMSC 使用的預設字元集名稱。此選項的兩個常用選擇為 US-ASCII 和 UTF-16-BE (USC2)。如未指定,則假定為 US-ASCII。

USE_SMS_PRIORITY

(整數,0 或 1) 依預設 (USE_SMS_PRIORITY=0),會忽略 SMS 郵件中的優先權旗標,且不會與電子郵件一起傳送。若要讓優先權旗標與電子郵件一起傳送,請指定 USE_SMS_PRIORITY=1。與電子郵件一起傳送時,從 SMS 至電子郵件的對映如表 D–25 中所示︰

表 D–25 從 SMS 對映至電子郵件的優先順序旗標

SMS 設定檔 

SMS 優先順序旗標 

電子郵件優先順序:標頭行 

GSM 

0 (非優先權)

123 (優先權)

無標頭行 (表示 Normal)

Urgent

TDMA 

0 (大量)

1 (一般)

2 (緊急)

3 (非常緊急)

Nonurgent

無標頭行 (表示 Normal)

Urgent

Urgent

CDMA 

0 (一般)

1 (互動)

2 (緊急)

3 (緊急)

無標頭行 (表示 Normal)

Urgent

Urgent

Urgent

請注意,電子郵件 Priority: 標頭行的值為 NonurgentNormalUrgent

USE_SMS_PRIVACY

(整數,0 或 1) 依預設 (USE_SMS_PRIVACY=0),會忽略 SMS 私密性指示,且不會與電子郵件一起傳送。若要讓此資訊與電子郵件一起傳送,請指定 USE_SMS_PRIVACY=1。與電子郵件一起傳送時,從 SMS 至電子郵件的對映如表 D–26 中所示︰

表 D–26 從 SMS 對映至電子郵件的私密性旗標

SMS 私密性旗標 

電子郵件 Sensitivity: 標頭行 

0 (未限制)

無標頭行 

1 (限制)

Personal

2 (機密)

Private

3 (秘密)

Company-confidential

請注意,電子郵件 Sensitivity: 標頭行的值為 PersonalPrivateCompany-confidential

雙向 SMS 的配置範例

有關運作方式的假設

為此範例,我們假定需要以下運作方式:

為了引發此運作方式,應進行以下假定和指定

進一步假設和指定

SMS 通道配置

若要使上述運作方式生效,可以在 imta.cnf 檔案中使用以下 SMS 通道配置 (將以下行增加至檔案結尾處):

(blank line)
sms
sms.domain.com

SMS 通道選項檔案

通道的選項檔案 sms_option 可以包含以下設定:

SMPP_SERVER=gateway.domain.com
SMPP_PORT=503
USE_HEADER_FROM=0
DEFAULT_SOURCE_ADDRESS=000
GATEWAY_PROFILE=sms1
SMSC_DEFAULT_CHARSET=UCS2

SMS 閘道伺服器配置

最後,閘道伺服器配置檔案 sms_gateway.cnf 應如下所示:


HISTORY_FILE_DIRECTORY=/sms_gateway_cache/
[SMPP_RELAY=relay1]
LISTEN_PORT=503SERVER_HOST=smpp.domain.com
SERVER_PORT=377

[SMPP_SERVER=server1]
LISTEN_PORT=504

[GATEWAY_PROFILE=sms1]
SELECT_RE=000([0-9]{10,10}){0,1}
SMSC_DEFAULT_CHARSET=UCS2

測試此配置

如果沒有 SMSC 可供測試,您可能會想執行某些回返測試。透過 sms_option 檔案中的一些額外設定,便可以為上述配置執行一些簡單的迴路測試。

額外 sms_option 檔案設定

sms_option 檔案的額外設定為:

! So that we don’t add text to the body of the SMS message
FROM_FORMAT=
SUBJECT_FORMAT=
CONTENT_PREFIX=

如果沒有這些設定,則包含:

user@domain.com (Sample subject) Sample text

的電子郵件將會轉換成 SMS 郵件:

From:user@domain.com Subject:Sample Subject Msg:Sample text

反之將不會使用行動電話至電子郵件程式碼預期的格式,而是:

user@domain.com (Sample subject) Sample text

因此,需要 (對於迴路測試) 為 FROM_FORMATSUBJECT_FORMAT 以及 CONTENT_PREFIX 選項指定空白字串。

執行回返測試

傳送定址至 000@sms.domain.com 的測試電子郵件,例如

user@domain.com (Test message) This is a test message which should loop back

結果是這封電子郵件應路由回電子郵件收件者 user@domain.com。請確定已將 sms.domain.com 增加到您的 DNS 或主機表中,以進行測試。

SMS 閘道伺服器儲存需求

若要確定 SMS 閘道伺服器所需的資源數量,請使用表 D–27 中的需求,以及預期每秒轉送的郵件數量和 RECORD_LIFETIME 設定中產生的值。

表 D–27 涵蓋了歷程記錄、SMPP 轉送以及 SMPP 伺服器的需求。

表 D–27 SMS 閘道伺服器儲存需求

元件 

需求 

記憶體內歷程記錄 

每個轉送的郵件需要 33+m+s 位元組的虛擬記憶體,其中,m 是郵件的 SMS 郵件 ID 的長度 (1 <= m <= 64),s 是郵件的 SMS 來源位址的長度 (1 <= s<= 20)。

MAKE_SOURCE_ADDRESS_UNIQUE=0 時,僅使用 16+m 位元組。對於 64 位元作業系統,每個記錄都要消耗 49+m+s 位元組的虛擬記憶體 [當 MAKE_SOURCE_ADDRESS_UNIQUE=0 時為 24+m]。

另請注意,堆疊分配程式實際上可能會為每個記錄分配更大的虛擬記憶體部分。 

最大記錄數為 430 億 (2**32-1)。如果少於 168 億個記錄 (2**24),雜湊表會消耗大約 16 Mb;如果少於 6710 萬個記錄 (2**26),雜湊表會消耗大約 64 Mb;如果多於 6710 萬個記錄,雜湊表會消耗大約 256 Mb。 

64 位元作業系統會消耗雙倍記憶體。 

這些消耗還不包含每個記錄本身需要消耗的記憶體。 

磁碟中歷程記錄 

每封轉送的郵件平均需要以下位元組數量: 

81+m+2s+3a+ S+2i

其中: 

  • m 是 SMS 郵件 ID 的平均長度,1<=m<=64

  • s 是 SMS 來源位址的平均長度,1 <= s <= 20

  • a 是電子郵件位址的平均長度,3 <= a <= 129

  • SSubject: 標頭行的平均長度,0 <= S<= 80

  • i 是電子郵件訊息封 ID 的平均長度,0 <= i <= 129

    任何指定的記錄大小均受郵件訊息封 From:To: 位址的長度、訊息封和郵件 ID,以及 Subject: 標頭行長度的影響。

    最大記錄長度為 910 個位元組。

    使用 MAKE_SOURCE_ADDRESS_UNIQUE=0 時,每個記錄的大小 (以位元組為單位) 為︰78+m+3a+ S+2i

SMPP 轉送器 

每個轉送 SMPP 階段作業消耗兩個 TCP 通訊端:一個用於本機用戶端,另一個用於遠端 SMPP 伺服器。32 位元作業系統上每個連線大約消耗 1 Kb 虛擬記憶體,而 64 位元作業系統則為 2 Kb。 

SMPP 伺服器 

每個內送的連線會消耗一個 TCP 通訊端。32 位元作業系統上每個連線大約消耗 1 Kb 虛擬記憶體,而 64 位元作業系統則為 2 Kb。 

例如,如果預期每秒平均轉送 50 封郵件,則 SMS 來源位址長度為 13 位元組,SMS 郵件 ID 通常長度為 12 位元組,電子郵件位址長度為 24 位元組,Subject: 標頭行長度為 40 位元組,電子郵件和訊息封 ID 每個長度為 40 位元組,且歷程記錄保留 7 天,則︰

儘管可以提供充足的磁碟來處理任何磁碟需求,但 32 位元機器上的虛擬記憶體需求將強制限制為大約 2 Gb。若要減少虛擬記憶體或磁碟儲存所需的容量,請使用 RECORD_LIFETIME 選項來縮短記錄的保留時間。