AWS End User Messaging でシミュレータータイプの US 電話番号から日本の電話番号へ SMS を送信使用する時に「NO_ORIGINATION_IDENTITIES_FOUND」が発生する場合の対処方法
いわさです。
先日、次のアップデートを検証する時に AWS End User Messaging の SMS シミュレーターを使って認証済み番号で SMS テストメッセージを送信する機会がありました。
上記記事では特に触れていないのですが、テスト送信を行おうとした際に次のようにNO_ORIGINATION_IDENTITIES_FOUND
エラーが発生して送信に失敗しました。
これは、電話プールにデフォルトで割り当て可能な US ロングコード(+1)を使って日本の電話番号(+81)に対して送信しようとする際に電話プールを発信者に指定した時に発生するようです。
US 電話番号から JP 電話番号へ SMS 送信を行うケースはあると思うので、同じように困った方のために対処方法を紹介します。
電話プールの共有ルート機能を有効化する
結論としては以下の電話プールの共有ルート機能を有効化すれば送信することが出来ます。
どうやら上記ロングコードから日本の電話番号への送信が出来ないようで、その場合は共有プールの ID を自動で使うことが出来ます。ただし、デフォルトでは共有ルートが無効化になっているため共有プール ID が使用されません。
一部の国では、 AWS エンドユーザーメッセージングが共有オリジン ID のプールSMSを維持します。共有ルートをアクティブ化すると、 AWS エンドユーザーメッセージングSMSは共有 ID のいずれかを使用してメッセージを配信するよう努めます。
電話プールの共有ルートタブから編集を行い、共有ルートを有効化するだけです。
有効化後、SMS シミュレータで再送してみます。
送信することが出来ました。発信者 ID が NOTICE で送信されていますね。
上記ドキュメントでは送信者 ID は事前に送信者 ID を AWS サポートにリクエストする必要があると記載されています。
電話プールに使用出来る送信者 ID が存在しないために共有プールから使用する必要があったのかなと推測しています。
さいごに
本日は AWS End User Messaging でシミュレータータイプの US 電話番号から日本の電話番号へ SMS を送信使用する時に「NO_ORIGINATION_IDENTITIES_FOUND」が発生する場合の対処方法を紹介しました。
運用環境では国内ロングコードの購入や、おそらく発信者 ID のリクエストが必要と思われます。
というのも公式ドキュメント上は次のように記述がありまして、配信遅延が発生する可能性があります。
共有ルートはダウンストリームフィルタリングの増加の対象となる可能性があり、利用可能な場合は専用ルートが推奨されます。
今回の対処方法はあくまでも暫定的にテスト環境で SMS シミュレーターをすぐに使いたい場合の方法のひとつとして考えて頂ければと思います。