Sun Java System Messaging Server 6 2005Q4 管理ガイド

付録  D ショートメッセージサービス (SMS)

この付録では、SunTM ONE Messaging Server 上にショートメッセージサービス (SMS) を実装する方法について説明します。この付録には、次の項目があります。

概要

Sun Java System では、ショートメッセージサービス (SMS) によって電子メールからモバイル、モバイルから電子メールへのメッセージングが実装されます。SMS は、片方向 (電子メールからモバイルのみ)、または双方向 (電子メールからモバイル、モバイルから電子メールの両方) のどちらかに設定できます。片方向のみのサービスを有効にするには、SMS チャネルを追加および設定する必要があります。双方向のサービスを有効にするには、SMS チャネルを追加および設定し、さらに SMS Gateway Server を設定する必要があります。

片方向と双方向のどちらの場合でも、生成された SMS メッセージは、Short Message Peer to Peer (SMPP) プロトコルを介してショートメッセージサービスセンター (SMSC) に送信されます。具体的には、SMSC では TCP/IP をサポートする V3.4 以上の SMPP サーバーが提供されている必要があります。

図 D–1 に、片方向 SMS の場合と双方向 SMS の場合のメッセージの論理フローを示します。

図 D–1 片方向 SMS と双方向 SMS の論理フロー

図は、片方向 SMS と双方向 SMS の論理フローを示しています。

片方向 SMS

片方向サービスを有効にするために、Messaging Server はリモート SMSC と通信する SMPP クライアント (MTA SMS チャネル) を使用します。SMS チャネルは、「電子メールから SMS への変換プロセス」で説明されているように、キューに入れられた電子メールメッセージを SMS メッセージに変換します。この変換には、マルチパート MIME メッセージや、文字セットの変換問題の処理が含まれます。

このような処理を実行する SMS チャネルは、SMPP の外部ショートメッセージエンティティー (ESME) として機能します。

双方向 SMS

双方向 SMS では、メールサーバーは電子メールをリモート機器に送信するだけでなく、リモート機器から返信を受信したり、リモート機器の電子メール作成に対応したりできます。

双方向の SMS を有効にするには、前項目で説明されている MTA SMS チャネル (SMPP クライアント) に加えて、SMS Gateway Server が必要です。SMS Gateway Server は、Sun Java System の一般的なインストールプロセスの一環でインストールされますが、インストール後に設定する必要があります。SMS Gateway Server では、以下の 2 つの機能を実行します。


注 –

Sun Java System は、Windows プラットフォーム上での双方向 SMS をサポートしていません。


要件

このマニュアルでは、LogicaCMG の SMPP 仕様および使用している SMSC の SMPP マニュアルを読み終えていることを前提にしています。

SMS を実装するには、次の要件を満たす必要があります。

SMS Gateway Server のストレージ計画については、「SMS Gateway Server のストレージ要件」を参照してください。

SMS チャネルの動作方式

SMS チャネルは、キューに入れられた電子メールメッセージを SMS メッセージに変換して、配信を担当する SMSC に渡すマルチスレッドチャネルです。

この節には、チャネル動作についての次の項目があります。

電子メールをチャネルに送信する

「SMS チャネルの設定」に従って SMS チャネルを設定すると、チャネルに 1 つまたは複数のホスト名が関連付けられます。説明のため、ここでは 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 メッセージまたはこの受取人宛のメッセージに含める最大合計バイト数 (8 ビットバイト)。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 チャネルのキューに入れられた電子メールメッセージを 1 つまたは複数の SMS メッセージに変換するプロセスについて説明します。以下で説明されているように、生成される SMS メッセージの最大数、SMS メッセージの合計の長さの最大値、および 1 つの SMS メッセージの最大サイズはオプションで制御します。電子メールメッセージのテキスト部分 (MIME のテキストコンテントタイプ) のみが使用され、変換される部分の最大数も制御できます。

電子メールメッセージのヘッダー行とテキスト部分で使用される文字セットは、すべて Unicode に変換されてから、適切な SMS 文字セットに変換されます。

SMS_TEXT マッピングテーブル (「サイト定義のテキスト変換」を参照) がない場合は、SMS チャネルのキューに入れられた電子メールメッセージに対して図 D–2 で示す処理が実行されます。

図 D–2 SMS チャネルの電子メール処理

SMS チャネルの電子メール処理を示すフローチャート

図 D–3 SMS チャネルの電子メール処理 (続き)

SMS チャネルの電子メール処理を示すフローチャート (続き)

次の手順は、図 D–2 で示されている番号と対応します。

  1. 空の出力バッファーが開始されます。バッファーに使用される文字セットは Unicode です。

  2. 電子メールメッセージの差出人のアドレスは、次の 5 つのソースから 1 つ取り出されます。ソースは優先度の高いものから低いものの順で表示されています。


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

    差出人のアドレスが空の文字列である場合は、差出人のアドレスの代わりに 「FROM_NONE」チャネルオプションの値がバッファーに追加されます。

    差出人のアドレスが空の文字列ではない場合は、「FROM_FORMAT」チャネルオプションを処理した結果および LINE_STOP チャネルオプションの値が出力バッファーに追加されます。

    Resent-from: および Resent-sender: ヘッダー行は、「USE_HEADER_RESENT」オプションの値が 1 である場合にのみ考慮されることに注意してください。それ以外の場合は、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 への変換プロセス」で変換された文字列は、1 つまたは複数の SMS メッセージに分割されます。各 SMS メッセージは、MAX_PAGE_SIZE のバイト数以内の長さになります。最大で 「MAX_PAGES_PER_MESSAGE」の SMS メッセージが生成されます。


    注 –

    電子メールメッセージは複数の受取人を持つ場合もあるので、手順 6 〜 手順 8 は受取人のアドレスごとに実行される必要があります。このとき、4 ページの「電子メールをチャネルに送信する」で説明されている MAXLENMAXPAGES または PAGELEN 属性が使用されます。


電子メールメッセージ処理の例

たとえば、チャネルのデフォルトの設定で次のような電子メールメッセージを処理するとします。


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 メッセージの送信プロセス

電子メールメッセージが 1 つまたは複数の 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 が確立されます。SMS メッセージの送信が終了する前に SMPP サーバーが UNBIND を返してきた場合も同様に動作します。

その後、SMS メッセージは SMPP SUBMIT_SM PDU を使用して送信されます。永久的なエラーが返された場合 (たとえば、ESME_RINVDSTADR)、電子メールメッセージは配信されずに戻ってきます。一時的なエラーが返された場合は、電子メールメッセージはあとで配信が試行されるように再びキューに入れられます。正確には、永久的なエラーとは、エラーが原因で発生した状態がいつまでも続く可能性があるもので、配信試行の繰り返しに前向きな効果がないものです。たとえば、無効な SMS 宛先アドレスなどです。これとは異なり、一時的なエラーとは、エラーが原因で発生した状態が近い将来に存在しなくなる可能性のあるものです。たとえば、サーバーダウンやサーバーが混み合っている状態です。

USE_HEADER_FROM オプションの値が 1 である場合、送信される SMS メッセージのソースアドレスが設定されます。使用される値は、元の電子メールメッセージから生成され、返信の送信先 (電子メール) アドレスとしてもっとも可能性の高いものに選ばれます。したがって、ソースアドレスは次の 7 つのソースから作成されます。ソースは優先度の高いものから低いものの順で表示されています。


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

Resent-reply-to: および Reply-to: ヘッダー行は、「USE_HEADER_REPLY_TO」オプションの値が 1 である場合にのみ考慮されることに注意してください。また、Resent-reply-to:Resent-from:、および Resent-sender: ヘッダー行は、「USE_HEADER_RESENT」オプションの値が 1 である場合にのみ考慮されることにも注意してください。つまり、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 の場合、このフィールドの値は英数字の TON を示す0x05 になります。これ以外の場合は、デフォルト値の国際 TON を示す 0x01 になります。

source_addr_npi

「DEFAULT_SOURCE_NPI」チャネルオプション。デフォルト値は 0x00。

source_addr

「DEFAULT_SOURCE_ADDRESS」チャネルオプション。USE_HEADER_FROM=0 以外の場合は、電子メールメッセージの差出人を示す英数字の文字列。

dest_addr_ton

TON アドレス指定属性または 「DEFAULT_DESTINATION_TON」チャネルオプション。デフォルト値は国際 TON を示す 0x01 です。

dest_addr_npi

NPI アドレス指定属性または 「DEFAULT_SOURCE_NPI」チャネルオプション。デフォルト値は不明のNPI を示す 0x00 です。

dest_addr

電子メールエンベロープ To: アドレスのローカル部分を基に生成された宛先 SMS アドレス。「電子メールをチャネルに送信する」を参照。

esm_class

片方向 SMS の場合は 0x03 に設定し、ストアアンドフォワードモード、デフォルトの SMSC メッセージタイプ、および返信パスを設定しないことを示します。双方向 MSM メッセージの場合は 0x83 に設定します。 

protocol_id

0x00 は CDMA および TDMA には使用されません。GSM の場合に 0x00 を指定すると、インターネットプロトコルを使用せず、SME 対 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

0x00 は SMSC のデフォルトの文字セットを示します。0x08 は UCS2 文字セットを示します。 

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 を参照。

チャネルは、送信する SMS メッセージがなくなるまで (メッセージキューが空になるまで)、または 「MAX_PAGES_PER_BIND」を超過するまで、SMPP サーバーにバインドしたままです。後者の場合で送信する SMS メッセージがまだ残っている場合は、新しい接続が確立され、バインドが実行されます。

SMS チャネルはマルチスレッドです。チャネルの処理スレッドは、それぞれが SMPP サーバーとの専用の TCP 接続を保持します。たとえば、3 つの処理スレッドがあり、それぞれが送信対象の SMS メッセージを処理する場合、チャネルは SMPP サーバーとの 3 つの開いた TCP 接続を持ちます。各接続はトランスミッタとして SMPP サーバーにバインドします。また、どの処理スレッドにも、処理中の SMS 送信は 1 度に 1 つしかありません。つまり、スレッドは SMS メッセージを送信すると、送信応答 (SUBMIT_SM_RESP PDU) があるまで待機し、それまで別の SMS メッセージを送信しません。

サイト定義のアドレス妥当性チェックと変換

サイトで妥当性チェックを実行したり、受取人の電子メールアドレスでエンコードされた SMS 宛先アドレスを変換する必要がある場合もあります (「電子メールをチャネルに送信する」を参照)。たとえば、サイトで実行する処理には以下のようなものがあります。

上記の最初の2 つのタスクは、「DESTINATION_ADDRESS_NUMERIC」および 「DESTINATION_ADDRESS_PREFIX」チャネルオプションを使用して実行できます。一般的に、上記の 3 つのタスクおよびその他のタスクは、マッピングテーブルを使用して実装できます。書き換えルールからマッピングテーブルを呼び出す方法、または 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 チャネルに書き換えられます。マッピングプロセスで、そのローカル部分が受け入れ不可と判断された場合は、次の書き換えルールが適用されます。次の書き換えルールは「$?」書き換えルールであるので、アドレスは拒否され、「Invalid SMS address」というエラーテキストが表示されます。

以下に 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 とします。

このマッピングテーブルには、2 種類のエントリが入ります。ただし、これらのエントリの形式についての説明を始める前に、エントリの作成および使用方法を理解するため、マッピングファイルの使用方法を理解しておくことが不可欠です。これら 2 種類のエントリの説明の後、マッピングテーブルの例を示します。

2 種類のエントリを以下に示します。

メッセージヘッダーエントリ

メッセージヘッダーエントリは、SMS メッセージに含めるヘッダー行を指定したり、ヘッダー行の略記方法または略記以外の場合に行われる変換方法を指定したりします。メッセージヘッダーエントリの 1 つによって、ヘッダー行がゼロでない長さの文字列に正常にマッピングされた場合にのみ、ヘッダー行は生成される SMS メッセージに含められます。各エントリには次のような形式があります。

H|pattern replacement-text

メッセージのヘッダー行がこのパターンに一致すると、ヘッダー行は置換テキスト「replacement-text」で置き換えられます。このときマッピングファイルのパターン一致機能および文字列置換機能が使用されます。その後、メタキャラクタ「$Y」が置換テキストに指定されていれば、ヘッダー行のマッピングによる最終的な結果は SMS メッセージに含められます。ヘッダー行がどのパターン文字列とも一致しない場合、ヘッダー行が長さゼロの文字列にマッピングされた場合、またはメタキャラクタ「$Y」が置換テキストに指定されていない場合は、ヘッダー行は SMS メッセージに含められません。以下に 2 つのエントリを示します。


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 マッピングテーブルの例

例 D–1 に、SMS_TEXT マッピングテーブルの例を示します。各行の終わりにある括弧の中の数字は、このテーブルのあとに示す 「説明テキスト」というタイトルのセクションでの項目番号と対応しています。


例 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)、または 2 つのスペースを 1 つに削減する (7) という単純なマッピングは、全体として採用された場合に、前後に付いているすべてのスペースを削除し、連続する複数のスペースを単一のスペースに削減するフィルタとなります。このようなフィルタリングによって、各 SMS メッセージのサイズを小さくできます。

  1. これらの 2 つのエントリによって、From: および Subject: ヘッダー行が SMS メッセージに含められます。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. これらの 4 つのエントリは、メッセージヘッダーと本文の行から前後に付いているスペースを削除します。

  6. これら 2 つのエントリは、メッセージのヘッダーと本文の行の 2 つのスペースを 1 つのスペースに削減します。

  7. これらの 4 つのエントリは、二重になっているダッシュ、ピリオド、感嘆符、および疑問符を一致する文字の単一の不定発生に削減します。これによっても、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 test-mapping ユーティリティーを使用してマッピングテーブルをテストすることができます。次に例を示します。


    # 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 の設定に追加するには、次の 2 つの手順を実行する必要があります。

  1. 「チャネル定義と書き換えルールを追加する」

  2. 「SMS チャネルオプションファイルを作成する」

すべての状況で設定が必須とされるチャネルオプションはありませんが、次に示すオプションのうち、1 つまたは複数は設定する必要があります。「ESME_PASSWORD」「ESME_SYSTEM_ID」「MAX_PAGE_SIZE」「DEFAULT_SOURCE_TON」、および 「DEFAULT_DESTINATION_TON」。また、説明されているように、imta.cnf ファイルまたはチャネルオプションファイルのどちらかのチャネル定義を介して、SMPP サーバーのホスト名または IP アドレスと TCP ポートを設定する必要があります。

複数の SMS チャネルを設定し、それぞれに異なる特徴を持たせることもできます。複数の SMS チャネルの使用の詳細については、「SMS チャネルをさらに追加する」を参照してください。

次のことに注意してください。imta.cnf ファイルを変更した場合はコンパイルしなおす必要があります。チャネルオプションファイルのみを変更した場合はコンパイルしなおす必要はありません。

また、チャネルの変更が反映されるまでの時間は、変更内容によって異なることがあります。チャネルオプションの変更の多くは、変更が行われてから起動したすべてのチャネルに反映されます。ジョブコントローラが頻繁に新しいチャネルを起動しているので、この場合はほとんど瞬時に反映されたように見えます。一部の変更は、コンパイルしなおし、SMTP サーバーを再起動するまで反映されません。これらのオプションは、チャネル自体が作動したときではなく、メッセージがチャネルのキューに入れられるときに処理されます。

チャネル定義と書き換えルールを追加する

チャネル定義と書き換えルールを追加するには、次の手順を実行します。

Procedureチャネル定義と書き換えルールを追加するには

手順
  1. SMS チャネルを MTA の設定に追加する前に、そのチャネルの名前を決める必要があります。チャネルの名前は、sms または sms_x のどちらかにします。x は大文字と小文字が区別されない文字列であり、長さは 1 〜 36 バイトです (例: sms_mway)。

  2. チャネル定義を追加するには、installation-directory/config/ ディレクトリにある imta.cnf ファイルを編集します。ファイルの最後に空白行を追加し、次の 2 行を追加します。

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

    channel-name はこのチャネル用に選んだ名前、p は SMPP サーバーが待機する TCP ポート、t は 1 つの配信プロセスで SMPP サーバーに同時に接続できる最大数、および smpp-host-name は SMPP サーバーを実行しているシステムのホスト名です。

    たとえば、チャネル定義は次のように指定します。


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

    threaddepth の計算方法については、「同時接続の数を制御する」を参照してください。

    backoff および notices チャネルキーワードについては、「配信再試行の間隔を調整する」を参照してください。

    ホスト名の代わりに IP アドレスを smpp-host-name に指定する場合は、ドメインリテラルを指定します。たとえば、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_SERVER」および 「SMPP_PORT」チャネルオプションは、チャネルの正式なホスト名および port チャネルキーワードの設定よりも優先されることに注意してください。SMPP_PORT オプションを使用した場合、port キーワードを併せて使用する必要はありません。これら 2 つのオプションを使用する利点は、設定をコンパイルしなおさずに実行でき、その後変更できることです。SMPP_SERVER オプションのその他の使用法については、「SMS チャネルをさらに追加する」を参照してください。

同時接続の数を制御する

threaddepth チャネルキーワードは、1 つの配信プロセス内の各配信スレッドに割り当てられるメッセージの数を制御します。許可される同時接続の総数を計算するには、SMPP_MAX_CONNECTIONS および job_limit の 2 つのオプションの値を乗算します (SMPP_MAX_CONNECTIONS * job_limit)。「SMPP_MAX_CONNECTIONS」オプションは、1 つの配信プロセスでの配信スレッドの最大数を制御します。チャネルが実行されているジョブコントローラ処理プールの job_limit オプションは、同時に実行される配信プロセスの最大数を制御します。

同時接続の総数を制限するには、制限内容に応じてこれらのオプションのどちらかまたは両方を調節する必要があります。たとえば、リモート SMPP サーバーが 1 つの接続しか許可しない場合、SMPP_MAX_CONNECTIONS および job_limit の両方を 1 に設定する必要があります。値を調整するときは、job_limit1 よりも大きくすることをお勧めします。

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 チャネルには多くのオプションが含まれており、次のように大きく 6 つのカテゴリに分類されます。

これらのオプションについては、次の表で要約を示し、その後に続く節で詳細を説明します。

表 D–5 SMS チャネルオプション

 

 

 

電子メールから SMS への変換オプション 

オプション (ページ番号) 

説明 

デフォルト 

「GATEWAY_NOTIFICATIONS」

電子メール通知メッセージを SMS メッセージに変換するかどうかを指定します。 

0

「MAX_MESSAGE_PARTS」

1 つの電子メールメッセージから抽出するメッセージの最大部分数です 

2

「MAX_MESSAGE_SIZE」

1 つの電子メールメッセージから抽出する最大バイト数です 

960

「MAX_PAGE_SIZE」

単一の SMS メッセージに含める最大バイト数です 

160

「MAX_PAGES_PER_MESSAGE」

1 つの電子メールメッセージを分割して生成される最大 SMS メッセージ数です 

6

「ROUTE_TO」

指定した IP ホスト名に SMS メッセージをルーティングします。 

 

「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 Server オプション 

「GATEWAY_PROFILE」

SMS Gateway Server の設定ファイル (sms_gateway.cnf) で設定されたゲートウェイプロファイル名と照合します

なし 

     

SMS フィールドオプション 

「DEFAULT_DESTINATION_NPI」

SMS 宛先アドレスのデフォルトの NPI です 

0x00

「DEFAULT_DESTINATION_TON」

SMS 宛先アドレスのデフォルトの TON です 

0x01

「DEFAULT_PRIORITY」

SMS メッセージのデフォルトの優先順位設定です 

0=GSMCDMA

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」

sar_ フィールドを使用して、複数の SMS メッセージを配列します

0

     

SMPP プロトコルオプション 

「ESME_ADDRESS_NPI」

SMPP サーバーにバインドする際に指定する ESME NPI です 

0x00

「ESME_ADDRESS_TON」

SMPP サーバーにバインドする際に指定する ESME TON です 

0x00

「ESME_IP_ADDRESS」

Sun Java System Messaging Server を実行しているホストの IP アドレスです 

なし 

「ESME_PASSWORD」

SMPP サーバーにバインドする際に提示するパスワードです 

なし 

「ESME_SYSTEM_ID」

バインドする際に SMSC に提示するシステム ID です 

なし 

「ESME_SYSTEM_TYPE」

バインドする際に SMSC に提示するシステムタイプです 

なし 

「MAX_PAGES_PER_BIND」

SMPP サーバーとの 1 回のセッションで送信する最大 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 Gateway Server のホスト名または 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-default) 言語グループです。この中からテキストフィールドを選択します 

i-default

「LINE_STOP」

電子メールメッセージから抽出された各行の終わりに置くテキストです 

スペース文字 

「NO_MESSAGE」

メッセージに内容がないことを示すテキストです 

]no message]

「SUBJECT_FORMAT」

電子メールメッセージの件名を示す場合に表示されるテキストです 

$s

「SUBJECT_NONE」

電子メールメッセージに件名がない場合に表示されるテキストです 

なし 

     

その他のオプション 

「DEBUG」

詳細なデバッグ出力を有効にします 

-1

電子メールから SMS への変換オプション

次のオプションは、電子メールメッセージから SMS メッセージへの変換を制御します。オプションの値の範囲は括弧内に示されています。一般に、1 通の電子メールメッセージは、1 つ以上の 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 メッセージに変換されるメッセージコンテンツはありません。これには、SMS メッセージを生成するために電子メールメッセージのヘッダー行 (たとえば、Subject:) のみを使用した効果があります。

テキストと添付ファイルの両方を含む電子メールメッセージは、通常、2 つの部分で構成されています。プレーンテキストのメッセージ部分のみが変換されることに注意してください。その他の MIME コンテンツタイプはすべて消去されます。

MAX_MESSAGE_SIZE

(整数、>= 10) このオプションを使用して、1 つの電子メールメッセージから生成された SMS メッセージに含める合計バイト数の上限を設定できます。特に、MAX_MESSAGE_SIZE バイトの最大値は、1 つ以上の生成された SMS メッセージに使用されます。それ以上のバイトは消去されます。

デフォルトでは、960 バイトが上限となります。これは MAX_MESSAGE_SIZE=960 に相当します。任意のバイト数を使用するには、値に 0 を指定します。

使用されるバイト数の計算は、電子メールメッセージを Unicode から SMSC のデフォルト文字セットまたは UCS2 に変換してから行います。つまり、UCS2 を例にすると、UCS2 の各文字は、最低でも 2 バイト長であるため、MAX_MESSAGE_SIZE が 960 バイトだと、最高でも 480 文字しか確保できません。

MAX_MESSAGE_SIZE および 「MAX_PAGES_PER_MESSAGE」の各オプションは、どちらも結果の SMS メッセージの全体サイズを制限するという同じ目的で機能します。実際、「MAX_PAGE_SIZE」=960 と 「MAX_PAGE_SIZE」=160 は、MAX_PAGES_PER_MESSAGE=6 を意味します。2 つの異なるオプションが存在する理由は、単一の 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) 1 つの電子メールメッセージに生成される最大 SMS メッセージ数は、このオプションで制御します。事実上、このオプションによって電子メールメッセージには切り捨てが実行されます。MAX_PAGES_PER_MESSAGE の SMS メッセージ数に収まる電子メールメッセージの部分のみが SMS メッセージに変換されます。詳細は、「MAX_PAGE_SIZE」オプションの説明を参照してください。

デフォルトでは、MAX_PAGES_PER_MESSAGE1、または 「MAX_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 で定義されています。

電子メールの処理では、まずヘッダー行とテキストメッセージ部分がデコードされてから Unicode に変換されます。次に、データは SMSC のデフォルトの文字セットまたは UCS2 に変換されます。どちらに変換されるかは、「USE_UCS2」オプションの値および SMS メッセージにデフォルトの文字セットにないグリフが 1 つでも含まれているかどうかによって異なります。UCS2 文字セットは、Unicode の 16 ビットのエンコード方式であり、UTF-16 と呼ばれることもあります。

USE_HEADER_FROM

(整数、0 〜 2) このオプションは、From: アドレスを SMSC に渡すことを許可する場合に設定します。値は、From: アドレスを取り出す場所とアドレスの形式を示します。表 D–6 に、許容可能な値とその意味を示します。

表 D–6 USE_HEADER_FROM の値

値 

説明 

0

SMS ソースアドレスは From: アドレスから設定されません。見つかった属性と値のペアを使用してください

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 を指定します。

SMS 優先順位フラグの処理の詳細については、DEFAULT_PRIORITY オプションの説明を参照してください。

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 と指定します。

SMS プライバシフラグの処理の詳細については、「DEFAULT_PRIVACY」オプションの説明を参照してください。

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 文字セットが使用されます。 

常に SMSC のデフォルトの文字セットが使用されます。その文字セットで使用不可なグリフはニーモニックで表現されます (例: AE の合字を「AE」で表現)。 

SMS Gateway Server オプション

GATEWAY_PROFILE

SMS Gateway Server の設定ファイル sms_gateway.cnf のゲートウェイプロファイルの名前です。

SMS オプション

次のオプションを使用して、生成された SMS メッセージの SMS フィールドに関する指定が行えます。

DEFAULT_DESTINATION_NPI

(整数、0 〜 255) デフォルトでは、宛先アドレスには 0 の NPI (番号計画識別子) 値が割り当てられます。このオプションを使用すると、0 から 255 までの範囲の代替整数値を割り当てることができます。表 D–8 に、これらを含む一般的な NPI 値を示します。

表 D–8 番号計画識別子の値

値 

説明 

不明 

ISDN (E.163、E.164) 

データ (X.121) 

テレックス (F.69) 

地上モバイル (E.212) 

国内 

プライベート 

10 

ERMES 

14 

IP アドレス (インターネット) 

18 

WAP クライアント ID 

>= 19 

未定義 

このオプションの値は、次の 3 つのいずれかの方法で指定します。

DEFAULT_DESTINATION_TON

(整数、0 〜 255) デフォルトでは、宛先アドレスには 0 の TON (番号種別) 値が割り当てられています。このオプションを使用すると、0 から 255 までの範囲の代替整数値を割り当てることができます。表 D–9 に、これらを含む一般的な TON 値を示します。

表 D–9 一般的な TON 値

値 

説明 

不明 

国際 

国内 

ネットワーク固有 

加入者番号 

英数字 

略記 

>=7 

未定義 

このオプションの値は、次の 3 つのいずれかの方法で指定します。

DEFAULT_PRIORITY

(整数、0 〜 255) SMS メッセージには必須の優先順位フィールドがあります。表 D–10 に、SMS 優先順位値の解釈を示します。

表 D–10 各 SMS プロファイルタイプごとに解釈される SMS 優先順位値

値 

GSM 

TDMA 

CDMA 

優先でない 

バルク 

標準 

優先 

標準 

インタラクティブ 

優先 

至急 

至急 

優先 

大至急 

緊急 

このオプションを使用すると、SMS メッセージに割り当てるデフォルトの優先度を指定できます。指定しない場合は、デフォルトの優先度 0 が PROFILE=GSM および CDMA に使用され、優先度 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 メッセージの優先順位フラグの設定に使用されます。このヘッダー行が存在しない場合、SMS 優先順位フラグは DEFAULT_PRIORITY オプションを使用して設定されます。

RFC 822 Priority: ヘッダー行の値を SMS 優先順位フラグに変換するために使用されるマッピングを次の表に示します。

表 D–11 Priority: ヘッダーから SMS 優先順位フラグに変換するためのマッピング

RFC 822 

SMS 優先順位フラグ 

   

Priority: の値 

GSM 

TDMA 

CDMA 

Third 

優先でない (0) 

バルク (0) 

標準 (0) 

Second 

優先でない (0) 

バルク (0) 

標準 (0) 

Non-urgent 

優先でない (0) 

バルク (0) 

標準 (0) 

Normal 

優先でない (0) 

標準 (1) 

標準 (0) 

Urgent 

優先 (1) 

至急 (2) 

至急 (2) 

DEFAULT_PRIVACY

(整数、-1、0 〜 255) DEFAULT_PRIVACY オプションと 「USE_HEADER_SENSITIVITY」オプションでは、SMS メッセージにプライバシフラグを設定するかどうか、またどの値を使用するかを制御します。デフォルトでは、値 -1 が DEFAULT_PRIVACY に使用されます。表 D–12 に、DEFAULT_PRIVACY および 「USE_HEADER_SENSITIVITY」の各オプションにさまざまな値を設定した結果を示します。

表 D–12 DEFAULT_PRIVACYUSE_HEADER_SENSITIVITY の値の結果

DEFAULT_PRIVACY 

USE_HEADER_SENSITIVITY 

結果 

-1 

SMS プライバシフラグは SMS メッセージに設定されません。 

n >= 0 

SMS プライバシフラグは常に値 n に設定されます。RFC 822 Sensitivity: ヘッダー行は常に無視されます。

-1 (デフォルト) 

1 (デフォルト) 

SMS メッセージのプライバシフラグは、元の電子メールメッセージに RFC 822 Sensitivity: ヘッダー行があるときのみ設定されます。その場合、SMS プライバシフラグは Sensitivity: ヘッダー行の値と対応するように設定されます。これがデフォルトです。

n >= 0 

SMS メッセージのプライバシフラグは、元の電子メールメッセージの RFC 822 Sensitivity: ヘッダー行と対応するように設定されます。電子メールメッセージに Sensitivity: ヘッダー行がない場合は、SMS プライバシフラグの値は n に設定されます。

表 D–13 に、SMS プライバシ値の解釈を示します。

表 D–13 SMS プライバシ値の解釈

値 

説明 

制限なし 

制限あり 

親展 

秘密 

>= 4 

未定義 

表 D–14 に、RFC 822 Sensitivity: ヘッダー行の値を SMS プライバシ値に変換するために使用されるマッピングを示します。

表 D–14 Sensitivity: ヘッダーから SMS プライバシ値へのマッピング変換

RFC 822 Sensitivity: の値 

SMS プライバシ値 

Personal 

1 (制限あり) 

Private 

2 (親展) 

Company confidential 

3 (秘密) 

DEFAULT_SERVICE_TYPE

(文字列、0 〜 5 バイト) チャネルによって生成された SMS メッセージに関連付けるサービスタイプ。デフォルトでは、指定されているサービスタイプはありません (つまり、長さ 0 の文字列)。一般的なサービスタイプには次のものがあります。CMT (携帯電話メッセージング)、CPT (携帯電話ページング)、VMN (ボイスメール通知)、VMA (ボイスメール呼び出し)、WAP (無線アプリケーションプロトコル)、および USSD (非構造化補足データサービス)。

DEFAULT_SOURCE_ADDRESS

(文字列、0 〜 20 バイト) 電子メールメッセージから生成された SMS メッセージに使用されるソースアドレス。USE_HEADER_FROM=1 の場合、このオプションで指定した値よりも電子メールメッセージの差出人のアドレスが優先されることに注意してください。デフォルトでは、値は無効になっています。つまり、値として 0 が設定されています。

DEFAULT_SOURCE_NPI

(整数、0 〜 255) デフォルトでは、ソースアドレスには 0 の NPI 値が割り当てられています。このオプションを使用すると、0 から 255 までの範囲の代替整数値を割り当てることができます。一般的な NPI 値の表については、「DEFAULT_DESTINATION_NPI」オプションの説明を参照してください。

DEFAULT_SOURCE_TON

(整数、0 〜 255) デフォルトでは、ソースアドレスには 0 の 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 プロファイルを指定します。指定できる値は、GSMTDMA、および CDMA です。指定されていない場合は、GSM と仮定されます。このオプションは、「DEFAULT_PRIORITY」「DEFAULT_PRIVACY」などのほかのチャネルオプション用のデフォルトを選択するためにのみ使用されます。

USE_SAR

(0 または 1) サイズの大きい電子メールメッセージは、複数の SMS メッセージに分割される場合があります。このとき、SMS sar_ フィールドを使用すると、個別の SMS メッセージに順番情報を付加することができます。これにより、「セグメント化された」SMS メッセージが生成され、受信端末で 1 つの SMS メッセージに再構成できます。USE_SAR=1 を指定すると、可能な場合にこの順番情報が付加されます。デフォルトでは順番情報を付加しません。これは USE_SAR=0 に相当します。

USE_SAR=1 が設定されている場合、「REVERSE_ORDER」オプションは無視されます。

SMPP オプション

以下のオプションを使用して、SMPP プロトコルパラメータに関する指定が行えます。文字列 ESME_ で始まる名前のオプションは、MTA が External Short Message Entity (ESME) として動作するときに MTA を特定するために使用します。つまりそれは、SMS メッセージをサーバーに関連付けされた SMSC に送信するために、MTA が SMPP サーバーにバインドされているときです。

ESME_ADDRESS_NPI

(整数、0 〜 255) デフォルトでは、不明な NPI を示す 0 の ESME NPI 値がバインド動作によって指定されます。このオプションを使用すると、0 から 255 までの範囲の代替整数値を割り当てることができます。一般的な NPI 値の表については、「DEFAULT_DESTINATION_NPI」オプションの説明を参照してください。

ESME_ADDRESS_TON

(整数、0 〜 255) デフォルトでは、バインド動作によって 0 の ESME TON 値が指定されます。このオプションを使用すると、0 〜 255 の範囲で別の整数値を割り当てることができます。一般的な TON 値の表については、「DEFAULT_DESTINATION_TON」オプションの説明を参照してください。

ESME_IP_ADDRESS

(文字列、0 〜 15 バイト) SMPP サーバーにバインドするとき、BIND PDU は、クライアントの (つまり、ESME の) アドレス範囲が IP アドレスであることを示します。これは、TON に 0x00、NPI に 0x0d を指定して行います。アドレス範囲フィールドの値は、SMS チャネルを実行するホストの IP アドレスに設定されます。IP アドレスは「127.0.0.1」のように、ドット付きの 10 進形式で指定します。

ESME_PASSWORD

(文字列、0 〜 8 バイト) SMPP サーバーにバインドするとき、パスワードを要求される場合があります。その場合は、このオプションでそのパスワードを指定します。デフォルトでは、長さ 0 のパスワード文字列が指定されています。

ESME_SYSTEM_ID

(文字列、0 〜 15 バイト) SMPP サーバーにバインドするとき、MTA のシステム ID を提示する場合があります。デフォルトでは、システム ID は指定されていません。つまり、長さ 0 の文字列が使用されています。システム ID を指定するには、このオプションを使用します。

ESME_SYSTEM_TYPE

(文字列、0 〜 12 バイト) SMPP サーバーにバインドするとき、MTA のシステムタイプを提示する場合があります。デフォルトでは、指定されているシステムタイプはありません。つまり、長さ 0 の文字列が使用されます。

MAX_PAGES_PER_BIND

(整数 >= 0) SMPP サーバーのなかには、1 回のバインドセッション中に送信される最大 SMS メッセージ数を制限するものもあります。このため、このオプションではシングルセッション中に送信される SMS メッセージの最大数について、規定することができます。この制限に達すると、チャネルはアンバインドして TCP/IP 接続を終了してから、再接続し、再バインドします。

MAX_PAGES_PER_BIND のデフォルトは 1024 です。チャネルでは、ESME_RTHROTTLED エラーも検出され、1 回のチャネルの実行中に必要に応じて 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) SMPP サーバーが待機する TCP ポートは、このオプションまたは port チャネルキーワードのどちらかで指定します。このポート番号は、それら 2 つのメカニズムのどちらかで指定する必要があります。両方のメカニズムで指定した場合は、SMPP_PORT オプションによる設定が優先されます。このオプションのデフォルト値はありません。

双方向 SMS の場合は、このポートが SMPP リレーの LISTEN_PORT と同じポートであることを確認してください。

SMPP_SERVER

(文字列、1 〜 252 バイト) 片方向 SMS の場合、デフォルトの接続先 SMPP サーバーの IP ホスト名は、チャネルに関連付けられた正式なホスト名 (MTA 設定のチャネル定義の 2 行目に示されているホスト名) です。このオプションは、別のホスト名または IP アドレスを指定するために使用します。このオプションでの指定はチャネル定義での指定より優先されます。IP アドレスを指定する際は、ドット付きの 10 進表記で指定します (例: 127.0.0.1)。

双方向 SMS の場合は、SMS Gateway Server のホスト名または IP アドレスをポイントするように設定します。SMPP リレーの LISTEN_INTERFACE_ADDRESS オプションを使用している場合は、指定したネットワークインタフェースアドレスに関連付けられているホスト名または IP アドレスを必ず使用してください。

TIMEOUT

(整数、>= 2) デフォルトでは、SMPP サーバーへのデータ書き込みが完了するまで、またはデータが SMPP サーバーから受信されるまでに 30 秒のタイムアウトが使用されます。別のタイムアウト値 (秒) を指定するには、TIMEOUT オプションを使用します。指定する値は 1 秒以上にしてください。

ローカライズオプション

SMS チャネルには、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: ヘッダー行がない場合や、空の文字列である場合の処理については、SUBJECT_NONE オプションを参照してください。

SUBJECT_NONE

(文字列、0 〜 252 バイト) 元の電子メールメッセージに Subject: ヘッダー行がないか、Subject: ヘッダー行の値が空の文字列の場合に表示するテキスト文字列。このオプションのデフォルトのグローバル値は空の文字列です。

DEBUG

(整数、ビットマスク) デバッグ出力を有効にします。デフォルト値は 6 であり、警告およびエラーメッセージが選択されます。0 以外の値を指定すると、チャネル定義で 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_FORMAT」「SUBJECT_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 チャネルを持つように設定することができます。一般的に、これを行う理由は 2 つあります。

  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 サーバーを指定します。

    2 つの異なるチャネルは同一の正式ホスト名称 (チャネル定義の 2 行目に示されるホスト名) を持つことができないため、上記のメカニズムを使用する必要があります。異なるチャネルで同一の SMPP サーバーと通信できるようにするには、それぞれのチャネルオプションファイルの SMPP_SERVER でその SMPP サーバーを指定して、2 つの別個のチャネルを定義します。

    たとえば、次のようなチャネル定義をすることができます。


    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 サーバーを使用できるようにするために、これら 2 つのチャネルそれぞれのオプションファイルで 「SMPP_SERVER」=smpp.siroe.com と指定します。

配信再試行の間隔を調整する

一時的なエラーが原因で SMS メッセージが配信されない場合 (たとえば、SMPP サーバーがアクセス不能な場合)、電子メールメッセージは配信キューに残され、後で再試行が行われます。別の設定が行われていないかぎり、ジョブコントローラは 1 時間後まで配信を再試行しません。SMS メッセージの場合、これはあまりにも長い待機時間です。したがって、SMS チャネルに backoff チャネルキーワードを使用して、短い間隔で配信試行を指定することをお勧めします。たとえば、次のように指定します。

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

上記の設定では、再配信試行は最初の試行の 2 分後に実行されます。これが失敗した場合、2 回目の試行の 5 分後に実行されます。その次は 10 分後に実行され、最終的には 30 分ごとに実行されます。notices 1 チャネルキーワードを使用すると、1 日経ってもメッセージが配信されない場合、そのメッセージは配信不能として戻されます。

片方向設定の例 (MobileWay)

MTA SMS チャネルは SMPP V3.4 と互換性のある SMPP サーバーで使用できます。この節では、設定例をわかりやすく示すために、MobileWay SMPP サーバーで使用する場合の SMS チャネルの設定方法を説明します。MobileWay (http://www.mobileway.com/) は、グローバルデータおよび SMS 接続の大手供給元です。MobileWay を介して SMS トラフィックをルーティングすることによって、世界中の主要な SMS ネットワーク上の SMS 加入者にアクセスできます。

MobileWay で SMPP アカウントを取得する際、次の質問に答えるように求められます。

MobileWay に上記の質問に対する答えを指定すると、SMPP アカウントと SMPP サーバーとの通信に必要な情報が提供されます。次の情報が含まれます。


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

Account Address フィールドは、IP アドレス a.b.c.d および接続先の MobileWay SMPP サーバーの TCP ポート番号 p です。「SMPP_SERVER」および 「SMPP_PORT」の各チャネルオプションにこれらの値を使用します。Account Login および Account Passwd は、それぞれ、「ESME_SYSTEM_ID」および 「ESME_PASSWORD」の各チャネルオプションに使用される値です。この情報を使用して、チャネルオプションファイルには次の内容を含めます。


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

MobileWay と相互運用するには、さらに 2 つのオプションを設定する必要があります。


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 チャネルの設定」以降の項を参照してください。表 D–18 に示されている例外を除いて、リモート SMSC と直接通信している場合と同じように SMS チャネルを設定します。

表 D–18 双方向設定での例外

例外 

説明 

master チャネルキーワード

master チャネルキーワードが指定されている場合は、削除します。

このチャネルキーワードは SMS チャネル設定には不要です。 

SMPP_SERVER

SMS Gateway Server のホスト名または IP アドレスをポイントするように設定します。SMPP リレーの LISTEN_INTERFACE_ADDRESS オプション (「設定オプション」を参照) を使用している場合は、指定されているネットワークインタフェースアドレスに関連付けられているホスト名または IP アドレスを必ず使用します。

SMPP_PORT

SMPP リレーのインスタンス化に使用される LISTEN_PORT の設定で使用されているものと同じ TCP ポートです (「SMPP リレー」を参照)。

DEFAULT_SOURCE_ADDRESS

値を選んでから、リモート SMSC がこのアドレスを Gateway SMPP サーバーに戻すように設定します。SMS チャネルのオプションファイルで、選択した値をこのオプションに指定します。 

GATEWAY_PROFILE 

ゲートウェイプロファイル名と一致するように設定します。詳細については、「ゲートウェイプロファイル」を参照してください。

USE_HEADER_FROM

0 に設定します。

上記以外のすべてのチャネル設定は、SMS チャネルマニュアルで説明されているように設定する必要があります。

「双方向 SMS ルーティングを設定する」で説明されているように、リモート SMSC は、LISTEN_PORT オプションで指定されている TCP ポート番号を使用して、DEFAULT_SOURCE_ADDRESS チャネルオプションで定義されている SMS アドレスを Gateway の SMPP サーバーにルーティングするように設定されている必要があります (LISTEN_PORT の設定方法については、「SMPP サーバー」を参照)。

複数の SMS チャネルが同一の SMPP リレーを使用することもできます。同様に、複数の SMS チャネルに対する SMS 返信および通知を処理するには、SMPP サーバーまたはゲートウェイプロファイルが 1 つだけ必要です。複数のリレー、サーバー、およびゲートウェイプロファイルが設定可能であることには、設定オプションを介してさまざまな使用上の特徴を有効にすることができるという意義があります。

SMS Gateway Server の動作方式

SMS Gateway Server は、モバイルで作成された SMS メッセージを正しい電子メールアドレスに一致させるメカニズムを提供することで、双方向 SMS をサポートします。この節には、SMS Gateway Server に関する次の項目があります。

SMS Gateway Server の機能

SMS Gateway Server は、同時に SMPP リレーとサーバーの両方として機能します。SMS Gateway Server は、各機能の複数の「インスタンス」を持つように設定できます。たとえば、3 つの SMPP リレーを持ち、それぞれが異なる TCP ポートまたはネットワークインタフェースを待機し、異なる SMPP サーバーにリレーを行うように設定できます。同様に、4 つの SMPP サーバーを持ち、それぞれが異なる TCP ポートとネットワークインタフェースの組み合わせを待機するように設定できます。

SMS Gateway Server は、SMS メッセージを電子メールに送信するためのゲートウェイプロファイルで設定します (ゲートウェイプロファイルはない場合もある)。各ゲートウェイプロファイルには、プロファイルと一致する宛先 SMS アドレス、SMS メッセージから宛先電子メールアドレスを抽出する方法、および SMS から電子メールへの変換プロセスのさまざまな特徴を記述します。SMPP リレーまたはサーバーを介して SMS Gateway Server に提示された各 SMS メッセージは、各プロファイルと照合されます。一致するものが見つかると、メッセージは電子メールにルーティングされます。

ゲートウェイプロファイルには、電子メールからモバイルに送信されたメッセージに応答してリモート SMSC が返した通知メッセージの処理方法も定義されています。

SMPP リレーおよびサーバーの動作

SMS Gateway Server は SMPP リレーとして機能しているとき、可能なかぎり透過的に動作します。ローカル SMPP クライアントからのすべての要求をリモート SMPP サーバーにリレーし、リモートサーバーの応答をリレーして返します。次の 2 つの例外があります。

一般的に、SMS Gateway Server は、生成した一意の SMS ソースアドレスがゲートウェイプロファイルのどれかに一致するように設定されることに注意してください。


注 –

SMS Gateway Server の SMPP リレーは、正規の Sun Java System SMPP クライアント、つまり Sun Java System Messaging Server の SMS チャネルとともに使用する場合のみを対象にしています。これ以外の SMPP クライアントとともに使用する場合は対象にしていません。


SMS Gateway Server が SMPP サーバーとして機能する場合、以下の 3 つの状況で SMS メッセージは電子メールに送信されます。

上記以外のすべての SMS メッセージは SMPP サーバーによって拒否されます。

リモート SMPP からゲートウェイ SMPP への通信

リモート SMPP クライアントは、プロトコルデータユニット (PDU) を使用してゲートウェイ SMPP サーバーに通信します。リモート SMPP クライアントは、要求 PDU を出します。ゲートウェイ 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 アドレスと一意の SMS ソースアドレスまたはゲートウェイプロファイルの SELECT_RE 設定の照合を試行します。どれも一致しない場合は、PDU は拒否され、ESME_RINVDSTADR エラーが発生します。

DELIVER_SM

宛先 SMS アドレスまたは履歴レコードにある受信確認済みメッセージ ID のどちらかの検出を試行します。どちらも一致しない場合は、ESME_RINVMSGID エラーを返します。

BIND_RECEIVER

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

SUBMIT_MULTI

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

REPLACE_SM

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

CANCEL_SM

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

QUERY_SM

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

QUERY_LAST_MSGS

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

QUERY_MSG_DETAILS

サポートされていません。ESME_RINVCMDID エラーとともに GENERIC_NAK PDU を返します。

ENQUIRE_LINK

ENQUIRE_LINK_RESP PDU を返します。

ALERT_NOTIFICATION

受け入れられますが、無視されます。 

SMS の返信および通知の処理

SMS Gateway Server は、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 配備計画ガイド』を参照してください。

各レコードは、次の 3 つのコンポーネントから成ります。

SMS 返信のルーティングプロセス

Gateway SMPP リレーおよびサーバーは、履歴レコードを使用して SMS 返信、SMS 通知、およびモバイルで作成されたメッセージを処理します。SMS メッセージが SMPP リレーまたはサーバーに提示されると、次のルーティングプロセスが実行されます。

  1. SMS 宛先アドレスが履歴レコードに照合され、過去に SMPP リレーが生成した一意の SMS ソースアドレスに一致するものがあるかどうか調べられます。一致するものが見つかった場合は、手順 6 へ進みます。

  2. 一致するものはないが、メッセージが SMS 通知 (SMPP DELIVER_SM PDU) である場合、受信確認済みメッセージ ID (存在する場合) が履歴レコードと照合されます。一致するものが見つかった場合は、手順 8 へ進みます。[SMS Gateway Server では、実際にメッセージを 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. 通知である場合は、RFC 1892 〜 1894 に従って、SMS メッセージは電子メール配信ステータス通知 (DSN) に変換されます。元の電子メールメッセージの ESMTP NOTIFY フラグ (RFC 1891) が使用されることに注意してください (たとえば、SMS メッセージは「成功」DSN であるが、元の電子メールメッセージは「失敗」通知のみを要求していた場合、この SMS 通知は破棄される)。

  9. 宛先 SMS アドレスが設定済みゲートウェイプロファイルの SELECT_RE オプションに一致した場合、SMS メッセージはモバイルで作成されたメッセージとして扱われ、そのゲートウェイプロファイルの PARSE_RE_n ルールに従って電子メールメッセージに変換し直されます。変換に失敗した場合、SMS メッセージは無効になり、エラー応答が返されます。

SMS Gateway Server の設定

この節では、電子メールからモバイルおよびモバイルから電子メールの両方の機能を使用する場合の SMS Gateway Server の設定方法について説明します。この節には、次の項目があります。

双方向 SMS ルーティングを設定する

MTA と SMSC 間の双方向の電子メールおよび SMS ルーティングを設定する場合に推奨される方法は、次の 3 手順のプロセスです。

SMS アドレスプレフィックスを設定する

MTA SMS チャネルによって生成されたソース SMS アドレスは、選択した SMS アドレスプレフィックスに一致するように設定する必要があります。次の設定を行います。

ゲートウェイプロファイルを設定する

次に、SMS Gateway Server のゲートウェイプロファイルを設定して、リレー対象のすべての SMS ソースアドレスを一意にする必要があります。これはデフォルト設定ですが、ゲートウェイプロファイルオプション MAKE_SOURCE_ADDRESSES_UNIQUE=1 を指定することによって明示的に設定することもできます。この設定によって、リレー対象の SMS ソースアドレスは次の形式になります。

prefixnnnnnnnnnn

nnnnnnnnnn は、一意の 10 桁の 10 進数です。

SMSC を設定する

最後に、SMSC を設定して、プレフィックス (プレフィックスのみ、またはプレフィックスと 10 桁の 10 進数のどちらか) と一致するすべての SMS 宛先アドレスを SMS Gateway Server の SMPP サーバーにルーティングする必要があります。このようなルーティングの正規表現は、次のようになります。

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

prefixDEFAULT_SOURCE_ADDRESS の値です。[0-9] は 10 桁の 10 進数として許容される値を示し、{10, 10} は最小値が 10 桁あり、最大値が 10 桁あるということを示します。{0, 1} は、ゼロまたは 10 桁の数字のどれかが可能であることを示します。

SMS Gateway Server の有効化と無効化

SMS Gateway Server の起動と停止

SMS Gateway Server が有効になった後は、次のコマンドを使用して起動および停止することができます。

# start-msg sms

および

# stop-msg sms

SMS Gateway Server の設定ファイル

SMS Gateway Server が機能するためには、設定ファイルが必要です。設定ファイルは、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

Gateway Server 上に電子メールからモバイルの処理を設定する

双方向 SMS の電子メールからモバイルの部分を実装するには、次の設定を行う必要があります。

ゲートウェイプロファイル

電子メールからモバイルへのゲートウェイプロファイルを設定するには、次の手順に従います。

Procedure電子メールからモバイルへのゲートウェイプロファイルを設定するには

手順
  1. SMS Gateway Server 設定ファイルにゲートウェイプロファイルを追加します。

    オプショングループを追加するには、次の形式を使用します。


    [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 リレーを設定するには、次の手順を実行します。

ProcedureSMPP リレーを設定するには

手順
  1. SMPP リレーインスタンス (オプショングループ) を SMS Gateway Server の設定ファイルに追加します。

    オプショングループを追加するには、次の形式を使用します。


    [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 ポート番号を選択します。この TCP ポート番号には、ほかの SMPP リレーまたはサーバーインスタンスで使用されていないもの、同一のコンピュータ上で実行されているほかのサーバーで使用されていないものを選択します。

  3. SERVER_HOST オプションを設定します。

    リレーの SERVER_HOST オプションは、リモート SMSC の SMPP サーバーのホスト名を示す必要があります。ホスト名の代わりに IP アドレスを使用することもできます。

  4. SERVER_PORT オプションを設定します。

    リレーの SERVER_PORT オプションは、リモート SMSC の SMPP サーバーの TCP ポートを示す必要があります。

    SMPP リレーオプションの詳細については、「SMPP リレーオプション」を参照してください。

SMPP サーバー

SMPP サーバーを設定するには、次の手順を実行します。

ProcedureSMPP サーバーを設定するには

手順
  1. SMPP サーバーインスタンス (オプショングループ) を SMS Gateway Server の設定ファイルに追加します。

    オプショングループを追加するには、次の形式を使用します。


    [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 ポート番号を選択します。また、ポート番号は、同一コンピュータ上のほかのサーバーで使用されていないものにしてください。

    この TCP ポートを使用して SMPP を介して通知を SMS Gateway Server システムにルーティングするように、リモート SMSC を設定する必要があります。

    SMPP サーバーオプションの詳細については、「SMPP サーバーオプション」を参照してください。

モバイルから電子メールの処理を設定する

モバイルから電子メールの処理を設定するには、2 つの設定手順を実行する必要があります。

複数のゲートウェイプロファイルは同一の SMPP サーバーインスタンスを使用することもできます。実際、SMPP サーバーインスタンスは、電子メールからモバイル、モバイルから電子メールの両方の用途に使用される場合があります。

モバイルから電子メールへのゲートウェイプロファイルを設定する

モバイルが起点である場合、ゲートウェイプロファイルは 2 つの重要な情報を提供します。そのゲートウェイプロファイルを使用する SMS メッセージを特定する方法とその SMS メッセージを電子メールメッセージに変換する方法です。このプロファイルは、電子メールからモバイルの場合と同じものが使用できます。ただし、SELECT_RE オプションを追加する必要があります。

ゲートウェイプロファイルを設定するには、次の手順に従います。

Procedureゲートウェイプロファイルを設定するには

手順
  1. SMS Gateway Server の設定ファイルにゲートウェイプロファイル (オプショングループ) を追加します。

    オプショングループを追加するには、次の形式を使用します。


    [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 オプションを指定する必要があります。

    このオプションの値には、SMS 宛先アドレスと照合できるように ASCII 正規表現を使用します。SMS 宛先アドレスが正規表現と一致した場合は、SMS メッセージはゲートウェイを介して電子メールに送信されます。このとき、一致したプロファイルで示されている特徴が使用されます。

    重複する一連の SMS アドレスを持つ複数のゲートウェイプロファイルを設定することは可能です (たとえば、アドレス 000 と一致するプロファイルとほかの任意の 3 桁のアドレスと一致する別のプロファイル)。ただし、これは避けてください。SMS メッセージが 1 つのゲートウェイプロファイル (一致する最初のプロファイル) のみに渡されることになるからです。また、SMS アドレスが照合される順序が不定になるからです。

  3. CHANNEL オプションを設定します。

    この値は MTA SMS チャネルの名前にする必要があります。

    モバイルを起点とする場合のオプションの詳細については、「ゲートウェイプロファイルのオプション」を参照してください。

モバイルから電子メールの SMPP サーバーを設定する

SMPP サーバーの追加方法は、電子メールからモバイルの SMPP サーバーの場合と同じです (「SMPP サーバー」を参照)。

SMS 通信をゲートウェイ SMPP サーバーにルーティングするように、リモート SMSC を設定する必要があります。そのためには、SMSC がモバイルから電子メールへの通信をルーティングするために使用する SMS 宛先アドレスが、ゲートウェイプロファイルオプション SELECT_RE に設定された値である必要があります。

たとえば、モバイルから電子メールの通信に SMS アドレス 000 を使用する場合、SMS 宛先アドレス 000 の通信をゲートウェイ SMPP サーバーにルーティングするように SMSC を設定する必要があります。ゲートウェイプロファイルは SELECT_RE=000 のオプション設定を使用する必要があります。

設定オプション

この節では、SMS Gateway Server 設定ファイルのオプションについて詳しく説明します。次の表に、すべての使用可能な設定オプションの一覧を簡単な説明とともに示します。グローバルオプション、SMPP リレーオプション、SMPP サーバーオプション、および SMS Gateway Server プロファイルオプションそれぞれについての表があります。

各表に続く項目では、すべての使用可能な設定オプションについて詳しく説明します。以下の項目があります。

グローバルオプション

現在のところ、SMS Gateway Server には、次の 3 つのカテゴリのグローバルオプションがあります。

グローバルオプションはすべて、設定ファイルの最上部 (どのオプショングループよりも前) に指定する必要があります。表 D–20 に、グローバル設定オプションをすべて示します。

表 D–20 グローバルオプション

オプション 

デフォルト 

説明 

「DEBUG」

6

生成される診断出力のタイプを選択します 

「HISTORY_FILE_DIRECTORY」

 

履歴データのファイルの絶対ディレクトリパスです 

「HISTORY_FILE_MODE」

0770

履歴データのファイルへの許可です 

「HISTORY_FILE_ROLLOVER_PERIOD」

30 分

1 つの履歴データのファイルに書き込むための最大時間です 

「LISTEN_CONNECTION_MAX」

 

すべての SMPP リレーおよびサーバーインスタンスでの最大同時受信接続数です 

「RECORD_LIFETIME」

3 日

履歴データアーカイブのレコードの存続期間です 

「THREAD_COUNT_INITIAL」

10 スレッド

最初のワーカースレッド数です 

「THREAD_COUNT_MAXIMUM」

50 スレッド

最大ワーカースレッド数です 

「THREAD_STACK_SIZE」

64K バイト

各ワーカースレッドのスタックサイズです 

スレッドチューニングオプション

各受信 TCP 接続はそれぞれが 1 つの SMPP セッションです。セッションの処理は、スレッドプールのワーカースレッドによって行われます。セッションの処理を I/O 要求が完了するまで待つ必要がある場合は、ワーカースレッドはそのセッションを保留し、ほかの処理を実行します。I/O 要求が完了すると、プール内の使用されていないワーカースレッドによってセッションが再開されます。

以下のオプションを使用して、ワーカースレッドのプールの処理を調整できます。「THREAD_COUNT_INITIAL」「THREAD_COUNT_MAXIMUM」「THREAD_STACK_SIZE」

THREAD_COUNT_INITIAL

(整数、> 0) ワーカースレッドのプールに最初に作成するスレッド数。この数には、メモリー内の履歴データ専用に使用されるスレッド (2 スレッド) を含みません。また、着信 TCP 接続の待機専用に使用されるスレッド (SMS Gateway Server が待機する TCP ポートおよびインタフェースアドレスペアにつき 1 スレッド) も含みません。THREAD_COUNT_INITIAL のデフォルト値は 10 スレッドです。

THREAD_COUNT_MAXIMUM

(整数、>= THREAD_COUNT_INITIAL) ワーカースレッドのプールに許可する最大スレッド数。デフォルト値は 50 スレッドです。

THREAD_STACK_SIZE

(整数、> 0) ワーカースレッドのプール内の各ワーカースレッドのスタックサイズ (単位: バイト)。デフォルト値は 65,536 バイト (64K バイト) です。

履歴データの調整

SMS メッセージのリレー時、受信側のリモート SMPP サーバーによって生成されるメッセージ ID は、メモリー内のハッシュテーブルに保存されます。このメッセージ ID とともに、元の電子メールメッセージについての情報も保存されます。その後メッセージ ID が SMS 通知によって参照された場合、この情報が取り出されることがあります。取り出された情報は、SMS 通知を適切な電子メール受取人に送信するために使用されます。

メモリー内のハッシュテーブルは、専用のスレッドでディスクに返されます。その結果ディスクファイルは「履歴ファイル」として参照されます。履歴ファイルは、次の 2 つの目的で使用されます。SMS Gateway Server を再起動した後にメモリー内ハッシュテーブルを復元するのに必要なデータを不揮発性の形式で保存するため、また、非常に長くなる可能性のあるデータをディスクに保存することによって、仮想メモリーを節約するためです。各履歴ファイルは、HASH_FILE_ROLLOVER_PERIOD 秒間のみ書き込まれます。この時間を過ぎると、ファイルは終了し、新しい履歴ファイルが作成されます。履歴ファイルの存続期間が RECORD_LIFETIME 秒を超えると、ファイルはディスクから削除されます。

履歴ファイルの調整には次のオプションが使用できます。「HISTORY_FILE_DIRECTORY」「HISTORY_FILE_MODE」「HISTORY_FILE_ROLLOVER_PERIOD」「RECORD_LIFETIME」

HISTORY_FILE_DIRECTORY

(文字列、絶対ディレクトリパス) 履歴ファイルの書き込み先のディレクトリへの絶対パス。ディレクトリパスが存在しない場合は作成されます。このオプションのデフォルト値は、次のとおりです。

msg_svr_base/data/sms_gateway_cache/

使用するディレクトリは、相応に高速なディスクシステム上に存在し、予測される保存量よりも大きい空き容量がある必要があります。このオプションをより適切な値に変更するには、「SMS Gateway Server のストレージ要件」を参照してください。

HISTORY_FILE_MODE

(整数、8 進値) 履歴ファイルに関連付けるファイル許可。デフォルトでは、0770 (8 進値) の値が使用されています。

HISTORY_FILE_ROLLOVER_PERIOD

(整数、秒) 現在の履歴ファイルが終了し、新しいものが HASH_FILE_ROLLOVER_PERIOD 秒ごとに作成されます。デフォルトでは、1800 秒 (30 分) の値が使用されています。

RECORD_LIFETIME

(整数、秒 > 0) 履歴レコードの存続期間 (単位: 秒)。この存続期間を過ぎたレコードは、メモリーから消去されます。この存続期間を過ぎた履歴ファイルは、ディスクから削除されます。デフォルトでは、259,200 秒 (3 日) の値が使用されています。メモリーに保存されているレコードは、メモリー内データの管理専用のスレッドによって一斉に消去されます。この消去は、HASH_FILE_ROLLOVER_PERIOD 秒ごとに実行されます。ディスク上のファイルは、新しい履歴ファイルを開く必要が生じたときに消去されます。

その他

その他のオプションには、次の 2 つがあります。「DEBUG」および 「LISTEN_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 Gateway Server には、異なる特徴を持つ複数の 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 秒

SMPP クライアントからの受信接続の読み取りタイムアウトです 

「LISTEN_TRANSMIT_TIMEOUT」

120 秒

SMPP クライアントからの受信接続の書き込みタイムアウトです 

「MAKE_SOURCE_ADDRESSES_UNIQUE」

1

リレー対象の SMS ソースアドレスを一意にして、返信可能にします 

「SERVER_HOST」

 

リレー先の SMPP サーバーのホスト名または IP アドレスです 

「SERVER_PORT」

 

リレー先の SMPP サーバーの TCP ポートです 

「SERVER_RECEIVE_TIMEOUT」

600 秒

送信 SMPP サーバー接続の読み取りタイムアウトです 

「SERVER_TRANSMIT_TIMEOUT」

120 秒

送信 SMPP サーバー接続の書き込みタイムアウトです 

LISTEN_BACKLOG

(整数、0 〜 255 でその両端も含む) 受信 SMPP クライアント接続の TCP スタックによって許容される接続バックログ。デフォルトは 255 です。

LISTEN_CONNECTION_MAX

(整数、>= 0) この SMPP リレーインスタンスで許可される最大同時受信 TCP 接続数。この値は、グローバル設定の LISTEN_CONNECTION_MAX の値を超えた場合は無視されます。

LISTEN_INTERFACE_ADDRESS

(文字列、「INADDR_ANY」または ドット付き 10 進表記の IP アドレス) 受信 SMPP クライアント接続で待機対象のネットワークインタフェースの IP アドレス。文字列「INADDR_ANY」 (すべての使用可能なインタフェース) またはドット付き 10 進表記の IP アドレスのどちらかです。 (例: 193.168.100.1) デフォルト値は「INADDR_ANY」です。この値を HA 論理 IP アドレスと対応させるには、クラスタ化された HA 設定が必要です。

LISTEN_PORT

(整数、TCP ポート番号) 受信 SMPP クライアント接続を受け入れるためのバインド先 TCP ポート。このオプションの指定は必須です。このオプションにはデフォルト値はありません。このサービスには、Internet Assigned Numbers Authority (IANA) からの割り当てはないことにも注意してください。

LISTEN_RECEIVE_TIMEOUT

(整数、秒 > 0) SMPP クライアントからデータを読み取るために待つ場合のタイムアウト。デフォルト値は 600 秒 (10 分) です。

LISTEN_TRANSMIT_TIMEOUT

(整数、秒 > 0) SMPP クライアントにデータを送信する場合のタイムアウト。デフォルト値は 120 秒 (2 分) です。

MAKE_SOURCE_ADDRESSES_UNIQUE

(0 または 1) デフォルトでは、SMPP リレーは各 SMS ソースアドレスに一意の 10 桁の文字列を付加します。結果の SMS ソースアドレスは、ほかの履歴データとともに保存されます。その結果、SMS ユーザーが返信することのできる一意の SMS アドレスになります。このアドレスが SMS 宛先アドレスとして使用されたとき、SMPP サーバーはこのアドレスを検出し、SMS メッセージを正しい電子メール差出人に送信します。

一意の SMS ソースアドレスの生成を無効にするには (片方向 SMS の場合)、このオプションの値に 0 を指定します。

SERVER_HOST

(文字列、TCP ホスト名またはドット付き 10 進表記の IP アドレス) SMPP クライアント通信のリレー先 SMPP サーバー。ホスト名または IP アドレスのどちらかを指定します。このオプションの指定は必須です。このオプションにはデフォルト値はありません。

SERVER_PORT

(整数、TCP ポート番号) リモート SMPP サーバーがリレーする TCP ポート。このオプションの指定は必須です。このオプションにはデフォルト値はありません。このサービスには IANA からの割り当てはありません。IANA からの SNPP の割り当てと混同しないでください。

SERVER_RECEIVE_TIMEOUT

(整数、秒 > 0) SMPP サーバーからデータを読み取るために待つ場合のタイムアウト。デフォルト値は 600 秒 (10 分) です。

SERVER_TRANSMIT_TIMEOUT

(整数、秒 > 0) SMPP サーバーにデータを送信する場合のタイムアウト。デフォルト値は 120 秒 (2 分) です。

SMPP サーバーオプション

SMS Gateway Server には、異なる特徴を持つ複数の 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 秒

受信 SMPP サーバー接続の読み取りタイムアウトです 

「LISTEN_TRANSMIT_TIMEOUT」

120 秒

受信 SMPP サーバー接続の書き込みタイムアウトです 

LISTEN_BACKLOG

(整数0 〜 255 でその両端も含む) 受信 SMPP クライアント接続の TCP スタックによって許容される接続バックログ。デフォルトは 255 です。

LISTEN_CONNECTION_MAX

(整数、>= 0) この SMPP サーバーインスタンスで許可される最大同時受信 TCP 接続数。この値は、グローバル設定の LISTEN_CONNECTION_MAX の値を超えた場合は無視されます。

LISTEN_INTERFACE_ADDRESS

(文字列、「INADDR_ANY」またはドット付き 10 進表記の IP アドレス) 受信 SMPP クライアント接続で待機対象のネットワークインタフェースの IP アドレス。文字列「INADDR_ANY」 (すべての使用可能なインタフェース) またはドット付き 10 進表記の 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 Sever の設定ファイルのオプショングループ内で、各ゲートウェイプロファイルは次の形式で宣言されています。


[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 Gateway Server プロファイルオプションの一覧を示します。

表 D–24 SMS Gateway Server プロファイルオプション

オプション 

デフォルト 

説明 

「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

GSM、TDMA、または CDMA の環境で機能する SMS プロファイルですGSM, TDMA, or CDMA 

「SELECT_RE」

 

プラグインの選択に使用される正規表現です 

「SMSC_DEFAULT_CHARSET」

US-ASCII

SMSC のデフォルトの文字セットです 

「USE_SMS_PRIORITY」

0

Gateway SMS の電子メールへの優先順位フラグです 

「USE_SMS_PRIVACY」

0

Gateway SMS の電子メールへのプライバシインジケータです 

CHANNEL

(文字列、1 〜 40 文字) 電子メールメッセージをキューに入れるために使用される MTA チャネルの名前。指定されていない場合は、「sms」と仮定されます。指定するチャネルは、MTA の設定で定義されている必要があります。

EMAIL_BODY_CHARSET

(文字列、文字セット名) 電子メールメッセージ本文への挿入前に、SMS テキストを変換するために使用する文字セット。必要に応じて、変換後のテキストは MIME でエンコードされます。デフォルト値は US-ASCII です。SMS メッセージに文字セットにないグリフが含まれている場合、そのグリフはニーモニック文字に変換されます。ニーモニック文字は、受取人にとっては意味をなさない場合があります。

MTA に認識される文字セットの一覧は、次のファイルで示されています。

installation-directory/config/charsets.txt

EMAIL_HEADER_CHARSET

(文字列、文字セット名) 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 メッセージのテキストから宛先電子メールアドレスを抽出する必要があります。これは、1 つまたは複数の 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]*

先頭のホワイトスペース文字 (SPACE および TAB) を無視します。

([^\( ]*)

宛先電子メールアドレス。これは最初に報告される文字列です。

[ \t]*

ホワイトスペース文字を無視します。

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

括弧で囲まれたオプションの件名テキスト。これは 2 番目に報告される文字列です。先頭の ?: によって、外側の括弧は文字列を報告しなくなります。括弧は、括弧内の内容を末尾の ? の単一の RE にグループ化するためにのみ使用されます。末尾の ? によって、この RE 構成要素は、0 回または 1 回のみ照合されます。これは {0,1} の表現と同等です。

[ \t]*

ホワイトスペース文字を無視します。

(.*)

残りのテキストをメッセージ本文へ。これは 3 番目に報告される文字列です。

例として、上記の正規表現で次のサンプル 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-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 で使用されるデフォルトの文字セットの名前。このオプションに選択する一般的な値は 2 つあり、それは 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 優先度フラグ 

電子メールの Priority: ヘッダー行 

GSM 

0 (優先でない)

123 (優先)

ヘッダー行なし (Normal を示す)

Urgent

TDMA 

0 (バルク)

1 (標準)

2 (至急)

3 (大至急)

Nonurgent

ヘッダー行なし (Normal を示す)

Urgent

Urgent

CDMA 

0 (標準)

1 (インタラクティブ)

2 (至急)

3 (緊急)

ヘッダー行なし (Normal を示す)

Urgent

Urgent

Urgent

電子メールの Priority: ヘッダー行の値は、NonurgentNormal、および Urgent です。

USE_SMS_PRIVACY

(整数、0 または 1) デフォルト (USE_SMS_PRIVACY=0) では、SMS プライバシの指示は無視され、電子メールメッセージとともには送信されません。この情報を電子メールに付けて渡すには、USE_SMS_PRIVACY=1 と指定します。表 D–26 に、プライバシ情報を電子メールに付けて渡した場合の SMS から電子メールへのマッピングを示します。

表 D–26 プライバシフラグの SMS から電子メールへのマッピング

SMS プライバシフラグ 

電子メールの Sensitivity: ヘッダー行 

0 (制約なし)

ヘッダー行なし 

1 (制限あり)

Personal

2 (親展)

Private

3 (秘密)

Company-confidential

電子メールの Sensitivity: ヘッダー行の値は、PersonalPrivate、および Company-confidential です。

双方向 SMS の設定例

動作についての仮定

この例では、次の動作を設定するものと仮定します。

この動作を実現するために、次の仮定と指示に従ってください。

追加の仮定と指示

SMS チャネルの設定

上記の動作を有効にするには、次に示す SMS チャネルの設定を imta.cnf ファイルで使用します (以下の行をファイルの最下部に追加)。

(空白行)
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 Gateway Server の設定

Gateway Server の設定ファイル 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 ファイルへの追加設定は、次のとおりです。

! テキストをSMS メッセージの本文に追加しないようにする設定 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 にルートバックされます。このテストに使用する DNS またはホストテーブルには、sms.domain.com を必ず追加しておいてください。

SMS Gateway Server のストレージ要件

SMS Gateway Server に必要なリソース量を判断するには、表 D–27 の要件から算出した数字とともに、1 秒間にリレーされるメッセージの期待数および RECORD_LIFETIME 設定を考慮します。

表 D–27 に、履歴レコード、SMPP リレー、および SMPP サーバーの要件を示します。

表 D–27 SMS Gateway Server のストレージ要件

コンポーネント 

要件 

メモリー内履歴レコード 

リレーされるメッセージごとに 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) です。1680 万レコード (2**24) 未満の場合、ハッシュテーブルは約 16M バイトを消費します。6710 万レコード (2**26) 未満の場合、ハッシュテーブルは約 64M バイトを消費します。6710 万レコードを超えると、ハッシュテーブルは約 256M バイトを消費します。 

64 ビットのオペレーティングシステムの場合は、メモリー消費量は 2 倍になります。 

これらの消費量は、各レコード自体が必要とするメモリー消費量に追加されます。 

ディスク上の履歴レコード 

リレーされるメッセージごとに、平均で次のバイト数が必要です。 

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 とメッセージ ID、および Subject: ヘッダー行の長さから影響を受けます。

    最大レコード長は 910 バイトです。

    MAKE_SOURCE_ADDRESS_UNIQUE=0 の場合、各レコードのサイズ (単位: バイト) は次のようになります。78+m+3a+ S+2i

SMPP リレー 

リレーされる SMPP セッションごとに、2 つの TCP ソケットを消費します。1 つはローカル SMPP クライアントに使用され、もう 1 つはリモート SMPP サーバーに使用されます。32 ビットのオペレーティングシステムの場合、約 1K バイトの仮想メモリーが接続ごとに消費されます。64 ビットのオペレーティングシステムの場合は、約 2K バイト消費されます。 

SMPP サーバー 

着信接続ごとに 1 つの TCP ソケットを消費します。32 ビットのオペレーティングシステムの場合、約 1K バイトの仮想メモリーが接続ごとに消費されます。64 ビットのオペレーティングシステムの場合は、約 2K バイト消費されます。 

たとえば、1 秒間に平均 50 メッセージがリレーされると予想し、SMS ソースアドレスの長さは 13 バイト、SMS メッセージ ID は一般的な長さの 12 バイト、電子メールアドレスは 24 バイト、Subject: 行は 40 バイト、電子メールメッセージと ID がそれぞれ 40 バイト、履歴データは 7 日間保持されるとする場合、結果は次のようになります。

容量が十分あるディスクを使用すれば、いずれのディスク要件にも対応できるものの、32 ビットマシンの仮想メモリー要件は約 2G バイトであり、これは厳しい制限です。仮想メモリーまたはディスクストレージの所要量を削減するには、RECORD_LIFETIME オプションを使用して、レコードが保持される期間を短くしてください。