GSM & CDMA Modem

Sebuah handphone, GSM modem, atau CDMA modem memiliki tiga fungsi utama yang terkait dengan sistem pengisian pulsa:

  • SMS
  • USSD
  • Menu

Menu atau SIM Toolkit Application sebenarnya merupakan kemasan dari SMS dan USSD. Suatu menu bisa mengirimkan data melalui jalur SMS dan bisa juga menggunakan jalur USSD. Ini sudah diatur oleh si pembuat menu, umumnya dari pihak operator seluler.

Adalah sebuah paket bernama python-modem yang dapat Anda download dengan cara seperti yang diuraikan di halaman ini. Paket ini berisi class Modem yang memuat tiga fungsi utama tersebut. Namun begitu ia juga dapat dijalankan sebagai command line.

Sekarang pasanglah GSM modem Anda, bisa bermerk iTegno atau Billionton. Apapun merknya gunakanlah perintah ini setelah Anda memasangnya di komputer:

# dmesg | grep tty

usb 1-1: pl2303 converter now attached to ttyUSB0

Pada modem yang menggunakan port serial seperti Multitech dan Wavecom bisa berupa ttyS0 atau ttyS1, sesuaikanlah. Sekarang kita lihat apakah modem ini bisa menerima AT command:

# gsmmodem -d /dev/ttyUSB0

/dev/ttyUSB0 baudrate 115200
-> ▒
<- ▒
-> ATH
<- ATH
<- OK

Ini menunjukkan modem bisa menerima perintah dalam bahasa AT command. Bila ada kejanggalan dan Anda yakin modem ini paham perintah tersebut, cobalah menggunakan baudrate yang berbeda:

# gsmmodem -d /dev/ttyUSB0 -b 57600

Berikutnya kita coba mendapatkan informasi penting pada chip, yaitu identitas chip yang disebut IMEI.

# gsmmodem -d /dev/ttyUSB0 -o

device: /dev/ttyUSB0
imei: 510110203458505

Mengapa IMEI begitu penting ? Sistem pengisian pulsa biasanya memiliki lebih dari satu modem USB. Tidak seperti port serial, mekanisme pengalamatan pada USB tidak menentu alias terserah sistem operasinya. Biasanya yang pertama dipasang mendapat USB0, yang kedua USB1, ketiga USB2, dst. Bagaimana bila semua terpasang lalu komputer di-restart ? Besar kemungkinan pengalamatan berubah dan Anda bisa dikenakan pekerjaan rumah untuk memasang ulang sesuai urutan yang ditetapkan agar sistem pengisian pulsa menggunakan chip yang benar.
Dengan IMEI yang dimiliki chip Anda terhindar dari pekerjaan itu. Informasi di atas bisa menunjukkan korelasi USB port dengan identitas chip, alias device dengan IMEI yang ada di dalamnya. Di level database Anda bisa merelasikan IMEI ini dengan nomor handphone (MSISDN).

Mengirim SMS
Buatlah file /tmp/sms.txt berisi:

msisdn: +628881234567

Voucher Simpati sudah tersedia.
Terimakasih.

Perhatikan ada baris kosong setelah msisdn. Lalu jalankan perintah ini:

# gsmmodem -d /dev/ttyUSB0 -p /tmp/sms.txt

-> AT+CMGS="+628881234567"
<- AT+CMGS="+628881234567"
<- >
-> Voucher Simpati sudah tersedia.
Terimakasih.

<- Voucher Simpati sudah tersedia.
<- Terimakasih.
<- ▒
<- +CMGS: 220
<- OK
220

Perhatikan angka 220 yang menunjukkan nomor index memori chip. Kisarannya 0-255 yang menandakan pesan berhasil dikirim.

Membaca SMS
SMS yang sudah diterima modem akan disimpan dalam direktori /tmp, satu SMS dalam satu file, setelah itu SMS dihapus dari chip.

# gsmmodem -d /dev/ttyUSB0 -g /tmp

Save to /tmp/510110203458505_+628881234567_200804301310187.txt

Contoh isinya adalah:

imei: 510110203458505
group: REC READ
msisdn: +628881234567

SAL 1234

USSD
USSD adalah perintah satu arah, contohnya cek pulsa:

# gsmmodem -d /dev/ttyUSB0 -u "*123#"

Rp 12.345

Menu
Untuk melihat menu utama pada chip gunakan perintah ini:

# gsmmodem -d /dev/ttyUSB0 -a ""

M-Tronik

Lanjutkan dengan masuk ke menu M-Tronik:

# gsmmodem -d /dev/ttyUSB0 -a "M-Tronik"

M-Tronik,Isi Pulsa,Transfer,Optional

Lanjutkan lagi ke menu Isi Pulsa, pisahkan dengan koma:

# gsmmodem -d /dev/ttyUSB0 -a "M-Tronik,Isi Pulsa"

Masukkan Hp Tujuan

Lanjutkan terus hingga rangkaian menu menjadi

M-Tronik,Isi Pulsa,08151234567,RP 10.000,Reguler,123456,OK

Perhatikan OK. Itu bukanlah menu tapi sebagai bentuk konfirmasi "Yes". Kalau di handphone bentuknya konfirmasi yang meminta jawaban "Yes" atau "No".

Penggunaan menu chip M-Tronik (sering disebut chip SEV) adalah contoh menu yang mengemas perintah dalam bentuk SMS. Ini artinya rangkaian menu pengisian pulsa tersebut dikirim melalui jalur SMS. Oleh karena itu Anda akan mendapat jawaban transaksi dalam bentuk SMS pula.