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.