複数セグメントのSMSステータス処理
長いSMSメッセージは、通信事業者のネットワークによって自動的に複数のセグメントに分割され、受信者の端末で再構成されるため、全文が1つのメッセージとして表示されます。このドキュメントでは、Messages APIがマルチセグメントSMSの配信確認(DLR)をどのように処理するか、およびそれがステータスコールバックにどのような影響を与えるかについて説明します。
マルチセグメントSMSでは、各セグメントが通信事業者のネットワークを介して個別に配信されるため、処理が複雑になります。ほとんどの場合、すべてのセグメントは短時間のうちに正常に届きますが、一部が配信に失敗することもあります。
配信レポートを提供するため、Messages API は、最終的なステータスのコールバックを送信する前に、すべてのセグメントの配信確認をまとめて処理します。
その論理は次のとおりです:
- このAPIは、最初のセグメントの配信確認を受信してから最大5分間待機します。
- この期間中、すべての区間について配送受領証を収集します。
- 各セグメントの結果の内訳を記載した、単一の集約ステータスコールバックが送信されます。
メッセージは次のようにマークされています。 rejected 以下のいずれかが発生した場合:
- 少なくとも1つのセグメントが拒否されました。
- すべての区間について、最初の配達受領から5分以内に配達完了と確認されるわけではありません。
集約ステータスのコールバック
マルチセグメントSMSのステータスコールバックは、最初に受信されたセグメントだけでなく、メッセージ全体の結果を表します。これにより、報告されるステータスが、メッセージ全体がエンドユーザーに正常に配信されたかどうかを確実に反映するようになります。
集約ステータスコールバックには、以下の機能があります:
- そのメッセージに対する単一の統一されたコールバック。
- 配送結果のセグメント別内訳。
- 長いメッセージに対する「配信済み」および「配信不可」のステータスの精度が向上しました。
ステータスコールバックの例
コピー
{
"message_uuid": "aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab",
"to": "447700900000",
"from": "447700900001",
"timestamp": "2025-02-03T12:14:25Z",
"status": "delivered",
"channel": "sms",
"destination": {
"network_code": "12345"
},
"sms": {
"total_count": "2",
"segments": [
{
"timestamp": "2025-02-03T12:14:25Z",
"status": "delivered"
},
{
"timestamp": "2025-02-03T12:14:58Z",
"status": "delivered"
}
]
}
}