Logo Site EngageLab Mark Colored TransparentDokumen
Cari

SMPP

Protokol ini mendefinisikan protokol komunikasi SMPP untuk layanan EngageLab SMS, yang bertujuan mewujudkan pengiriman pesan dan pelaporan status yang efisien dan andal melalui koneksi TCP. Informasi endpoint mencakup alamat IP, nomor port, serta informasi autentikasi yang diperlukan untuk koneksi. Pastikan untuk melakukan konfigurasi dengan benar sesuai akun dan password yang disediakan melalui channel resmi.

Alamat SMPP

otpsmpp.api.engagelab.cc

Dapatkan informasi berikut dari channel resmi (seperti tim bisnis atau dukungan teknis):

  • Port: { port }
  • Akun: { system_id }
  • Password: { password }

Membangun Koneksi

Paket Data Klien

Setelah koneksi TCP terbangun, paket data pertama perlu mengirim perintah BindTransceiver (yaitu 0x00000009) untuk verifikasi autentikasi. Paket data ini perlu memuat field-field berikut:

  • system_id: Akun sistem yang dialokasikan untuk pelanggan, digunakan untuk identifikasi identitas.
  • password: Password akses yang sesuai dengan akun sistem, digunakan untuk autentikasi identitas.

Respons Server

Respons Sukses

  • Server akan mengirim perintah BindTransceiverResp (yaitu 0x80000009) sebagai respons.
  • Mengisi field system_id dengan nilai yang sama dengan field system_id yang diterima.

Respons Gagal

  • Jika autentikasi gagal, server akan memutus koneksi TCP tersebut dan mencatat alasan kegagalan.

Pengiriman Pesan

Logika Server

Pengiriman pesan menggunakan perintah SUBMIT_SM (yaitu 0x00000004) untuk mengajukan request pengiriman pesan, dengan logika server sebagai berikut:

  1. Server mengurai konten request, dan secara tetap menggunakan channel SMS untuk pengiriman.
  2. Pengiriman pesan bersifat mode sinkron, hasilnya akan direspons dengan perintah SUBMIT_SM_RESP (yaitu 0x80000004).
  3. Status penerimaan akan dilaporkan melalui pesan, lihat detail pada Delivery Report.
  4. Disarankan menggunakan encoding UCS2 untuk mendukung karakter khusus dan internasionalisasi.

Paket Data Klien

Klien mengirim perintah SUBMIT_SM (yaitu 0x00000004) untuk mengajukan pesan, perlu memuat field-field berikut:

  1. service_type
    • Nilai: MSG / CODE / MRKT
    • Nilai default: MSG
  2. source_addr
    • Boleh dikosongkan, saat ini belum digunakan di SMS.
  3. destination_addr
    • Tujuan pesan, harus berupa format nomor ponsel internasional (seperti +6598765432).
  4. short_message
    • Konten pesan, menggunakan format JSON, dengan format sebagai berikut:
      { "id": "xxx", // ID template "language": "default", // Bahasa yang digunakan, default adalah default "code": "xx", // Kode verifikasi, hanya digunakan saat service_type adalah code "params": { // Pasangan key-value kustom "key1": "val1" // Format val berupa string } }
                    
                    {
        "id": "xxx",          // ID template
        "language": "default", // Bahasa yang digunakan, default adalah default
        "code": "xx",          // Kode verifikasi, hanya digunakan saat service_type adalah code
        "params": {            // Pasangan key-value kustom
          "key1": "val1"       // Format val berupa string
        }
      }
      
                  
      Tampilkan blok kode ini di jendela mengambang
  5. data_coding
    • Disarankan menggunakan encoding UCS2 untuk memastikan karakter khusus {} terurai dengan benar.
    • Jika mendukung pengiriman langsung {}, dapat menggunakan encoding default (yaitu 0x00).
  6. status pada header
    • Atur menjadi 0x00000000.

Respons Server

Server mengirim perintah SUBMIT_SM_RESP (yaitu 0x80000004) sebagai respons hasil pengiriman pesan.

Respons Sukses

  • Nilai field status pada header: 0x00000000
  • Field MESSAGE_ID: ID pesan respons, digunakan untuk mengaitkan delivery report.

Respons Gagal

  • Server mengisi field status pada header untuk memberikan alasan kegagalan:
Status Code Penjelasan Nilai
ESME_RINVPARAM Parameter tidak valid, harap periksa format konten request 0x00000032
ESME_RSYSERR Error layanan internal, disarankan coba lagi nanti 0x00000008
ESME_RSUBMITFAIL Pengiriman gagal, mungkin karena masalah template atau alasan lain 0x00000045
ESME_RINVNUMMSGS Format konten field short_message salah 0x00000055
ESME_RUNKNOWNERR Error tidak dikenal, harap hubungi dukungan teknis 0x000000FF

Delivery Report

Server melaporkan delivery report melalui perintah DELIVER_SM (yaitu 0x00000005). Field-field spesifiknya adalah sebagai berikut:

  1. service_type
    • Nilai tetap: MSG
  2. source_addr
    • Dikosongkan.
  3. destination_addr
    • Sama dengan destination_addr pada perintah SUBMIT_SM.
  4. data_coding
    • Metode encoding: nilai default 0x00.
  5. esm_class
    • Atur menjadi 0x00.
  6. short_message
    • Menggunakan format delivery receipt untuk membungkus delivery report.
  7. ReceiptedMessageID pada tlv
    • ID pesan, digunakan untuk identifikasi pengaitan.
  8. MessageState pada tlv
    • Status pesan, nilai field 0x0427.

Penguraian Status

Pada field short_message, arti nilai stat adalah sebagai berikut:

Status Arti
DELIVRD Berhasil terkirim
UNDELIV Gagal terkirim

Penjelasan Lainnya

Perintah Tidak Valid

Untuk perintah tidak valid yang diajukan klien, server akan mengembalikan perintah GENERIC_NACK (yaitu 0x80000000) dan mencatat log terkait. Server hanya mendukung perintah-perintah berikut:

  1. Perintah EnquireLink (yaitu 0x00000015)
  2. Perintah Unbind (yaitu 0x00000006)
  3. Perintah SubmitSM (yaitu 0x00000004)
  4. Perintah DeliverSMResp (yaitu 0x80000005)
  5. Perintah BindTransceiver (yaitu 0x00000009)

Keep-Alive

Klien perlu mengirim perintah EnquireLink (yaitu 0x00000015) setiap 30 detik (toleransi ±5 detik) untuk memastikan koneksi tetap aktif.

Arti Status Pengiriman

Status Code Arti
ESME_RINVPARAM Parameter tidak valid, harap periksa format konten request
ESME_RINVNUMMSGS Format konten field short_message salah
ESME_RSUBMITFAIL Pengiriman gagal, mungkin karena masalah template atau alasan lain
ESME_RSYSERR Error layanan internal, disarankan coba lagi nanti
ESME_RUNKNOWNERR Error tidak dikenal, harap hubungi dukungan teknis
DELIVRD Pesan berhasil terkirim
UNDELIV Pesan gagal terkirim

Penjelasan Istilah

  • SMPP: Short Message Peer-to-Peer Protocol, digunakan untuk pertukaran pesan pada SMS gateway.
  • SUBMIT_SM: Perintah SMPP untuk mengajukan pesan SMS.
  • DELIVER_SM: Perintah SMPP yang digunakan server untuk melaporkan status penerimaan pesan.
Icon Solid Transparent White Qiyu
Hubungi Sales