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 つのコンポーネントから成ります。
電子メールの発信データ (エンベロープ From: および To: アドレスなど)。このデータは、MTA SMS チャネルがメッセージを送信する際に提供されます。
SMPP リレーによって生成され、リレー対象の SMS メッセージに挿入された一意の SMS ソースアドレス。
リモート SMSC の SMPP サーバーが送信を受け入れるときに返す受信確認済みメッセージ ID。
Gateway SMPP リレーおよびサーバーは、履歴レコードを使用して SMS 返信、SMS 通知、およびモバイルで作成されたメッセージを処理します。SMS メッセージが SMPP リレーまたはサーバーに提示されると、次のルーティングプロセスが実行されます。
SMS 宛先アドレスが履歴レコードに照合され、過去に SMPP リレーが生成した一意の SMS ソースアドレスに一致するものがあるかどうか調べられます。一致するものが見つかった場合は、手順 6 へ進みます。
一致するものはないが、メッセージが SMS 通知 (SMPP DELIVER_SM PDU) である場合、受信確認済みメッセージ ID (存在する場合) が履歴レコードと照合されます。一致するものが見つかった場合は、手順 8 へ進みます。[SMS Gateway Server では、実際にメッセージを SMPP リレーまたは SMPP サーバーのどちらかに提示することができる。]
一致するものがない場合、宛先 SMS アドレスは各設定済みゲートウェイプロファイルの SELECT_RE オプション表現と照合されます。一致するものが見つかった場合は、手順 9 へ進みます。
一致するものがなく、SMS メッセージがゲートウェイ SMPP リレーに提示された場合、メッセージはリモート SMPP サーバーにリレーされます。
一致するものがなく、SMS メッセージがゲートウェイ SMPP サーバーに提示された場合、メッセージは無効なメッセージであると判断され、SMPP 応答 PDU 内にエラー応答が返されます。電子メールから SMS の場合、最終的に配信不能通知 (NDN) が生成されます。
一致する SMS ソースアドレスが見つかった場合は、SMS メッセージは返信であるか通知メッセージであるかどうかについてさらに調べられます。通知メッセージであるためには、受信確認済みメッセージ ID を持つ SUBMIT_SM PDU である必要があります。それ以外の場合は、返信であると見なされます。
返信である場合は、履歴レコードにある元の電子メール情報を使用して、SMS メッセージは電子メールメッセージに変換されます。
通知である場合は、RFC 1892 〜 1894 に従って、SMS メッセージは電子メール配信ステータス通知 (DSN) に変換されます。元の電子メールメッセージの ESMTP NOTIFY フラグ (RFC 1891) が使用されることに注意してください (たとえば、SMS メッセージは「成功」DSN であるが、元の電子メールメッセージは「失敗」通知のみを要求していた場合、この SMS 通知は破棄される)。
宛先 SMS アドレスが設定済みゲートウェイプロファイルの SELECT_RE オプションに一致した場合、SMS メッセージはモバイルで作成されたメッセージとして扱われ、そのゲートウェイプロファイルの PARSE_RE_n ルールに従って電子メールメッセージに変換し直されます。変換に失敗した場合、SMS メッセージは無効になり、エラー応答が返されます。