Sun logo      上一個      目錄      索引      下一個     

Sun ONE Messaging Server 6.0 管理員指南

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

本章描述如何在 Sun™ ONE Messaging Server 上實施簡短郵件服務 (SMS)。其中包含以下主題:


介紹

Sun ONE 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 通道會將已形成佇列的電子郵件轉換成 SMS 郵件,如電子郵件至 SMS 轉換程序所述。這種轉換程序包括對多封 MIME 郵件以及字元集轉譯問題的處理。

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

雙向 SMS

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

啟用雙向 SMS 服務除了需要上一主題中說明的 MTA SMS 通道 (SMPP 用戶端) 以外,還需要 SMS 閘道伺服器。Sun ONE Messaging Server 會將 SMS 閘道伺服器作為其一般安裝程序的一部分來安裝,之後您必須對其進行配置。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/attribute2=value2/.../@sms.siroe.com

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

表格 D-1  SMS 屬性

屬性名稱

屬性值和用法

ID

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

FROM

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

FROM_NPI

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

FROM_TON

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

MAXLEN

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

MAXPAGES

此收件者的電子郵件可分割成的 SMS 郵件最大數量。使用 MAXPAGES 的值與 MAX_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 文字內容類型) 會被使用,被轉換部分的最大數量也會受到控制。

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

沒有 SMS_TEXT 對映表 (請參閱站點定義的文字轉換) 時,在 SMS 通道中已形成佇列的電子郵件會得到圖 D-2 中說明的處理。

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

本圖顯示 SMS 通道電子郵件處理作業。

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

本圖顯示 SMS 通道電子郵件處理作業。

以下步驟與圖 D-2 中已編號的方塊相對應:

  1. 開始時是一個空白的輸出緩衝區。緩衝區使用的字元集為統一碼。
  2. 電子郵件的創建者位址可以取自以下五種來源之一,這些來源依優先順序由高到低顯示:
  3. 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- 標頭行會被忽略。

  4. 如果 Subject: 標頭行不存在或為空白,則 SUBJECT_NONE 選項的值會附加到輸出緩衝區。
  5. 否則,SUBJECT_FORMAT 通道選項的處理結果,以及 LINE_STOP 通道選項的值均會附加到輸出緩衝區。

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

    非文字郵件部分將被捨棄。

  8. 對於每個文字部分,如果未達到 MAX_MESSAGE_PARTS 的限制,就會被解碼成統一碼,並連同 LINE_STOP 通道選項的值一起附加到緩衝區。
  9. 然後,輸出緩衝區的結果就會從統一碼轉換成的 SMSC 的預設字元集或 UCS2 (UTF-16)。SMSC 的預設字元集透過 SMSC_DEFAULT_CHARSET 選項來指定。
  10. 轉換之後,它會被截斷,以不超過 MAX_MESSAGE_SIZE 設定的位元組數。
  11. 步驟 6 轉換而來的字串會被分割成一封或多封 SMS 郵件,任一封 SMS 郵件都不會長於 MAX_PAGE_SIZE 指定的位元組數。最多會產生 MAX_PAGES_PER_MESSAGE 封 SMS 郵件。

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


範例電子郵件處理

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

From:John Doe
To:1234567@sms.siroe.com
Subject:今日會議
Date:2001 年 3 月 26 日星期五 08:17

今日 14:30 將於大會議室舉行職員會議。

將會轉換成以下 SMS 郵件:

jdoe@siroe.com (今日會議) 今日 14:30 將於大會議室舉行職員會議。

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

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

則會產生:

From:John Doe Subj:今日會議 Msg:今日 14:30 將於大會議室舉行職員會議。

SMS 郵件提交處理

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

有郵件需要處理時,通道會啟動。通道連結至作為傳輸器的 SMPP 伺服器,提交透過 SMPP 選項所述的 ESME_ 通道選項指定的憑證。表格 D-2 列出 BIND_TRANSMITTER PDU (協定資料單元) 中設定的欄位,且指定它們的值:

表格 D-2  產生的 BIND_TRANSMITTER PDU 中的欄位

欄位

system_id

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

密碼

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 會建立。如果在執行緒的 SMS 郵件傳送完畢之前,遠端 SMPP 伺服器傳送 UNBIND,則運作方式與上述類似。

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

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

請注意,僅當 USE_HEADER_REPLY_TO 選項的值為 1 時,才會考量 Resent-reply-to:Reply-to: 標頭行。此外,僅當 USE_HEADER_RESENT 選項的值為 1 時,才會考量 Resent-reply-to:Resent-from: 以及 Resent-sender: 標頭行。(請注意,這表示如果要考量 Resent-reply-to: 標頭行,這兩個選項的值均需為 1。)這兩個選項的預設值均為 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,則此欄位通常被強制使用值 0x05,表示文數字 TON;否則,預設值為 0x01,表示國際 TON。

source_addr_npi

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

source_addr

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

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     $?SMS 位址無效

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

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

X-VALIDATE-SMS-ADDRESS

! 反覆刪除任何非數值字元
    $_*$[$ -/:-~]%* $0$2$R
! 如果位址的形式為 1nnnnnnnnnn 或 nnnnnnnnnn,則接受該位址
! 如果接受它,確保輸出 +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
! 不接受,因此它無效
   *                $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 目標位址中刪除。

站點定義的文字轉換

站點可以透過轉換規則表自訂電子郵件至 SMS 轉換程序所述的步驟 1 - 6。這些規則透過 MTA 對映檔案中的對映表來指定。

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

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

目前,此兩種項目類型是:

郵件標頭項目

這些項目指定哪些郵件標頭行應包含在 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. 這兩個項目會使 From:Subject: 標頭行包含在 SMS 郵件內。From: Subject: 分別縮寫為 F:S:。其他一些項目可以進一步影響 From:Subject: 標頭行。
  2. 此項目會將包含 <...> 型樣的 From: 標頭行縮減至只剩下角括號中的文字。例如:

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

    將被取代為:

    F:jdoe@siroe.com

  3. 此項目將會移除 From: 標頭行中的 (...) 型樣,包括其中的所有內容。例如:
  4. F:"John C. Doe" <jdoe@siroe.com> (您好)

    將被取代為:

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

  5. 此項目將會移除 From: 標頭行中的「...」型樣,包括其中的所有內容。例如:
  6. F:"John C. Doe" <jdoe@siroe.com> (您好)

    將被取代為:

    F:<jdoe@siroe.com> (您好)

  7. 此項目將會移除 From: 標頭行中 @ 符號右側的所有內容。例如:
  8. F:"John C. Doe" <jdoe@siroe.com> (您好)

    將被取代為:

    F:"John C. Doe" <jdoe@

  9. 這四個項目可移除郵件標頭與內文中各行的前導和尾隨空格。
  10. 這兩個項目可將郵件標頭與內文中各行內的兩個空格縮減為一個。
  11. 這四個項目可將成對的破折號、句點、感嘆號及問號,縮減成相應的單個字元。這同樣有助於縮減 SMS 郵件的大小。

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

From:"John C. Doe" (您好)

將被縮減成:

jdoe

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

  1. 從 From: 標頭行開始:
  2. From:"John C. Doe" (您好)

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

    F:"John C. Doe" (您好)

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

  3. 對映會套用於最後一個步驟的結果字串。產生:
  4. F:jdoe@siroe.com

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

  5. 接著,套用此對映會產生:
  6. F:jdoe

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

  7. 接著,套用此對映會產生:
  8. F:jdoe

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

  9. 由於再也沒有其他相符的項目,因此最終結果字串:
  10. F:jdoe


SMS 通道配置

本節將指導如何為單向 (電子郵件至行動電話) 與雙向 (電子郵件至行動電話與行動電話至電子郵件) 功能設定 SMS 通道。不論是單向還是雙向功能,SMS 通道的設定均相同,異常情形會在為雙向 SMS 配置 SMS 通道主題中註明。

本節包含以下主題:

新增 SMS 通道

將 SMS 通道新增至 Messaging Server 配置,需要兩個步驟:

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

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

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

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

新增通道定義與重寫規則

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

  1. 在新增 SMS 通道至 MTA 配置之前,需要為通道挑選一個名稱。通道名稱可以是 smssms_x (其中 x 是長度在一到三十六個位元組之間的任何字串,且不區分大小寫)。例如,sms_mway
  2. 若要新增通道定義,請編輯 imta.cnf 檔案 (位於 installation-directory/config/ 目錄中)。在此檔案結尾處新增一個空行,其後再加入以下兩行:
  3. 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 ONE Messaging Server 6.0,已拒絕 master 通道關鍵字。即使存在也會被忽略。


  4. 新增通道定義後,請移至檔案上半部分,然後依以下格式新增重寫規則:
  5.    smpp-host-name $u@smpp-host-name

    例如,

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

  6. 儲存 imta.cnf 檔案。
  7. 使用 imsimta cnbuild 指令重新編譯此配置。
  8. 使用 imsimta restart dispatcher 指令重新啟動 SMTP 伺服器。
  9. 透過上述配置,電子郵件會被定址至 id@smpp-host-name (例如,123456@smpp.siroe.com),從而導向該通道。請參閱電子郵件至 SMS 轉換程序,以取得有關定址的進一步資訊。
  10. (可選) 如果您想對使用者隱藏 SMPP 伺服器的主機名稱,或想將同一通道與其他主機名稱相關聯,請新增額外的重寫規則。例如,若要將此通道與 host-name-1host-name-2 相關聯,可新增以下重寫規則:
  11. 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 轉換選項

選項 (頁碼)

描述

Default

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 中配置的閘道設定檔名稱

N/A

 

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 應用程式服務

N/A

DEFAULT_SOURCE_ADDRESS

預設 SMS 來源位址

0

DEFAULT_SOURCE_NPI

SMS 來源位址的預設 NPI

0x00

DEFAULT_SOURCE_TON

SMS 來源位址的預設 TON

0x01

DEFAULT_VALIDITY_PERIOD

SMS 郵件的預設有效期

N/A

DESTINATION_ADDRESS_NUMERIC

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

0

DESTINATION_ADDRESS_PREFIX

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

N/A

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 ONE Messaging Server 的主機之 IP
位址

N/A

ESME_PASSWORD

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

N/A

ESME_SYSTEM_ID

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

N/A

ESME_SYSTEM_TYPE

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

N/A

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 連接埠。

N/A

SMPP_SERVER

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

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

N/A

TIMEOUT

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

30

 

本土化選項

CONTENT_PREFIX

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

Msg:

DSN_DELAYED_FORMAT

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

空白字串

DSN_FAILED_FORMAT

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

請參閱描述

DSN_RELAYED_FORMAT

轉送通知的格式化字串

請參閱描述

DSN_SUCCESS_FORMAT

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

請參閱描述

FROM_FORMAT

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

$a

FROM_NONE

沒有創建者時顯示的文字

N/A

LANGUAGE

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

i-default

LINE_STOP

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

空格字元

NO_MESSAGE

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

]no message]

SUBJECT_FORMAT

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

$s

SUBJECT_NONE

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

N/A

 

其他選項

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

(integer) 將多部分電子郵件轉換成一封 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。若要讓位元組數量不受限制,可將此值指定為零。

所用的位元組數在電子郵件從統一碼轉換成 SMSC 的預設字元集或 UCS2 後產生。這表示,轉換成 UCS2 時,值為 960 個位元組的 MAX_MESSAGE_SIZE 至多產生 480 個字元,因為每個 UCS2 字元的長度至少為兩個位元組。

請注意,MAX_MESSAGE_SIZEMAX_PAGES_PER_MESSAGE 選項都用於同一目的:限制結果 SMS 郵件的整體大小。實際上,MAX_PAGE_SIZE=960MAX_PAGE_SIZE=160 就表示 MAX_PAGES_PER_MESSAGE=6。那為何會有兩個不同的選項?這是為了便於控制整體大小或頁數,而不必考量單封 SMS 郵件的最大大小 MAX_PAGE_SIZE。這一點在通道選項檔案中可能不重要,但在使用 MAXPAGESMAXLEN 定址屬性 (如將電子郵件導向通道所述) 時很重要。

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

MAX_PAGE_SIZE

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

MAX_PAGES_PER_MESSAGE

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

依預設,MAX_PAGES_PER_MESSAGE 會設定成 1MAX_MESSAGE_SIZE 除以 MAX_PAGE_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 內定義。

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

請參閱 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) SE_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 的值

結果

1 (預設)

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

0

始終使用 SMSC 預設字元集。此字元集內不可用的文字影像將以助憶符號表示 (例如,以「AE」表示 AE-ligature)。

SMS 閘道伺服器選項

GATEWAY_PROFILE

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

SMS 選項

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

DEFAULT_DESTINATION_NPI

(整數,0 - 255) 依預設,會為目標位址指定 NPI (數值規劃指標) 值為零。透過此選項,可以指定替代整數值,範圍為 0 至 255。以下表格 D-8 顯示典型的 NPI 值:

表格 D-8  數值規劃指標值

描述

0

未知

1

ISDN (E.163, E.164)

3

資料 (X.121)

4

電報 (F.69)

6

陸上行動電話 (E.212)

8

國內

9

Private

10

ERMES

14

IP 位址 (網際網路)

18

WAP 用戶端 ID

>= 19

未定義

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

DEFAULT_DESTINATION_TON

(整數,0 - 255) 依預設,會為目標位址指定 TON (數字類型) 指標值為零。透過此選項,可以指定替代整數值,範圍為 0 至 255。以下表格 D-9 顯示典型的 TON 值:

表格 D-9  典型 TON 值

描述

0

未知

1

國際

2

國內

3

網路特定

4

訂閱者號碼

5

文數字

6

縮寫式

>=7

未定義

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

DEFAULT_PRIORITY

(整數,0 - 255) SMS 郵件具有強制性優先順序欄位。以下表格 D-10 顯示 SMS 優先順序值的解譯:

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

GSM

TDMA

CDMA

0

Non-priority

Bulk

Normal

1

Priority

Normal

Interactive

2

Priority

Urgent

Urgent

3

Priority

Very urgent

Emergency

透過此選項,可以指定 SMS 郵件的預設優先順序。如未指定,則 PROFILE=GSMCDMA 的預設優先順序為 0,PROFILE=TDMA 的預設優先順序為 1

請注意,如果 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 選項進行控制的。依預設,DEFAULT_PRIVACY 使用值 -1。以下表格 D-12 顯示將 DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY 選項設定為各種不同的值所得出的設定結果。

表格 D-12  DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY 的值之結果

DEFAULT_PRIVACY

USE_HEADER_SENSITIVITY

結果

-1

0

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

n >= 0

0

始終將 SMS 私密性旗標的值設定為 n。RFC 822 Sensitivity: 標頭行則始終被忽略。

-1 (預設)

1 (預設)

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

n >= 0

1

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

以下表格 D-13 顯示 SMS 私密性值的解譯:

表格 D-13  SMS 私密性值的解譯

描述

0

無限制

1

有限制

2

機密

3

秘密

>= 4

未定義

以下表格 D-14 顯示用於將 RFC 822 Sensitivity: 標頭行的值轉譯為 SMS 私密性值的對映:

表格 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。請參閱 DEFAULT_DESTINATION_NPI 選項的描述,以取得典型 NPI 值的表格。

DEFAULT_SOURCE_TON

(整數,0 - 255) 依預設,將指定來源位址的 TON 指標值為零。透過此選項,可以指定替代整數值,範圍為 0 至 255。請參閱 DEFAULT_DESTINATION_TON 選項的描述,以取得典型 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 郵件會依排定次序 (REVERSE_ORDER=0) 或依反向排定次序 (REVERSE_ORDER=1) 提交至 SMSC。反向排定次序適用於接收終端機首先顯示最後收到的郵件之情形。在這種情況下,最後收到的郵件會是電子郵件的第一部分,而非最後一部分。依預設,使用 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 個字元) 永久性遞送失敗通知的格式化字串。此選項的預設值為字串:

無法將您的郵件遞送至 $a;不會再嘗試遞送。

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

DSN_RELAYED_FORMAT

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

您要傳送至 $a 的郵件已轉送至可能不提供最終遞送確認的郵件傳送系統

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

DSN_SUCCESS_FORMAT

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

您的郵件已遞送至 $a

若要禁止轉換遞送成功通知,請為此選項指定空白字串。請注意,若要使此選項生效,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 個位元組) 用於格式化 Subject: 標頭行的內容,以顯示在 SMS 郵件中的格式化範本。此選項的全域預設值為 US-ASCII 字串「($s)」。請參閱格式化範本,以取得進一步詳細資訊。

請參閱 SUBJECT_NONE 選項,以取得 Subject: 標頭行不存在或標頭行內容為空白字串時的處理描述。

SUBJECT_NONE

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

DEBUG

格式化範本

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 伺服器通訊。
  2. 十分簡單,只需新增額外的 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」的重寫規則,如果找不到,則會繼續尋找點 (「.」) 規則。如需有關重寫規則的更多資訊,請參閱「Sun ONE Messaging Server 管理員指南」

  3. 與同一 SMPP 伺服器通訊,但使用不同的通道選項。
  4. 若要與同一 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 伺服器無法到達) 而無法遞送時,電子郵件會保留在遞送佇列中,並會在稍後再重試。除非另有配置,否則,工作主控台不會在一小時內重試遞送。對於 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 (http://www.mobileway.com/) 是全球資料與 SMS 連線的領先供應者。透過 MobileWay 路由您的 SMS 通訊流,您可以觸及全世界大多數主要 SMS 網路上的 SMS 訂閱者。

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

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

帳號位址:a.b.c.d:p
帳號登入:system-id
帳號密碼: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 中繼器的 LISTEN_PORT 設定所用的同一 TCP 連接埠 (請參閱 SMPP 中繼器)。

DEFAULT_SOURCE_ADDRESS

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

GATEWAY_PROFILE

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

USE_HEADER_FROM

設定為 0

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

如在設定雙向 SMS 路由中所提及的,遠端 SMSC 需要配置為將 DEFAULT_SOURCE_ADDRESS 通道選項中定義的 SMS 位址,透過 LISTEN_PORT 選項指定的 TCP 連接埠號路由至閘道的 SMPP 伺服器。(如需瞭解如何指定 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 ONE SMPP 用戶端 (即 Sun ONE 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_TRANSMITTER
BIND_TRANSCEIVER
UNBIND

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

OUTBIND

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

SUBMIT_SM
DATA_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 ONE Messaging Server Deployment 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 編碼的統一碼文字檔案。此檔案可以是 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 的電子郵件至行動電話部分,您必須配置以下內容:

閘道設定檔

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

  1. 新增閘道設定檔至 SMS 閘道伺服器配置檔案。
  2. 若要新增選項群組,請使用以下格式:

    [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 通道選項的名稱相同。該名稱不區分大小寫。如需有效通道選項的清單,請參閱可用選項

  3. 設定閘道設定檔選項 (例如,SMSC_DEFAULT_CHARSET),以符合遠端 SMSC 的特徵。
  4. 設定其他閘道設定檔選項,以符合 SMS 通道的電子郵件特徵。
  5. 如需閘道設定檔選項的完整描述,請參閱閘道設定檔選項

  6. 設定 CHANNEL 選項。
  7. 設定其值為 MTA SMS 通道名稱。

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

SMPP 中繼器

若要配置 SMPP 中繼器,請完成以下步驟:

  1. 新增 SMPP 中繼器實例 (選項群組) 至 SMS 閘道伺服器的配置檔案。
  2. 若要新增選項群組,請使用以下格式:

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

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

  3. 設定 LISTEN_PORT 選項。
  4. SMS 通道的 SMPP_PORT 選項使用的值必須符合中繼器的 LISTEN_PORT 選項使用的值。請為 LISTEN_PORT 選擇 TCP 連接埠號,此連接埠號並未由任何其他 SMPP 中繼器或伺服器實例使用,也未由同一電腦上執行的任何其他伺服器使用。

  5. 設定 SERVER_HOST 選項。
  6. 中繼器的 SERVER_HOST 選項應給定遠端 SMSC 的 SMPP 伺服器的主機名稱。可以使用 IP 位址來代替主機名稱。

  7. 設定 SERVER_PORT 選項。
  8. 中繼器的 SERVER_PORT 選項應給定遠端 SMSC 的 SMPP 伺服器的 TCP 連接埠。

如需所有 SMPP 中繼器選項的完整描述,請參閱 SMPP 中繼器選項

SMPP 伺服器

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

  1. 新增 SMPP 伺服器實例 (選項群組) 至 SMS 閘道伺服器的配置檔案。
  2. 若要新增選項群組,請使用以下格式:

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

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

  3. 設定 LISTEN_PORT 選項。
  4. 選擇 TCP 連接埠號,此連接埠號並未由任何其他伺服器或中繼器實例使用。此外,此連接埠號並未由同一電腦上執行的任何其他伺服器使用。

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

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

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

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

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

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

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

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

  1. 新增閘道設定檔 (選項群組) 至 SMS 閘道伺服器的配置檔案。
  2. 若要新增選項群組,請使用以下格式:

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

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

  3. 設定 SELECT_RE 選項 (必須為每個閘道設定檔指定)。
  4. 此選項的值為 ASCII 常規表示式,用於比對 SMS 目標位址。如果 SMS 目標位址符合此常規表示式,則此 SMS 郵件會透過閘道傳送至使用此相符設定檔描述之特徵的電子郵件。

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

  5. 設定 CHANNEL 選項。
  6. 其值應為 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_DIRECTORY HISTORY_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,即選取警告郵件和錯誤郵件。

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

(字串,「NADDR_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

(字串,「NADDR_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

字串 rofile-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(測試)此為測試

可得出電子郵件:

To:dan@sesta.com
Subject:測試

此為測試

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

sue@sesta.com 此為另一個測試

會得到:

To:sue@sesta.com

此為另一個測試

請注意,SMS 郵件在使用上述常規表示式進行評估前,將轉譯成統一碼的 UTF-16 編碼。然後,轉譯文字將使用先前從 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表格 D-25 顯示優先順序旗標與電子郵件一同傳送時,從 SMS 至電子郵件的對映:

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

SMS 設定檔

SMS 優先順序旗標

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

GSM

0 (Non-priority)

1, 2, 3 (Priority)

無標頭行 (表示 Normal)

Urgent

TDMA

0 (Bulk)

1 (Normal)

2 (Urgent)

3 (Very Urgent)

Nonurgent

無標頭行 (表示 Normal)

Urgent

Urgent

CDMA

0 (Normal)

1 (Interactive)

2 (Urgent)

3 (Emergency)

無標頭行 (表示 Normal)

Urgent

Urgent

Urgent

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

USE_SMS_PRIVACY

(整數,0 或 1) 依預設,(使用 USE_SMS_PRIVACY=0),SMS 郵件中的私密性指標會被忽略,不隨電子郵件一同傳送。若要讓此資訊與電子郵件一同傳送,請指定 USE_SMS_PRIVACY=1表格 D-26 顯示私密性指標與電子郵件一同傳送時,從 SMS 至電子郵件的對映:

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

SMS 私密性旗標

電子 Sensitivity: 標頭行

0 (未限制)

無標頭行

1 (Restricted)

Personal

2 (Confidential)

Private

3 (Secret)

Company-confidential

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

雙向 SMS 的配置範例

有關運作方式的假定

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

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

進一步假定和指定

SMS 通道配置

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

(空行)
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 的外觀應如下所示:

測試此配置

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

額外 sms_option 檔案設定

sms_option 檔案的額外設定為:

! 因此,我們不將文字加入 SMS 郵件內文中
FROM_FORMAT=
SUBJECT_FORMAT=
CONTENT_PREFIX=

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

user@domain.com (範例主旨) 範例文字

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

From:user@domain.com Subject:範例主旨 Msg: 範例文字

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

user@domain.com (範例主旨) 範例文字

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

執行回返測試

傳送要傳送至 000@sms.domain.com 的電子郵件,例如

結果是這封電子郵件應路由回電子郵件收件者 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]。

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

最大記錄數為 43,000,000,000 (2**32-1)。如果少於 16,800,000 個記錄 (2**24),雜湊表會消耗大約 16 Mb;如果少於 67,100,000 (2**26) 個記錄,雜湊表會消耗大約 64 Mb;如果多於 67,100,000 個記錄,雜湊表會消耗大約 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 用戶端,另一個用於遠端 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 與訊息封 ID 各為 40 個位元組,而歷程資料要保留 7 天,則:

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



上一個      目錄      索引      下一個     


Copyright 2003 Sun Microsystems, Inc.。版權所有。