Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Réception de messages RCS entrants
AWS La messagerie utilisateur final prend en charge la messagerie RCS bidirectionnelle, ce qui vous permet de recevoir des SMS de vos clients. Les messages RCS entrants suivent le même schéma que les SMS bidirectionnels : les messages entrants sont envoyés à une rubrique Amazon SNS que vous configurez, et vous les traitez à l'aide des fonctions Lambda ou d'autres abonnés SNS.
Important
Afin de consommer les messages RCS entrants, vous devez configurer une rubrique SNS de messagerie bidirectionnelle sur votre agent AWS RCS. La messagerie bidirectionnelle est désactivée par défaut lorsque vous créez un agent. Une fois que vous l'avez activée et configuré une rubrique SNS, les messages entrants sont envoyés à cette rubrique. Les clients sont facturés pour tous les messages RCS entrants au tarif standard.
Cette section explique comment fonctionne la messagerie RCS bidirectionnelle, comment l'activer pour votre agent AWS RCS, le format de charge utile des messages entrants et comment gérer les mots clés. Pour plus d'informations sur la gestion des agents AWS RCS, consultezGestion des agents RCS. Pour plus d'informations sur l'envoi de messages RCS, consultezEnvoi de messages RCS.
Comment fonctionne la messagerie RCS bidirectionnelle
Lorsqu'un client envoie un message texte à votre agent AWS RCS, AWS End User Messaging reçoit le message et le publie sur une rubrique Amazon SNS que vous désignez. À partir de là, vous pouvez traiter le message en utilisant n'importe quel abonné SNS, tel qu'une fonction Lambda, une file d'attente Amazon SQS ou un point de terminaison. HTTP/HTTPS
Le flux de messagerie RCS bidirectionnel fonctionne comme suit :
-
Un client envoie un message texte à votre agent AWS RCS depuis son appareil compatible RCS.
-
AWS La messagerie de l'utilisateur final reçoit le message entrant et l'évalue par rapport aux mots clés que vous avez configurés. Si le message correspond à un mot clé, le service envoie la réponse automatique configurée (le cas échéant).
-
AWS La messagerie utilisateur final publie la charge utile du message sous forme d'objet JSON dans la rubrique Amazon SNS que vous avez configurée pour la messagerie bidirectionnelle sur l'agent AWS RCS.
-
Vos abonnés SNS (par exemple, une fonction Lambda) reçoivent la charge utile du message et le traitent conformément à la logique de votre application.
Le RCS dans AWS la messagerie utilisateur final prend actuellement en charge les messages texte entrants. Si un client envoie un message multimédia (tel qu'une image ou une vidéo) à votre agent AWS RCS, le message est enregistré avec le statut IGNORÉ. Votre application ne reçoit pas de messages multimédia via la rubrique SNS.
Configuration de votre destination de messagerie bidirectionnelle
Pour recevoir et traiter les messages RCS entrants dans votre application, vous devez activer la messagerie bidirectionnelle et configurer une destination sur votre agent AWS RCS. La messagerie bidirectionnelle est désactivée par défaut. Lorsque vous l'activez, vous spécifiez une rubrique Amazon SNS dans laquelle AWS la messagerie utilisateur final envoie les messages entrants. Vous pouvez configurer la destination à l'aide de la console de messagerie utilisateur AWS final ou de l'API.
Autorisations des rubriques SNS
La rubrique Amazon SNS que vous configurez pour la messagerie RCS bidirectionnelle doit autoriser l'utilisateur AWS final à y publier des messages. Deux options s'offrent à vous pour accorder l'accès.
Option 1 : utiliser un rôle IAM
Créez un rôle IAM que AWS la messagerie utilisateur final peut assumer pour publier des messages sur votre rubrique SNS. Le rôle nécessite à la fois une politique de confiance et une politique d'autorisation.
Voici la politique de confiance pour le rôle IAM. accountIdRemplacez-le par l'identifiant unique de votre Compte AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }
Voici la politique d'autorisation pour le rôle IAM. Le SMSVoiceAllowSNSPublish Sid permet de publier sur des rubriques Amazon SNS et le SMSVoiceAllowEncryptedSNSTopics Sid est facultatif pour les rubriques Amazon SNS chiffrées. Effectuez les modifications suivantes :
-
partitionRemplacez-la par la AWS partition dans laquelle vous utilisez AWS la messagerie utilisateur final. -
regionRemplacez-le par Région AWS celui dans lequel vous utilisez AWS la messagerie de l'utilisateur final. -
accountIdRemplacez-le par l'identifiant unique de votre Compte AWS. -
snsTopicNameRemplacez-le par le nom de la rubrique Amazon SNS qui reçoit les messages entrants.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoiceAllowSNSPublish", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:partition:sns:region:accountId:snsTopicName", "Condition": { "StringEquals": { "aws:ResourceAccount": "accountId" } } }, { "Sid": "SMSVoiceAllowEncryptedSNSTopics", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:partition:sns:region:accountId:snsTopicName", "aws:CalledViaLast": "sns.amazonaws.com" } } } ] }
Option 2 : Utiliser une politique de rubrique SNS
Vous pouvez également ajouter une déclaration de politique directement à la rubrique SNS qui autorise AWS la messagerie utilisateur final à publier des messages. snsTopicArnRemplacez-le par l'ARN de votre rubrique SNS.
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }
Format de charge utile des messages entrants
Lorsque votre agent AWS RCS reçoit un message texte entrant, AWS End User Messaging publie une charge utile JSON dans la rubrique Amazon SNS configurée. La charge utile des messages entrants RCS utilise le même format que la messagerie bidirectionnelle SMS :
{ "originationNumber": "+14255550182", "destinationNumber": "+12125550101", "messageKeyword": "JOIN", "messageBody": "EXAMPLE", "inboundMessageId": "cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
La charge utile des messages entrants contient les champs suivants :
| Champ | Description |
|---|---|
|
Le numéro de téléphone qui a envoyé le message entrant (le numéro de téléphone du client). |
|
L'identifiant de l'agent AWS RCS qui a reçu le message. |
|
Le mot clé enregistré qui correspond au message entrant, le cas échéant. Les mots clés sont évalués par rapport au début du corps du message. |
|
Le contenu textuel du message entrant. |
|
Identifiant unique pour le message entrant. |
|
Identifiant unique du message sortant auquel le client répond, si le message entrant est une réponse à un message sortant précédent. |
Types de messages pris en charge
Le RCS dans AWS la messagerie utilisateur final prend actuellement en charge la réception de messages texte entrants. Lorsqu'un client envoie un message texte à votre agent AWS RCS, le message est envoyé à votre rubrique Amazon SNS configurée pour être traité.
Si un client envoie un message multimédia (tel qu'une image, une vidéo ou un fichier) à votre agent AWS RCS, AWS End User Messaging enregistre le message avec le statut IGNORÉ. Les messages multimédias ne sont pas transmis à votre rubrique SNS et ne sont pas traités par votre application. Aucune erreur n'est renvoyée à l'expéditeur.
Gestion des mots clés pour RCS
Les mots clés vous permettent de configurer des réponses automatiques lorsque les clients envoient des mots ou des phrases spécifiques à votre agent AWS RCS. Lorsqu'un message entrant correspond à un mot clé configuré, AWS la messagerie utilisateur final renvoie le message de réponse automatique associé au client.
Pour RCS, les mots clés sont configurés sur l'agent AWS RCS et s'appliquent à tous les RCS for Business associés IDs (agent de test et agents de lancement nationaux). Vous pouvez configurer jusqu'à 30 mots clés par agent AWS RCS.
Pour gérer les mots clés de votre agent AWS RCS, utilisez la console de messagerie utilisateur AWS final ou l'API. Pour obtenir des informations générales sur la gestion des mots clés, consultezMots clés dans les SMS de messagerie destinés aux utilisateurs AWS finaux.
Note
Les mots clés configurés sur l'agent AWS RCS s'appliquent à tous les enregistrements associés. Vous ne pouvez pas définir des mots clés différents pour votre agent de test et les agents de lancement de votre pays indépendamment.
Traitement des messages entrants avec Lambda
Un modèle courant pour le traitement des messages RCS entrants consiste à abonner une fonction Lambda à la rubrique Amazon SNS configurée pour la messagerie bidirectionnelle. La fonction Lambda reçoit la charge utile des messages entrants et peut implémenter la logique de votre application, par exemple en répondant aux demandes des clients, en traitant des commandes ou en acheminant des messages vers d'autres systèmes.
L'exemple Python suivant montre une fonction Lambda qui traite les messages RCS entrants et envoie une réponse à l'aide de l'API : SendTextMessage
import json import boto3 sms_client = boto3.client('pinpoint-sms-voice-v2') def lambda_handler(event, context): # Parse the SNS message for record in event['Records']: sns_message = json.loads(record['Sns']['Message']) origination_number = sns_message['originationNumber'] message_body = sns_message['messageBody'] keyword = sns_message.get('messageKeyword', '') print(f"Received message from {origination_number}: {message_body}") # Process the message and determine a response if keyword.upper() == 'HELP': response_text = 'Available commands: HELP, STATUS, STOP' elif keyword.upper() == 'STATUS': response_text = 'Your account is active. No action needed.' else: response_text = ( f'Thanks for your message. ' f'Reply HELP for available commands.' ) # Send a response back to the customer try: response = sms_client.send_text_message( DestinationPhoneNumber=origination_number, OriginationIdentity='pool-a1b2c3d4e5f6g7h8i', MessageBody=response_text, MessageType='TRANSACTIONAL' ) print(f"Response sent. Message ID: {response['MessageId']}") except Exception as e: print(f"Failed to send response: {str(e)}") return {'statusCode': 200}
Dans cet exemple, la fonction Lambda :
-
Analyse la charge utile des messages entrants provenant de l'événement SNS.
-
Vérifie le
messageKeywordchamp pour déterminer l'intention du client. -
Envoie une réponse à l'aide de l'envoi basé sur le pool (recommandé) via l'
SendTextMessageAPI. Le pool gère automatiquement la sélection des canaux.
Note
Lorsque vous envoyez des réponses à des messages entrants, utilisez l'envoi basé sur le pool pour garantir le remplacement automatique des SMS si l'appareil du client ne prend plus en charge le RCS. Pour plus de détails sur les modèles d'envoi, consultezEnvoi de messages RCS.
Bonnes pratiques pour la messagerie RCS entrante
Suivez ces bonnes pratiques lors de la mise en œuvre de la messagerie RCS bidirectionnelle :
-
Implémentez la gestion des erreurs : votre fonction Lambda ou votre abonné SNS doit gérer les erreurs correctement. Si votre fonction ne parvient pas à traiter un message, configurez une file d'attente de lettres mortes (DLQ) sur l'abonnement SNS afin de capturer les messages non traités pour une nouvelle tentative ultérieure.
-
Envoyer des réponses de secours : lorsque votre application reçoit un message qu'elle ne peut pas traiter, envoyez une réponse de secours utile plutôt que de laisser le client sans réponse. Par exemple, répondez avec les commandes disponibles ou dirigez le client vers un autre canal d'assistance.
-
Utiliser l'envoi basé sur le pool pour les réponses : lorsque vous envoyez des réponses à des messages entrants, utilisez l'envoi basé sur le pool pour garantir un retour automatique des SMS. Cela garantit que votre réponse parviendra au client même si son appareil ne prend plus en charge le RCS.
-
Surveillez le traitement des messages : utilisez CloudWatch les métriques Amazon pour surveiller le volume de vos messages entrants et le taux de réussite du traitement. Configurez des alarmes pour des modèles inhabituels, tels qu'une augmentation soudaine du nombre de messages entrants ou un taux élevé d'échecs de traitement. Pour plus de détails sur les métriques RCS, voirCloudWatch Métriques et surveillance du RCS.
-
Gérez les réponses aux mots clés de manière cohérente : assurez-vous que les réponses automatiques aux mots clés et les réponses programmatiques de votre application n'entrent pas en conflit. Si vous configurez une réponse automatique par mot clé pour un mot clé spécifique, votre fonction Lambda reçoit toujours le message. Concevez votre fonction de manière à éviter d'envoyer une double réponse pour les mots clés pour lesquels les réponses automatiques sont déjà configurées.