Logo Site EngageLab Mark Colored TransparentDokumen
Cari

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_id diisi 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:

  1. Server membaca permintaan dan menggunakan jalur SMS untuk pengiriman.
  2. Pesan dikirim secara sinkron, hasilnya direspons dengan SUBMIT_SM_RESP (0x80000004).
  3. Laporan pengiriman akan dikirim sesuai bagian Laporan Pengiriman.
  4. Disarankan encoding UCS2 untuk dukungan karakter khusus dan internasionalisasi.

Paket Data Klien

Klien mengirim perintah SUBMIT_SM (0x00000004) dengan field berikut:

  1. service_type
    • Nilai: MSG / CODE / MRKT
    • Default: MSG
  2. source_addr
    • Dapat dikosongkan; tidak digunakan dalam SMS.
  3. destination_addr
    • Nomor tujuan, wajib format internasional (misal: +6598765432).
  4. 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
  5. data_coding
    • Disarankan UCS2 agar karakter khusus {} diproses benar.
    • Jika {} bisa dikirim langsung, gunakan encoding default (0x00).
  6. header status
    • Diatur ke 0x00000000.

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:

  1. service_type
    • Nilai tetap: MSG
  2. source_addr
    • Kosong.
  3. destination_addr
    • Sesuai dengan field destination_addr pada SUBMIT_SM.
  4. data_coding
    • Nilai default 0x00.
  5. esm_class
    • Diatur ke 0x00.
  6. short_message
    • Berisi laporan pengiriman dalam format delivery receipt.
  7. ReceiptedMessageID dalam tlv
    • ID pesan untuk pelacakan.
  8. MessageState dalam tlv
    • Status pesan, field 0x0427.

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:

  1. EnquireLink (0x00000015)
  2. Unbind (0x00000006)
  3. SubmitSM (0x00000004)
  4. DeliverSMResp (0x80000005)
  5. 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.

Icon Solid Transparent White Qiyu
Hubungi Sales