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

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)。