

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invio di messaggi RCS
<a name="rcs-send-message"></a>

AWS End User Messaging utilizza la stessa `SendTextMessage` API per la consegna tramite RCS e SMS. Il modo in cui il servizio indirizza il messaggio dipende dall'identità di origine specificata nella richiesta. Puoi inviare messaggi tramite un pool di telefoni (consigliato), a livello di account o direttamente tramite un AWS RCS Agent ARN.

Questa sezione spiega i tre modelli di invio, come interpretare le ricevute di consegna e fornisce esempi di codice. Per dettagli sull'invio permanente, sull'ordine di priorità dell'identità di origine e sul fallback automatico degli SMS, consulta. [Fallback da RCS a SMS utilizzando pool di telefoni](rcs-sms-fallback.md) Per dettagli sulla gestione degli agenti AWS RCS, consulta[Gestione degli agenti RCS](rcs-agents.md).

**Topics**
+ [Schemi di invio](#rcs-send-message-patterns)
+ [Invio permanente, ordine prioritario e fallback degli SMS](#rcs-send-message-fallback-summary)
+ [Esempi di codice](#rcs-send-message-examples)
+ [Richiesta dell'agente AI per l'invio di messaggi RCS](#rcs-send-message-ai-prompt)
+ [Gestione delle ricevute di consegna](#rcs-send-message-delivery-receipts)

## Schemi di invio
<a name="rcs-send-message-patterns"></a>

AWS End User Messaging supporta tre modelli per l'invio di messaggi RCS. Ogni pattern determina in che modo il servizio seleziona un'identità di origine e se è disponibile il fallback automatico degli SMS.


**Schemi di invio RCS**  

| Pattern | Come funziona | Ripiego via SMS | Quando utilizzare | 
| --- | --- | --- | --- | 
| Basato sul pool (consigliato) | Specificate un ID del pool come identità di origine. Il servizio seleziona l'identità migliore dal pool. | Sì | Tutti i casi d'uso. Fornisce la selezione automatica dei canali e il fallback degli SMS con un routing sicuro di conformità. | 
| A livello di account | Ometti l'identità di origine. Il servizio seleziona tra tutte le identità disponibili nel tuo account. | Sì | Configurazioni semplici con un unico caso d'uso. Non consigliato per account con più casi d'uso. | 
| Invio diretto | Specificare un ARN dell'agente AWS RCS come identità di origine. Il messaggio viene inviato solo tramite RCS. | No | RCS-or-nothing casi d'uso o quando gestisci il fallback degli SMS al di fuori della messaggistica con l'utente AWS finale. | 

### Invio basato sul pool (consigliato)
<a name="rcs-send-message-pool-based"></a>

L'invio basato su pool è l'approccio consigliato per tutti i casi d'uso RCS. Quando si specifica un ID del pool come identità di origine nella `SendTextMessage` richiesta, AWS End User Messaging seleziona l'identità di origine migliore dal pool in base alla destinazione, alla disponibilità del canale e alla cronologia di invio permanente.

Se il pool contiene sia un agente AWS RCS che numeri di telefono SMS, il servizio tenta prima la consegna RCS. Se la consegna RCS fallisce, il servizio torna automaticamente agli SMS utilizzando un numero di telefono dello stesso pool. Poiché tutte le identità del pool sono registrate per lo stesso caso d'uso, il messaggio di fallback viene sempre inviato da un numero appropriato.

Per dettagli sulla creazione e configurazione di pool con AWS RCS Agents, consulta. [Fallback da RCS a SMS utilizzando pool di telefoni](rcs-sms-fallback.md)

### Invio a livello di account
<a name="rcs-send-message-account-level"></a>

Quando ometti l'identità di origine dalla tua `SendTextMessage` richiesta, AWS End User Messaging seleziona un'identità di origine tra tutte le identità disponibili nel tuo account. Il servizio utilizza l'ordine di priorità dell'identità di origine per determinare quale identità utilizzare. Per informazioni dettagliate, vedi [Logica di fallback e ordine di priorità](rcs-sms-fallback.md#rcs-sms-fallback-logic).

**Importante**  
L'invio a livello di account crea un rischio di conformità se l'account contiene numeri di telefono registrati per diversi casi d'uso. Quando la consegna RCS fallisce e il servizio ricorre agli SMS, può selezionare un numero di telefono che non corrisponde al contenuto del messaggio. Ad esempio, un messaggio OTP potrebbe ricorrere a un numero verde registrato per i promemoria degli appuntamenti, violando i termini di registrazione per quel numero. Per evitare questo rischio, utilizzate l'invio basato su pool con un pool per caso d'uso. Per informazioni dettagliate, vedi [Rischio di conformità con l'invio a livello di account](rcs-sms-fallback.md#rcs-sms-fallback-compliance-risk).

### Invio diretto (solo RCS)
<a name="rcs-send-message-direct"></a>

Quando specifichi un ARN dell'agente AWS RCS come identità di origine nella richiesta AWS , End User Messaging invia `SendTextMessage` il messaggio solo tramite RCS. Non esiste un fallback automatico tramite SMS. Se il recapito RCS fallisce, il messaggio non viene riprovato su un altro canale.

Utilizza l'invio diretto quando:
+ Vuoi la RCS-or-nothing consegna. Il messaggio deve essere recapitato solo tramite RCS e preferisci che non venga recapitato tramite SMS.
+ È possibile gestire il fallback degli SMS al di fuori della messaggistica con l'utente AWS finale. L'applicazione gestisce la logica di fallback in modo indipendente, ad esempio rilevando un errore di consegna RCS e inviando un SMS separato tramite un sistema o un provider diverso.

**Nota**  
L'invio diretto ignora tutta la logica di fallback degli SMS. Se il dispositivo o l'operatore del destinatario non supporta RCS, il messaggio non viene recapitato. Nella maggior parte dei casi d'uso, l'invio in pool è consigliato perché fornisce un fallback automatico degli SMS senza costi aggiuntivi.

## Invio permanente, ordine prioritario e fallback degli SMS
<a name="rcs-send-message-fallback-summary"></a>

Quando si inviano messaggi tramite un pool o a livello di account, AWS End User Messaging utilizza l'invio permanente (un'ottimizzazione del routing di 25 ore), un ordine di priorità delle identità di origine e il fallback automatico degli SMS per selezionare il canale e l'identità migliori per ogni messaggio. Per informazioni complete sul funzionamento di questi meccanismi, tra cui il fallback automatico, le ricevute di consegna durante il fallback e le implicazioni relative alla fatturazione, consulta. [Fallback da RCS a SMS utilizzando pool di telefoni](rcs-sms-fallback.md)

## Esempi di codice
<a name="rcs-send-message-examples"></a>

I seguenti esempi in Python mostrano come inviare messaggi RCS utilizzando ciascuno dei tre modelli di invio. Tutti gli esempi utilizzano il `pinpoint-sms-voice-v2` client boto3 e l'API. `SendTextMessage`

### Esempio di invio basato su pool
<a name="rcs-send-message-example-pool"></a>

L'esempio seguente invia un messaggio tramite un pool di telefoni. Il servizio seleziona l'identità di origine migliore dal pool e ricorre automaticamente agli SMS se la consegna RCS non è possibile.

```
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']}")
```

### Esempio di invio a livello di account
<a name="rcs-send-message-example-account"></a>

L'esempio seguente invia un messaggio a livello di account omettendo l'identità di origine. Il servizio seleziona un'identità tra tutte le identità disponibili nell'account utilizzando l'ordine di priorità.

```
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']}")
```

**Importante**  
Se il tuo account contiene numeri di telefono registrati per diversi casi d'uso, l'invio a livello di account può indirizzare il fallback degli SMS verso un numero che non corrisponde al contenuto del messaggio. Utilizza l'invio basato su pool con un pool per caso d'uso per evitare rischi di conformità.

### Esempio di invio diretto
<a name="rcs-send-message-example-direct"></a>

L'esempio seguente invia un messaggio direttamente tramite un ARN di AWS RCS Agent. Il messaggio viene recapitato solo tramite RCS, senza fallback via 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']}")
```

**Nota**  
Se il dispositivo o l'operatore del destinatario non supporta RCS, il messaggio non viene recapitato. Non viene tentato alcun tentativo di fallback via SMS. Utilizza questo schema solo quando desideri la RCS-or-nothing consegna o quando gestisci il fallback degli SMS al di fuori della messaggistica con l'utente AWS finale.

## Richiesta dell'agente AI per l'invio di messaggi RCS
<a name="rcs-send-message-ai-prompt"></a>

Se utilizzi un assistente di codifica AI generativo o un agente AI, puoi utilizzare il seguente prompt per ottenere assistenza nell'invio di messaggi RCS utilizzando la AWS CLI o l'SDK.

**Nota**  
Copia il seguente prompt e incollalo nel tuo agente AI o assistente di codifica:  

```
## 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
```

## Gestione delle ricevute di consegna
<a name="rcs-send-message-delivery-receipts"></a>

AWS End User Messaging fornisce le ricevute di consegna per i messaggi RCS tramite Amazon EventBridge e le destinazioni degli eventi con set di configurazione. Le ricevute di consegna indicano lo stato finale del messaggio e il canale utilizzato per la consegna. Per informazioni su come configurare le destinazioni degli eventi per acquisire le ricevute di consegna e altri eventi relativi ai messaggi, consulta. [Destinazioni degli eventi negli SMS di messaggistica per l'utente AWS finale](configuration-sets-event-destinations.md)

### Valori dello stato della consegna
<a name="rcs-send-message-delivery-status"></a>

I seguenti valori dello stato di consegna si applicano ai messaggi RCS:

CONSEGNATO  
Il messaggio è stato recapitato correttamente al dispositivo del destinatario.

IN ATTESA  
Il messaggio è stato accettato dall'infrastruttura RCS ma la conferma di consegna non è stata ancora ricevuta. Il messaggio potrebbe ancora essere recapitato.

SCADUTO  
Il messaggio non è stato recapitato entro il periodo di tempo consentito. Per i messaggi RCS con fallback SMS, questo stato si applica al tentativo RCS prima che si verifichi il fallback.

NON CONSEGNABILE  
Il messaggio non può essere recapitato. Ciò può verificarsi quando il dispositivo del destinatario è permanentemente irraggiungibile o il numero di telefono non è valido.

REJECTED  
Il messaggio è stato rifiutato dall'infrastruttura o dal gestore RCS. Ciò può verificarsi a causa di violazioni delle politiche sui contenuti o di filtri a livello di operatore.

### Attribuzione del canale
<a name="rcs-send-message-channel-attribution"></a>

Le ricevute di consegna includono l'attribuzione del canale che indica se il messaggio è stato recapitato tramite RCS o SMS. Questo è importante per comprendere il mix di spedizioni e ai fini della fatturazione.
+ Quando un messaggio viene recapitato tramite RCS, la ricevuta di consegna indica RCS come canale di consegna e include l'identità dell'agente AWS RCS.
+ Quando un messaggio diventa SMS, la ricevuta di consegna indica SMS come canale di consegna e include l'identità del numero di telefono SMS utilizzato per la consegna.
+ Quando un invio diretto (AWS RCS Agent ARN) fallisce, la ricevuta di consegna indica RCS come canale tentato con uno stato di errore. Non viene generata alcuna ricevuta di fallback via SMS.

Per i dettagli sulle CloudWatch metriche RCS e sul monitoraggio dei modelli di distribuzione, vedere. [CloudWatch Metriche e monitoraggio RCS](rcs-monitoring.md) Per informazioni su come il canale di consegna influisce sulla fatturazione, consulta. [Modello di fatturazione e prezzo RCS](rcs-billing.md)