Memulai SMS Gateway

Petunjuk pada tulisan GSM Modem memberikan pengetahuan bagaimana mengakses sebuah modem melalui command line. Cara ini tentu hanya untuk uji coba modem. Bagaimana bila untuk SMS Gateway sesungguhnya?

Kali ini kita akan memasang daemon untuk setiap modem yang terpasang. Job untuk modem disimpan dalam suatu file. Hasil job tersebut juga akan tersimpan dalam file juga.

Tambahkan di /etc/apt/sources.list:


deb http://debian.rab.co.id/custom ./

Kemudian perbaharui daftar paket Debian:

# apt-get update

Pasang daemonnya:

# apt-get install modem-spool

Pasang modemnya, jika di USB maka otomatis diaktifkan oleh modem-hotplug:

# ps ax | grep modem

15007 ? S 0:00 /usr/bin/python /usr/bin/modem-hotplug
15010 ? Rl 28:04 python /usr/bin/modem /dev/ttyUSB0

Namun bila modem menggunakan serial port, restart modem-hotplug:

# /etc/init.d/modem-hotplug restart

Port mana saja yang akan digunakan modem-hotplug untuk autodetect modem ? Anda bisa atur melalui /etc/modem/spool.conf.

Untuk memberi perintah pengiriman SMS ke modem, kita membutuhkan IMEI chip yang ada di dalamnya:

# ls /var/log/modem

510011011568608.log

Sebuah modem akan ditangani oleh sebuah daemon. Daemon ini akan membuat log sesuai IMEI chip. Log ini berisi AT command yang dijalankan. Sekarang mari kirim SMS dengan membuat file /var/spool/modem/job/510011011568608_20090302T163527. Waktu pada akhiran file hanya sebagai kode unik saja, terutama saat Anda mengirim banyak SMS (broadcast). Yang penting bagi daemon ini adalah IMEI yang ada di depannya. Isilah dengan teks berikut ini:

{'message': 'coba dari modem', 'msisdn': '+628171234567', 'method': 'push', 'tid': 12345}

Sesuaikanlah msisdn yang akan menerima SMS ini. tid merupakan transaction id yang merupakan kode unik pengiriman. Lalu mulailah perhatikan log-nya:

# tail -f /var/log/modem/510011011568608.log

2009-02-26 00:00:38,320 INFO -> AT+CMGS="+628171234567"
2009-02-26 00:00:40,345 INFO <- AT+CMGS="+628171234567"
2009-02-26 00:00:40,346 INFO <- >
2009-02-26 00:00:40,346 INFO -> coba dari modem^Z
2009-02-26 00:00:41,409 INFO <- coba dari modem^Z
2009-02-26 00:00:44,828 INFO <- +CMGS: 5
2009-02-26 00:00:44,828 INFO <- OK

Hasilnya bisa dilihat di direktori /var/spool/modem/result/510011011568608_20090302T163622:

{'method': 'push', 'status': 0, 'index': 5, 'imei': '510011011568608', 'job': 0, 'tid': 12345}

Bila status = 0 berarti pengiriman sukses, selain itu gagal. job berisi jumlah antrian perintah bagi modem yang belum diselesaikan. Berguna untuk load balancing saat broadcast.

SMS yang masuk juga akan tersimpan di direktori /var/spool/modem/result. Selamat mencoba.