Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerima pesan RCS masuk
AWS End User Messaging mendukung pesan RCS dua arah, memungkinkan Anda menerima pesan teks dari pelanggan Anda. Pesan RCS masuk mengikuti pola yang sama seperti pesan dua arah SMS: pesan masuk dikirim ke topik Amazon SNS yang Anda konfigurasikan, dan Anda memprosesnya menggunakan fungsi Lambda atau pelanggan SNS lainnya.
penting
Untuk menggunakan pesan RCS masuk, Anda harus menyiapkan topik SNS perpesanan dua arah di Agen AWS RCS Anda. Pesan dua arah dinonaktifkan secara default saat Anda membuat agen. Setelah Anda mengaktifkannya dan mengonfigurasi topik SNS, pesan masuk dikirim ke topik tersebut. Pelanggan dikenakan biaya untuk semua pesan RCS masuk dengan tarif standar.
Bagian ini menjelaskan cara kerja pesan RCS dua arah, cara mengaktifkannya untuk AWS RCS Agent Anda, format payload pesan masuk, dan cara mengelola kata kunci. Untuk informasi tentang mengelola Agen AWS RCS, lihatMengelola agen RCS. Untuk informasi tentang mengirim pesan RCS, lihatMengirim pesan RCS.
Topik
Cara kerja pesan RCS dua arah
Saat pelanggan mengirim pesan teks ke Agen AWS RCS Anda, Pesan Pengguna AWS Akhir menerima pesan tersebut dan menerbitkannya ke topik Amazon SNS yang Anda tentukan. Dari sana, Anda dapat memproses pesan menggunakan pelanggan SNS apa pun, seperti fungsi Lambda, antrian Amazon SQS, atau titik akhir. HTTP/HTTPS
Alur pesan RCS dua arah berfungsi sebagai berikut:
-
Pelanggan mengirimkan pesan teks ke Agen AWS RCS Anda dari perangkat berkemampuan RCS mereka.
-
AWS End User Messaging menerima pesan masuk dan mengevaluasinya terhadap kata kunci yang dikonfigurasi. Jika pesan cocok dengan kata kunci, layanan akan mengirimkan respons otomatis yang dikonfigurasi (jika ada).
-
AWS Pesan Pengguna Akhir menerbitkan payload pesan sebagai objek JSON ke topik Amazon SNS yang Anda konfigurasikan untuk pengiriman pesan dua arah di AWS RCS Agent.
-
Pelanggan SNS Anda (misalnya, fungsi Lambda) menerima muatan pesan dan memprosesnya sesuai dengan logika aplikasi Anda.
RCS di AWS End User Messaging saat ini mendukung pesan teks masuk. Jika pelanggan mengirim pesan media (seperti gambar atau video) ke Agen AWS RCS Anda, pesan tersebut dicatat dengan status DIABAIKAN. Aplikasi Anda tidak menerima pesan media melalui topik SNS.
Mengonfigurasi tujuan pengiriman pesan dua arah
Untuk menerima dan memproses pesan RCS masuk di aplikasi Anda, Anda harus mengaktifkan pesan dua arah dan mengonfigurasi tujuan di AWS RCS Agent Anda. Pesan dua arah dinonaktifkan secara default. Saat mengaktifkannya, Anda menentukan topik Amazon SNS tempat AWS End User Messaging mengirimkan pesan masuk. Anda dapat mengonfigurasi tujuan menggunakan konsol AWS End User Messaging atau API.
Izin topik SNS
Topik Amazon SNS yang Anda konfigurasikan untuk pesan RCS dua arah harus mengizinkan Pesan Pengguna AWS Akhir untuk mempublikasikan pesan ke sana. Anda memiliki dua opsi untuk memberikan akses.
Opsi 1: Gunakan peran IAM
Buat peran IAM yang dapat diasumsikan oleh AWS End User Messaging untuk mempublikasikan pesan ke topik SNS Anda. Peran tersebut membutuhkan kebijakan kepercayaan dan kebijakan izin.
Berikut ini adalah kebijakan kepercayaan untuk peran IAM. Ganti accountId dengan ID unik untuk Anda Akun AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }
Berikut ini adalah kebijakan izin untuk peran IAM. SMSVoiceAllowSNSPublishSid memungkinkan penerbitan ke topik Amazon SNS dan SMSVoiceAllowEncryptedSNSTopics Sid adalah opsional untuk topik Amazon SNS terenkripsi. Lakukan perubahan berikut:
-
Ganti
partitiondengan AWS partisi yang Anda gunakan AWS End User Messaging di. -
Ganti
regiondengan Wilayah AWS yang Anda gunakan AWS End User Messaging di. -
Ganti
accountIddengan ID unik untuk Anda Akun AWS. -
Ganti
snsTopicNamedengan nama topik Amazon SNS yang menerima pesan masuk.
{ "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" } } } ] }
Opsi 2: Gunakan kebijakan topik SNS
Atau, tambahkan pernyataan kebijakan langsung ke topik SNS yang memungkinkan AWS End User Messaging untuk mempublikasikan pesan. Ganti snsTopicArn dengan ARN topik SNS Anda.
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }
Format payload pesan masuk
Saat Agen AWS RCS Anda menerima pesan teks masuk, AWS End User Messaging menerbitkan payload JSON ke topik Amazon SNS yang dikonfigurasi. Payload pesan masuk RCS menggunakan format yang sama dengan pesan dua arah SMS:
{ "originationNumber": "+14255550182", "destinationNumber": "+12125550101", "messageKeyword": "JOIN", "messageBody": "EXAMPLE", "inboundMessageId": "cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
Payload pesan masuk berisi bidang-bidang berikut:
| Bidang | Deskripsi |
|---|---|
|
Nomor telepon yang mengirim pesan masuk (nomor telepon pelanggan). |
|
Pengenal AWS RCS Agent yang menerima pesan. |
|
Kata kunci terdaftar yang cocok dengan pesan masuk, jika ada. Kata kunci dievaluasi terhadap awal badan pesan. |
|
Isi teks dari pesan masuk. |
|
Pengenal unik untuk pesan masuk. |
|
Pengenal unik dari pesan keluar yang ditanggapi pelanggan, jika pesan masuk adalah balasan ke pesan keluar sebelumnya. |
Jenis pesan yang didukung
RCS di AWS End User Messaging saat ini mendukung penerimaan pesan teks masuk. Saat pelanggan mengirim pesan teks ke Agen AWS RCS Anda, pesan tersebut dikirimkan ke topik Amazon SNS yang dikonfigurasi untuk diproses.
Jika pelanggan mengirim pesan media (seperti gambar, video, atau file) ke Agen AWS RCS Anda, Pesan Pengguna AWS Akhir mencatat pesan tersebut dengan status DIABAIKAN. Pesan media tidak dikirim ke topik SNS Anda dan tidak diproses oleh aplikasi Anda. Tidak ada kesalahan yang dikembalikan ke pengirim.
Manajemen kata kunci untuk RCS
Kata kunci memungkinkan Anda mengonfigurasi respons otomatis saat pelanggan mengirim kata atau frasa tertentu ke Agen AWS RCS Anda. Ketika pesan masuk cocok dengan kata kunci yang dikonfigurasi, Pesan Pengguna AWS Akhir mengirimkan pesan respons otomatis terkait kembali ke pelanggan.
Untuk RCS, kata kunci dikonfigurasi pada Agen AWS RCS dan berlaku untuk semua RCS terkait untuk Bisnis IDs (agen pengujian dan agen peluncuran negara). Anda dapat mengonfigurasi hingga 30 kata kunci per AWS RCS Agent.
Untuk mengelola kata kunci untuk AWS RCS Agent Anda, gunakan konsol AWS End User Messaging atau API. Untuk informasi umum tentang manajemen kata kunci, lihatKata kunci dalam SMS Pesan Pengguna AWS Akhir.
catatan
Kata kunci yang dikonfigurasi pada AWS RCS Agent berlaku untuk semua pendaftaran terkait. Anda tidak dapat mengatur kata kunci yang berbeda untuk agen pengujian dan agen peluncuran negara Anda secara independen.
Memproses pesan masuk dengan Lambda
Pola umum untuk memproses pesan RCS masuk adalah berlangganan fungsi Lambda ke topik Amazon SNS yang dikonfigurasi untuk pengiriman pesan dua arah. Fungsi Lambda menerima payload pesan masuk dan dapat mengimplementasikan logika aplikasi Anda, seperti menanggapi pertanyaan pelanggan, memproses perintah, atau merutekan pesan ke sistem lain.
Contoh Python berikut menunjukkan fungsi Lambda yang memproses pesan RCS masuk dan mengirimkan respons menggunakan 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}
Dalam contoh ini, fungsi Lambda:
-
Mem-parsing payload pesan masuk dari acara SNS.
-
Memeriksa
messageKeywordbidang untuk menentukan maksud pelanggan. -
Mengirim respons menggunakan pengiriman berbasis kolam (disarankan) melalui API.
SendTextMessagePool menangani pemilihan saluran secara otomatis.
catatan
Saat mengirim tanggapan ke pesan masuk, gunakan pengiriman berbasis kolam untuk memastikan fallback SMS otomatis jika perangkat pelanggan tidak lagi mendukung RCS. Untuk detail tentang pola pengiriman, lihatMengirim pesan RCS.
Praktik terbaik untuk pesan RCS masuk
Ikuti praktik terbaik ini saat menerapkan pesan RCS dua arah:
-
Menerapkan penanganan kesalahan - Fungsi Lambda atau pelanggan SNS Anda harus menangani kesalahan dengan anggun. Jika fungsi Anda gagal memproses pesan, konfigurasikan antrian huruf mati (DLQ) pada langganan SNS untuk menangkap pesan yang belum diproses untuk dicoba lagi nanti.
-
Kirim tanggapan fallback — Ketika aplikasi Anda menerima pesan yang tidak dapat diproses, kirim respons fallback yang bermanfaat daripada meninggalkan pelanggan tanpa balasan. Misalnya, tanggapi dengan perintah yang tersedia atau arahkan pelanggan ke saluran dukungan alternatif.
-
Gunakan pengiriman berbasis kolam untuk tanggapan — Saat mengirim tanggapan ke pesan masuk, gunakan pengiriman berbasis kolam untuk memastikan fallback SMS otomatis. Ini menjamin bahwa respons Anda mencapai pelanggan meskipun perangkat mereka tidak lagi mendukung RCS.
-
Pantau pemrosesan pesan — Gunakan CloudWatch metrik Amazon untuk memantau volume pesan masuk dan tingkat keberhasilan pemrosesan Anda. Siapkan alarm untuk pola yang tidak biasa, seperti peningkatan mendadak dalam pesan masuk atau tingkat kegagalan pemrosesan yang tinggi. Untuk detail tentang metrik RCS, lihat. CloudWatch Metrik dan pemantauan RCS
-
Tangani respons kata kunci secara konsisten — Pastikan respons otomatis kata kunci dan respons terprogram aplikasi Anda tidak bertentangan. Jika Anda mengonfigurasi respons otomatis kata kunci untuk kata kunci tertentu, fungsi Lambda Anda masih menerima pesan tersebut. Rancang fungsi Anda untuk menghindari pengiriman respons duplikat untuk kata kunci yang sudah memiliki respons otomatis yang dikonfigurasi.