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
AWSLa 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
Pour consommer les messages RCS entrants, vous devez configurer une rubrique SNS de messagerie bidirectionnelle sur votre agent AWS RCS. Two-way la messagerie 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 RCS-capable appareil.
-
AWSLa 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).
-
AWSLa 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.
Outre les SMS, les clients peuvent envoyer du contenu multimédia (images, vidéos, fichiers audio et documents) à votre agent AWS RCS. Lorsque vous configurez le stockage multimédia entrant, AWS End User Messaging enregistre le contenu multimédia dans votre compartiment Amazon S3 et publie une notification sur votre rubrique SNS avec l'emplacement du fichier et les métadonnées. Pour de plus amples informations, veuillez consulter Réception de contenus RCS entrants.
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. Two-way la messagerie 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 votreCompte 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 votreCompte 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
AWSLa messagerie utilisateur final prend en charge les types de messages RCS entrants suivants. Lorsqu'un client envoie un message à votre agent AWS RCS, la messagerie destinée à l'utilisateur AWS final envoie une notification à votre rubrique Amazon SNS configurée pour traitement.
-
Messages texte. Le texte du message est envoyé dans le corps de notification SNS.
-
Messages multimédias (images, vidéos, fichiers audio et documents). Lorsque vous configurez le stockage multimédia entrant, AWS End User Messaging enregistre le fichier multimédia dans votre compartiment Amazon S3 et inclut l'emplacement S3 dans la notification SNS. Pour de plus amples informations, veuillez consulter Réception de contenus RCS entrants.
-
Partage de position et réponses aux suggestions. Lorsqu'un client partage une position ou choisit une suggestion, le contenu est diffusé directement dans le corps de notification du SNS.
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 identifiants RCS for Business associés (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.