複数セグメントの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" 
         } 
      ] 
   } 
} 

詳細情報

SMSステータスのコールバック