Kirim-SMPP
Informasi Antarmuka
Protokol ini mendefinisikan komunikasi SMPP untuk layanan OTP, 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 dari saluran resmi telah dikonfigurasi dengan benar.
Alamat SMPP
Silakan dapatkan data berikut dari saluran resmi (misal: tim sales atau support teknis):
- Alamat IP:
{ ip } - Port:
{ port } - Akun:
{ system_id } - Kata Sandi:
{ password }
Membuka Koneksi
Paket Data Klien
Setelah koneksi TCP berhasil, paket pertama harus mengirim perintah BindTransceiver (0x00000009) untuk autentikasi. Paket ini wajib memuat:
- system_id: Akun sistem 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 mem-parsing permintaan dan menggunakan saluran 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
- Boleh kosong; tidak digunakan untuk OTP.
- destination_addr
- Nomor tujuan, wajib format internasional (misal:
+8613800138000).
- Nomor tujuan, wajib format internasional (misal:
- short_message
- Isi pesan dalam 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 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 dengan perintah SUBMIT_SM_RESP (0x80000004).
Respons Berhasil
- header status:
0x00000000 - MESSAGE_ID: ID pesan untuk asosiasi laporan pengiriman.
Respons Gagal
- header status diisi sesuai 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 |
Error tidak diketahui, hubungi support ## Informasi Antarmuka | |
| Protokol ini mendefinisikan komunikasi SMPP untuk layanan OTP, bertujuan menghadirkan pengiriman pesan dan pelaporan status yang efisien serta andal melalui koneksi TCP. Informasi antarmuka meliputi alamat IP, port, dan kredensial autentikasi. Pastikan kredensial dari saluran resmi telah dikonfigurasi dengan benar. |
Alamat SMPP
Silakan dapatkan detail berikut dari saluran resmi (misal: tim sales atau dukungan teknis):
- Alamat IP:
{ ip } - Port:
{ port } - Akun:
{ system_id } - Kata Sandi:
{ password }
Membuka Koneksi
Paket Data Klien
Setelah koneksi TCP berhasil, paket data pertama wajib 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) sebagai respons. - Field
system_iddiisi dengan nilai yang diterima pada fieldsystem_id.
Respons Gagal
- Jika autentikasi gagal, server akan memutus koneksi TCP dan mencatat alasannya.
Pengiriman Pesan
Logika Server
Pengiriman pesan menggunakan perintah SUBMIT_SM (0x00000004). Alur server:
- Server mem-parsing permintaan dan menggunakan saluran SMS untuk pengiriman.
- Pesan dikirim secara sinkron, hasilnya direspons dengan perintah
SUBMIT_SM_RESP(0x80000004). - Laporan pengiriman akan dikirim, lihat bagian Laporan Pengiriman.
- Disarankan menggunakan encoding
UCS2untuk mendukung 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
- Boleh dikosongkan; saat ini tidak digunakan untuk OTP.
- destination_addr
- Nomor tujuan, wajib format internasional (misal:
+8613800138000).
- 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, untuk service_type "code" "params": { // Key-value kustom "key1": "val1" // Nilai harus string } }
{ "id": "xxx", // ID Template "language": "default", // Bahasa, default "default" "code": "xx", // Kode verifikasi, untuk service_type "code" "params": { // Key-value kustom "key1": "val1" // Nilai harus string } }Tampilkan blok kode ini di jendela mengambang
- Isi pesan dalam format JSON, contoh:
- data_coding
- Disarankan encoding
UCS2agar karakter khusus{}terbaca dengan benar. - Jika
{}bisa dikirim langsung, bisa pakai encoding default (0x00).
- Disarankan encoding
- header status
- Diatur ke
0x00000000.
- Diatur ke
Respons Server
Server merespons permintaan pengiriman dengan perintah SUBMIT_SM_RESP (0x80000004).
Respons Berhasil
- header status:
0x00000000 - MESSAGE_ID: ID pesan untuk asosiasi laporan pengiriman.
Respons Gagal
- Server mengisi header status untuk menunjukkan alasan kegagalan:
| Kode Status | Deskripsi | Nilai |
|---|---|---|
ESME_RINVPARAM |
Parameter tidak valid, periksa format | 0x00000032 |
ESME_RSYSERR |
Kesalahan internal server, coba lagi nanti | 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 via perintah DELIVER_SM (0x00000005). Field yang digunakan:
- service_type
- Nilai tetap:
MSG
- Nilai tetap:
- source_addr
- Kosong.
- destination_addr
- Sama dengan
destination_addrpadaSUBMIT_SM.
- Sama dengan
- data_coding
- Encoding default
0x00.
- Encoding default
- esm_class
- Diatur ke
0x00.
- Diatur ke
- short_message
- Berisi laporan pengiriman dalam format
delivery receipt.
- Berisi laporan pengiriman dalam format
- ReceiptedMessageID di tlv
- ID pesan untuk asosiasi.
- MessageState di tlv
- Status pesan, field
0x0427.
- Status pesan, field
Interpretasi Status
Field short_message memuat nilai stat dengan arti:
| 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. Server hanya mendukung perintah berikut:
EnquireLink(0x00000015)Unbind(0x00000006)SubmitSM(0x00000004)DeliverSMResp(0x80000005)BindTransceiver(0x00000009)
Menjaga Koneksi
Klien wajib 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 nanti |
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 pelaporan status pengiriman pesan.
Untuk pertanyaan lebih lanjut, hubungi Dukungan Teknis.










