Aplikasi dapat mengajukan pesan sebelum ponsel penerima dapat dijangkau. Koneksi SMPP membawa pengajuan tersebut beserta operasi-operasi selanjutnya yang melaporkan hasilnya.
Apa yang dibawa oleh koneksi?
SMPP membawa pengajuan pesan, pesan masuk, dan laporan pengiriman antara sistem-sistem yang terhubung.
Aplikasi Anda dapat terhubung ke gateway yang meneruskan lalu lintas. Aplikasi juga dapat terhubung langsung ke pusat pesan jika penyedia mendukung pengaturan tersebut.
Referensi SMPP menjelaskan peran dan operasi tersebut. Pusat pesan menyimpan pesan dan meneruskannya ke penerima.
Gateway antara aplikasi Anda dan pusat pesan menambahkan satu langkah routing lagi. Nama protokol saja tidak memberi tahu berapa banyak sistem yang menangani pesan tersebut.
Bagaimana cara kerja sesi SMPP?
Klien Anda membuka koneksi. Klien mengautentikasi sesi dan menjaganya tetap tersedia untuk operasi pesan.
Langkah autentikasi disebut bind. Sesi transmitter mengirim pesan. Sesi receiver menerima pesan. Sesi transceiver mendukung kedua arah.
Gunakan tipe sesi yang dibutuhkan alur kerja Anda. Koneksi khusus kirim tidak dapat menggantikan sesi penerima saat Anda membutuhkan operasi masuk.
Klien Anda harus pulih dari kehilangan koneksi. Klien juga harus mengonfirmasi operasi yang diterimanya. Lacak permintaan yang menunggu respons agar respons yang tertunda dicocokkan dengan permintaan yang benar.
Apakah respons pengajuan membuktikan pengiriman?
Respons pengajuan melaporkan apakah layanan yang terhubung menerima pengajuan, bukan apakah ponsel telah menerima pesannya.
Operasi submit_sm mengajukan pesan. submit_sm_resp yang bersesuaian melaporkan hasil permintaan tersebut.
Pesan masuk dan tanda terima pengiriman dapat diterima melalui deliver_sm. Referensi tanda terima pengiriman menjelaskan operasi tanda terima dan isinya.
Pisahkan hasil pengajuan dari hasil pengiriman dalam aplikasi Anda. Pesan dapat diterima lalu gagal kemudian karena penerima tetap tidak dapat dijangkau.
Apa yang berubah jika saya menggunakan HTTP API?
HTTP menyediakan operasi permintaan dan respons tanpa mengharuskan aplikasi Anda mengelola SMPP bind.
Aplikasi Anda tetap perlu menangani percobaan ulang. Aplikasi juga harus memproses hasil pengiriman selanjutnya. HTTP tidak mengubah pengiriman asinkron dari operator menjadi jaminan sinkron.
Dengan Bird, Anda mengajukan melalui POST /v1/sms/messages dan melacak identifier pesan yang dikembalikan. Panduan pengiriman menjelaskan respons penerimaan 202. Event SMS menyediakan laporan pengiriman selanjutnya.
Tanggung jawab API tersebut terpisah dari pengelolaan koneksi SMPP ke penyedia. API dan gateway menjelaskan lapisan-lapisannya.
Apakah menggunakan SMPP membuat penyedia saling dapat dipertukarkan?
Penyedia tidak saling dapat dipertukarkan hanya karena menggunakan protokol yang sama. Mereka dapat mendukung operasi, encoding, dan batas yang berbeda.
Uji kemampuan yang digunakan aplikasi Anda sebelum memindahkan lalu lintas. Bind yang berhasil tidak membuktikan bahwa setiap operasi yang dibutuhkan berfungsi pada penyedia tersebut.
Referensi gateway merekomendasikan pengujian dukungan implementasi dan performa. Pertahankan pemeriksaan pengiriman Anda saat mengganti koneksi, alih-alih menganggap endpoint baru sebagai migrasi yang lengkap.
Kapan sebaiknya saya memilih SMPP?
Pilih SMPP ketika sistem yang ada membutuhkan bind persisten atau operasi masuk khusus SMPP.
- Gunakan HTTP untuk aplikasi baru tanpa kebutuhan SMPP tertentu.
- Gunakan SMPP ketika sistem yang ada membutuhkan bind persisten atau operasi masuk khusus SMPP.
- Uji dukungan penyedia dan hasil pengiriman sebelum memindahkan lalu lintas produksi.
Singkatnya
Klien Anda mengelola sesi.
Klien mengautentikasi koneksi dan menangani pemulihan saat koneksi tersebut gagal.
Pengajuan dan pengiriman adalah operasi yang berbeda.
Respons pengajuan yang berhasil tidak membuktikan bahwa perangkat penerima telah menerima pesan.
Dukungan berbeda-beda antar penyedia.
Uji operasi, encoding, dan kapasitas alih-alih berasumsi bahwa protokol membuat penyedia saling dapat dipertukarkan.
HTTP dapat menghindari pengelolaan sesi SMPP.
HTTP menghindari pengelolaan SMPP bind, sementara aplikasi Anda tetap menangani event pengiriman.