サイトで妥当性チェックを実行したり、受取人の電子メールアドレスでエンコードされた SMS 宛先アドレスを変換する必要がある場合もあります (「電子メールをチャネルに送信する」を参照)。たとえば、サイトで実行する処理には以下のようなものがあります。
非数値文字を取り除く (例: 800.555.1212 を 8005551212 に変換する)
プレフィックスを前に付ける (例: 8005551212 を +18005551212 に変換する)
妥当性を検証する (例: 123 は短すぎる)
上記の最初の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 宛先アドレスから「+」が取り除かれます。