

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# RCS メッセージの送信
<a name="rcs-send-message"></a>

AWS エンドユーザーメッセージングは、RCS と SMS の両方の配信に同じ `SendTextMessage` API を使用します。サービスがメッセージをルーティングする方法は、リクエストで指定した送信元 ID によって異なります。電話プール (推奨）、アカウントレベル、または AWS RCS エージェント ARN から直接メッセージを送信できます。

このセクションでは、3 つの送信パターン、配信受信の解釈方法、コード例について説明します。スティッキー送信、送信元 ID の優先順位、自動 SMS フォールバックの詳細については、「」を参照してください[電話プールを使用した RCS から SMS へのフォールバック](rcs-sms-fallback.md)。AWS RCS エージェントの管理の詳細については、「」を参照してください[RCS エージェントの管理](rcs-agents.md)。

**Topics**
+ [送信パターン](#rcs-send-message-patterns)
+ [スティッキー送信、優先順位、SMS フォールバック](#rcs-send-message-fallback-summary)
+ [コードの例](#rcs-send-message-examples)
+ [RCS メッセージを送信するための AI エージェントプロンプト](#rcs-send-message-ai-prompt)
+ [配信受信処理](#rcs-send-message-delivery-receipts)

## 送信パターン
<a name="rcs-send-message-patterns"></a>

AWS エンドユーザーメッセージングは、RCS メッセージを送信するための 3 つのパターンをサポートしています。各パターンは、サービスが発信元 ID を選択する方法と、自動 SMS フォールバックが使用可能かどうかを決定します。


**RCS 送信パターン**  

| パターン | 仕組み | SMS フォールバック | どのようなときに使うか | 
| --- | --- | --- | --- | 
| プールベース (推奨) | プール ID を発信元 ID として指定します。サービスはプールから最適な ID を選択します。 | はい | すべてのユースケース。コンプライアンスセーフなルーティングによる自動チャネル選択と SMS フォールバックを提供します。 | 
| アカウントレベル | 発信元 ID を省略します。サービスは、アカウントで使用可能なすべての ID から選択します。 | はい | 単一のユースケースを使用したシンプルなセットアップ。複数のユースケースを持つアカウントにはお勧めしません。 | 
| 直接送信 | AWS RCS エージェント ARN を送信元 ID として指定します。メッセージは RCS 経由でのみ送信されます。 | いいえ | RCS-or-nothingユースケース、または AWS エンドユーザーメッセージングの外部で SMS フォールバックを管理する場合。 | 

### プールベースの送信 (推奨)
<a name="rcs-send-message-pool-based"></a>

プールベースの送信は、すべての RCS ユースケースに推奨されるアプローチです。プール ID を`SendTextMessage`リクエストの送信元 ID として指定すると、 AWS End User Messaging は送信先、チャネルの可用性、スティッキー送信履歴に基づいてプールから最適な送信元 ID を選択します。

プールに AWS RCS エージェントと SMS 電話番号の両方が含まれている場合、サービスは最初に RCS 配信を試みます。RCS 配信が失敗した場合、サービスは同じプールの電話番号を使用して SMS に自動的にフォールバックします。プール内のすべての ID が同じユースケースに登録されるため、フォールバックメッセージは常に適切な番号から送信されます。

AWS RCS エージェントを使用したプールの作成と設定の詳細については、「」を参照してください[電話プールを使用した RCS から SMS へのフォールバック](rcs-sms-fallback.md)。

### アカウントレベルの送信
<a name="rcs-send-message-account-level"></a>

`SendTextMessage` リクエストから発信元 ID を省略すると、 AWS End User Messaging はアカウントで使用可能なすべての ID から発信元 ID を選択します。サービスは、送信元 ID の優先順位を使用して、使用する ID を決定します。詳細については、「[フォールバックロジックと優先順位](rcs-sms-fallback.md#rcs-sms-fallback-logic)」を参照してください。

**重要**  
アカウントレベルの送信では、アカウントにさまざまなユースケースに登録された電話番号が含まれている場合、コンプライアンスリスクが発生します。RCS 配信が失敗し、サービスが SMS にフォールバックすると、メッセージの内容と一致しない電話番号を選択する場合があります。たとえば、OTP メッセージは、予約リマインダーに登録されている通話料無料番号にフォールバックし、その番号の登録条件に違反する可能性があります。このリスクを回避するには、ユースケースごとに 1 つのプールでプールベースの送信を使用します。詳細については、「[アカウントレベルの送信によるコンプライアンスリスク](rcs-sms-fallback.md#rcs-sms-fallback-compliance-risk)」を参照してください。

### 直接送信 (RCS のみ)
<a name="rcs-send-message-direct"></a>

AWS RCS エージェント ARN を`SendTextMessage`リクエストの送信元 ID として指定すると、 AWS End User Messaging は RCS 経由でのみメッセージを送信します。自動 SMS フォールバックはありません。RCS 配信が失敗した場合、メッセージは別のチャネルで再試行されません。

次の場合は、直接送信を使用します。
+ RCS-or-nothing 配信が必要です。メッセージは RCS 経由でのみ配信する必要があり、SMS 配信よりも配信しないことを好みます。
+ SMS フォールバックは AWS 、エンドユーザーメッセージングの外部で管理します。アプリケーションはフォールバックロジックを個別に処理します。例えば、RCS 配信の失敗を検出し、別のシステムまたはプロバイダーを介して別の SMS を送信できます。

**注記**  
直接送信は、すべての SMS フォールバックロジックをバイパスします。受信者のデバイスまたはキャリアが RCS をサポートしていない場合、メッセージは配信されません。ほとんどのユースケースでは、追加コストなしで自動 SMS フォールバックを提供するため、プールベースの送信が推奨されます。

## スティッキー送信、優先順位、SMS フォールバック
<a name="rcs-send-message-fallback-summary"></a>

プールまたはアカウントレベルでメッセージを送信すると、 AWS End User Messaging はスティッキー送信 (25 時間のルーティング最適化）、発信元 ID の優先順位、自動 SMS フォールバックを使用して、各メッセージに最適なチャネルと ID を選択します。自動フォールバック、フォールバック中の配信受信、請求への影響など、これらのメカニズムの仕組みの詳細については、「」を参照してください[電話プールを使用した RCS から SMS へのフォールバック](rcs-sms-fallback.md)。

## コードの例
<a name="rcs-send-message-examples"></a>

次の Python の例は、3 つの各送信パターンを使用して RCS メッセージを送信する方法を示しています。すべての例では、boto3 `pinpoint-sms-voice-v2`クライアントと `SendTextMessage` API を使用します。

### プールベースの送信の例
<a name="rcs-send-message-example-pool"></a>

次の の例では、電話プールを介してメッセージを送信します。サービスはプールから最適な送信元 ID を選択し、RCS 配信が不可能な場合は自動的に SMS にフォールバックします。

```
import boto3

client = boto3.client('pinpoint-sms-voice-v2')

response = client.send_text_message(
    DestinationPhoneNumber='+12065550100',
    OriginationIdentity='pool-a1b2c3d4e5f6g7h8i',
    MessageBody='Your appointment is confirmed for tomorrow at 2:00 PM.',
    MessageType='TRANSACTIONAL'
)

print(f"Message ID: {response['MessageId']}")
```

### アカウントレベルの送信例
<a name="rcs-send-message-example-account"></a>

次の例では、発信元 ID を省略して、アカウントレベルでメッセージを送信します。サービスは、優先度の順序を使用して、アカウントで使用可能なすべての ID から ID を選択します。

```
import boto3

client = boto3.client('pinpoint-sms-voice-v2')

response = client.send_text_message(
    DestinationPhoneNumber='+12065550100',
    MessageBody='Your verification code is 123456.',
    MessageType='TRANSACTIONAL'
)

print(f"Message ID: {response['MessageId']}")
```

**重要**  
アカウントにさまざまなユースケースに登録された電話番号が含まれている場合、アカウントレベルの送信は、メッセージの内容と一致しない番号を通じて SMS フォールバックをルーティングすることがあります。コンプライアンスリスクを回避するために、ユースケースごとに 1 つのプールでプールベースの送信を使用します。

### 直接送信の例
<a name="rcs-send-message-example-direct"></a>

次の の例では、AWS RCS エージェント ARN を介して直接メッセージを送信します。メッセージは RCS 経由でのみ配信され、SMS フォールバックはありません。

```
import boto3

client = boto3.client('pinpoint-sms-voice-v2')

response = client.send_text_message(
    DestinationPhoneNumber='+12065550100',
    OriginationIdentity='arn:aws:sms-voice:us-east-1:123456789012:rcs-agent/rcs-a1b2c3d4',
    MessageBody='Welcome to our RCS channel! Reply HELP for assistance.'
)

print(f"Message ID: {response['MessageId']}")
```

**注記**  
受信者のデバイスまたはキャリアが RCS をサポートしていない場合、メッセージは配信されません。SMS フォールバックは試行されません。このパターンは、RCS-or-nothing配信しない場合、または AWS エンドユーザーメッセージングの外部で SMS フォールバックを管理する場合にのみ使用します。

## RCS メッセージを送信するための AI エージェントプロンプト
<a name="rcs-send-message-ai-prompt"></a>

生成 AI コーディングアシスタントまたは AI エージェントを使用する場合は、次のプロンプトを使用して CLI または SDK AWS を使用して RCS メッセージを送信するのに役立ちます。

**注記**  
次のプロンプトをコピーし、AI エージェントまたはコーディングアシスタントに貼り付けます。  

```
## RCS Messaging Assistant Prompt

Help me send RCS messages using AWS End User Messaging SMS with the
`pinpoint-sms-voice-v2` service. Show me exact CLI commands and Python/boto3
examples. Ask me for my details before generating any commands.

**Important rules for generating commands:**
- The API is `send-text-message` — the same command used for SMS. There is
  NO separate RCS send API.
- There is NO `describe-messages` API. Do not generate it.
- The boto3 method is `send_text_message` on the
  `pinpoint-sms-voice-v2` client.
- Use the term "testing" — NOT "sandbox".

**Prerequisites:** I have an existing RCS agent (created via the setup process)
and a verified test device.

### Pattern 1: Direct RCS sending (simplest, good for testing)

Send directly through my RCS Agent ARN. RCS-only delivery, no SMS fallback.
If the recipient's device doesn't support RCS, the message is not delivered.

CLI: `send-text-message --destination-phone-number <E.164>
--origination-identity <agent-arn> --message-body "<text>"
--message-type <TRANSACTIONAL|PROMOTIONAL>`

Returns `MessageId`.

### Pattern 2: Pool-based sending (recommended for production)

Send through a phone pool containing my RCS agent (and optionally SMS phone
numbers for fallback). The service tries RCS first, then falls back to SMS
asynchronously if no RCS signal within 25 seconds. This is NOT synchronous
fallback — the SMS is sent as a separate attempt after the timeout.

To set up a pool:
- `create-pool --origination-identity <rcs-agent-id> --message-type TRANSACTIONAL` → returns `PoolId`
- Optionally add SMS numbers: `associate-origination-identity --pool-id <id>
  --origination-identity <phone-number-id>`

CLI: `send-text-message --destination-phone-number <E.164>
--origination-identity <pool-id> --message-body "<text>"
--message-type <TRANSACTIONAL|PROMOTIONAL>`

### Pattern 3: Account-level sending

Send without specifying `--origination-identity`. The service auto-selects
the best identity from the account.

CLI: `send-text-message --destination-phone-number <E.164>
--message-body "<text>" --message-type <TRANSACTIONAL|PROMOTIONAL>`

**Compliance warning:** If the account has multiple RCS agents, SMS numbers,
or different use cases, the service picks an identity automatically — which
may not be the intended one. Use pool-based or direct sending for explicit
control over which identity is used.

### Delivery verification

- For testing: check the test device directly — the message appears from
  the branded RCS agent.
- For production: configure event destinations BEFORE sending using
  `create-event-destination` (SNS, CloudWatch Logs, or Firehose). Event
  destinations do not retroactively capture events for already-sent messages.
- CloudWatch metrics in `AWS/SMSVoice` namespace provide aggregate delivery
  statistics.

### Behavioral notes

- Sticky sending: the service remembers the last successful identity per
  destination number for 25 hours.
- Pool-based sending is recommended for production because it provides
  automatic SMS fallback.
- All three patterns use the same `send-text-message` API — the only
  difference is what you pass (or don't pass) as `--origination-identity`.

---

**Before generating commands, ask me for:**
- Which sending pattern I want to use (direct, pool-based, or account-level)
- My RCS Agent ARN
- My pool ID (if using pool-based sending)
- Destination phone number in E.164 format
- Message type (TRANSACTIONAL or PROMOTIONAL)
- Message text
```

## 配信受信処理
<a name="rcs-send-message-delivery-receipts"></a>

AWS エンドユーザーメッセージングは、Amazon EventBridge および設定セットのイベント送信先を介して RCS メッセージの配信受信を提供します。配信受信は、メッセージの最終ステータスと配信に使用されたチャネルを示します。配信受信やその他のメッセージイベントをキャプチャするようにイベント送信先を設定する方法については、「」を参照してください[AWS エンドユーザーメッセージング SMS のイベント送信先](configuration-sets-event-destinations.md)。

### 配信ステータス値
<a name="rcs-send-message-delivery-status"></a>

RCS メッセージには、次の配信ステータス値が適用されます。

配信済み  
メッセージは受信者のデバイスに正常に配信されました。

保留中  
メッセージは RCS インフラストラクチャによって受け入れられましたが、配信確認はまだ受信されていません。メッセージは引き続き配信される場合があります。

EXPIRED  
メッセージは、許可された時間枠内に配信されませんでした。SMS フォールバックを含む RCS メッセージの場合、このステータスはフォールバックが発生する前の RCS 試行に適用されます。

配信不能  
メッセージを配信できませんでした。これは、受信者のデバイスに永続的にアクセスできない場合、または電話番号が無効である場合に発生する可能性があります。

拒否  
メッセージは RCS インフラストラクチャまたはキャリアによって拒否されました。これは、コンテンツポリシー違反またはキャリアレベルのフィルタリングが原因で発生する可能性があります。

### チャネル属性
<a name="rcs-send-message-channel-attribution"></a>

配信受信には、メッセージが RCS または SMS を介して配信されたかどうかを示すチャネル属性が含まれます。これは、配信ミックスを理解し、請求の目的で重要です。
+ メッセージが RCS 経由で配信されると、配信受信は RCS を配信チャネルとして示し、AWS RCS エージェント ID を含めます。
+ メッセージが SMS にフォールバックすると、配信受信は SMS を配信チャネルとして示し、配信に使用された SMS 電話番号 ID を含めます。
+ 直接送信 (AWS RCS エージェント ARN) が失敗すると、配信受信は RCS を失敗ステータスの試行済みチャネルとして示します。SMS フォールバック受信は生成されません。

RCS CloudWatch メトリクスとモニタリング配信パターンの詳細については、「」を参照してください[RCS CloudWatch メトリクスとモニタリング](rcs-monitoring.md)。配信チャネルが請求に与える影響については、「」を参照してください[RCS の請求と料金モデル](rcs-billing.md)。