SMPP
Informasi Antarmuka
Protokol ini mendefinisikan protokol komunikasi SMPP untuk layanan SMS, bertujuan memastikan pengiriman pesan dan pelaporan status yang efisien serta andal melalui koneksi TCP. Informasi antarmuka meliputi alamat IP, port, dan kredensial autentikasi. Pastikan kredensial yang diberikan melalui saluran resmi telah dikonfigurasi dengan benar.
Alamat SMPP
Silakan dapatkan informasi berikut dari saluran resmi (misal: tim penjualan atau dukungan teknis):
- Alamat IP:
{ ip } - Port:
{ port } - Akun:
{ system_id } - Kata Sandi:
{ password }
Membuka Koneksi
Paket Data Klien
Setelah koneksi TCP berhasil dibuka, paket data pertama harus mengirim perintah BindTransceiver (0x00000009) untuk autentikasi. Paket ini harus memuat:
- system_id: Akun sistem yang diberikan untuk verifikasi identitas.
- password: Kata sandi akses sesuai akun sistem.
Respons Server
Respons Berhasil
- Server mengirim perintah
BindTransceiverResp(0x80000009). - Field
system_iddiisi sesuai yang diterima.
Respons Gagal
- Jika autentikasi gagal, server akan memutus koneksi TCP dan mencatat alasannya.
Pengiriman Pesan
Logika Server
Pengiriman pesan menggunakan perintah SUBMIT_SM (0x00000004). Logika server:
- Server membaca permintaan dan menggunakan jalur SMS untuk pengiriman.
- Pesan dikirim secara sinkron, hasilnya direspons dengan
SUBMIT_SM_RESP(0x80000004). - Laporan pengiriman akan dikirim sesuai bagian Laporan Pengiriman.
- Disarankan encoding
UCS2untuk dukungan karakter khusus dan internasionalisasi.
Paket Data Klien
Klien mengirim perintah SUBMIT_SM (0x00000004) dengan field berikut:
- service_type
- Nilai:
MSG/CODE/MRKT - Default:
MSG
- Nilai:
- source_addr
- Dapat dikosongkan; tidak digunakan dalam SMS.
- destination_addr
- Nomor tujuan, wajib format internasional (misal:
+6598765432).
- Nomor tujuan, wajib format internasional (misal:
- short_message
- Isi pesan dalam format JSON, contoh:{ "id": "xxx", // ID Template "language": "default", // Bahasa, default "default" "code": "xx", // Kode verifikasi, jika service_type "code" "params": { // Key-value kustom "key1": "val1" // Nilai wajib string } }
{ "id": "xxx", // ID Template "language": "default", // Bahasa, default "default" "code": "xx", // Kode verifikasi, jika service_type "code" "params": { // Key-value kustom "key1": "val1" // Nilai wajib string } }Tampilkan blok kode ini di jendela mengambang
- Isi pesan dalam format JSON, contoh:
- data_coding
- Disarankan
UCS2agar karakter khusus{}diproses benar. - Jika
{}bisa dikirim langsung, gunakan encoding default (0x00).
- Disarankan
- header status
- Diatur ke
0x00000000.
- Diatur ke
Respons Server
Server merespons permintaan pengiriman dengan perintah SUBMIT_SM_RESP (0x80000004).
Respons Berhasil
- Nilai header status:
0x00000000 - Field MESSAGE_ID: ID pesan untuk pelacakan laporan pengiriman.
Respons Gagal
- Server mengisi header status untuk menunjukkan alasan kegagalan:
| Kode Status | Deskripsi | Nilai |
|---|---|---|
ESME_RINVPARAM |
Parameter tidak valid, cek format permintaan | 0x00000032 |
ESME_RSYSERR |
Kesalahan internal server, coba lagi | 0x00000008 |
ESME_RSUBMITFAIL |
Pengiriman gagal, kemungkinan masalah template | 0x00000045 |
ESME_RINVNUMMSGS |
Format short_message tidak valid |
0x00000055 |
ESME_RUNKNOWNERR |
Kesalahan tidak diketahui, hubungi support | 0x000000FF |
Laporan Pengiriman
Server melaporkan hasil pengiriman dengan perintah DELIVER_SM (0x00000005). Field yang digunakan:
- service_type
- Nilai tetap:
MSG
- Nilai tetap:
- source_addr
- Kosong.
- destination_addr
- Sesuai dengan field
destination_addrpadaSUBMIT_SM.
- Sesuai dengan field
- data_coding
- Nilai default
0x00.
- Nilai default
- esm_class
- Diatur ke
0x00.
- Diatur ke
- short_message
- Berisi laporan pengiriman dalam format
delivery receipt.
- Berisi laporan pengiriman dalam format
- ReceiptedMessageID dalam tlv
- ID pesan untuk pelacakan.
- MessageState dalam tlv
- Status pesan, field
0x0427.
- Status pesan, field
Interpretasi Status
Field short_message memuat nilai stat, yang berarti:
| Status | Arti |
|---|---|
DELIVRD |
Berhasil dikirim |
UNDELIV |
Gagal dikirim |
Informasi Tambahan
Perintah Tidak Valid
Untuk perintah tidak valid dari klien, server akan mengembalikan GENERIC_NACK (0x80000000) dan mencatat kejadian tersebut. Server hanya mendukung perintah berikut:
EnquireLink(0x00000015)Unbind(0x00000006)SubmitSM(0x00000004)DeliverSMResp(0x80000005)BindTransceiver(0x00000009)
Menjaga Koneksi
Klien harus mengirim perintah EnquireLink (0x00000015) setiap 30 detik (±5 detik) untuk menjaga koneksi tetap aktif.
Arti Status Pengiriman
| Kode Status | Arti |
|---|---|
ESME_RINVPARAM |
Parameter tidak valid, cek format permintaan |
ESME_RINVNUMMSGS |
Format short_message tidak valid |
ESME_RSUBMITFAIL |
Pengiriman gagal, kemungkinan masalah template |
ESME_RSYSERR |
Kesalahan internal server, coba lagi |
ESME_RUNKNOWNERR |
Kesalahan tidak diketahui, hubungi support |
DELIVRD |
Berhasil dikirim |
UNDELIV |
Gagal dikirim |
Istilah
- SMPP: Protokol Short Message Peer-to-Peer untuk pertukaran pesan antar gateway SMS.
- SUBMIT_SM: Perintah SMPP untuk mengirim pesan.
- DELIVER_SM: Perintah SMPP untuk laporan status pengiriman pesan.
Jika ada pertanyaan lebih lanjut, silakan hubungi Dukungan Teknis.










