logoDokumen
Cari

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_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 mem-parsing permintaan dan menggunakan saluran 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
    • Boleh kosong; tidak digunakan untuk OTP.
  3. destination_addr
    • Nomor tujuan, wajib format internasional (misal: +8613800138000).
  4. 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
  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 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_id diisi dengan nilai yang diterima pada field system_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:

  1. Server mem-parsing permintaan dan menggunakan saluran SMS untuk pengiriman.
  2. Pesan dikirim secara sinkron, hasilnya direspons dengan perintah SUBMIT_SM_RESP (0x80000004).
  3. Laporan pengiriman akan dikirim, lihat bagian Laporan Pengiriman.
  4. Disarankan menggunakan encoding UCS2 untuk mendukung 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
    • Boleh dikosongkan; saat ini tidak digunakan untuk OTP.
  3. destination_addr
    • Nomor tujuan, wajib format internasional (misal: +8613800138000).
  4. 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
  5. data_coding
    • Disarankan encoding UCS2 agar karakter khusus {} terbaca dengan benar.
    • Jika {} bisa dikirim langsung, bisa pakai encoding default (0x00).
  6. header status
    • Diatur ke 0x00000000.

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:

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

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:

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

icon
Hubungi Sales