Membuat SMS Gateway dengan Gammu Menggunakan GSM Modem ZTE MF190

wammu-logo
Pada percobaan ini saya membuat sms gateway dengan gammu. Modem yang saya gunakan adalah ZTE MF190. Operating System yang saya gunakan adalah Ubuntu Gnome 14.04 LTS. Pembahasan pada tahap pertama ini adalah bagaimana mengkonfirgurasi modem ZTE MF190 untuk bisa bekerja dengan system gammu sms-gateway. Modem ZTE MF190 tidak langsung bisa sebagai modem untuk sms. Modem tersebut harus dilakukan switching mode untuk bisa bekerja sebagai modem sms. Saya menggunakan lsusb untuk mengetahui apakah modem usb tersebut sudah tertedeksi dengan benar atau belum.

juang@trial:~$ lsusb
Bus 004 Device 004: ID 0bda:5603 Realtek Semiconductor Corp.
Bus 004 Device 003: ID 0458:0152 KYE Systems Corp. (Mouse Systems)
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 19d2:2000 ZTE WCDMA Technologies MSM MF627/MF628/MF628+/MF636+ HSDPA/HSUPA
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Ada yang aneh dari hasil lsusb. Dimana tidak terdapat modem MF190 sesuai product yang saya colok ke port USB, dan yang ada malah MF seri 6xx. Pada kondisi ini, modem manager GUI juga tidak mendeksi adanya modem MF190 ataupun MF seri 6xxx.

Langkah lebih lanjut adalah dengan melakukan configurasi dengan usb_modeswitch. Namum terlebih dahulu kita harus tau target product yang ada pada device modem tersebut. Dan untuk melihat list product pada modem ini saya menggunakan perintah berikut:

juang@trial:~$ cd Documents/
juang@trial:~/Documents$ tar -xzvf /usr/share/usb
usb-creator/    usb_modeswitch/
juang@trial:~/Documents$ tar -xzvf /usr/share/usb_modeswitch//configPack.tar.gz 19d2\:2000


dari hasil perintah tersebut adalah sebuah file 19d2\:2000 di folder Documents yang isinya adalah sebagai berikut:

# ZTE devices
TargetVendor= 0x19d2
TargetProductList="0001,0002,0015,0016,0017,0019,0031,0033,0037,0052,0055,0061,0063,0064,0066,0091,0108,0117,0128,0157,0177,1402,2002,2003"
StandardEject=1
MessageContent="55534243123456702000000080000c85010101180101010101000000000000"


Pada target product list saya memilih code product 0117. Terkadang code product 0117 bisa terlihat saat modem sudah tercolok di USB port saat komputer/laptop startup. Namun itu jika saya sedang beruntung akan mendapatkannya, malah yang sering terjadi jarang berhasil mendapat code product 0117 dan sering sekali masuk ke code product 2000 walaupun sudah coba restart berulang kali. Hingga akhirnya saya menyimpulkan secara default code product 2000 tidak bisa digunakan sebagai modem usb pada MF190.

Setelah mendapatkan target product list tersebut, saya langsung mengedit /etc/usb_modeswitch.conf, menambahkan configurasi pada bagian bawah file sebagai berikut:


DefaultVendor=0x19d2
DefaultProduct=0x2000

TargetVendor=0x19d2
TargetProduct=0x0117

TargetProductList="0001,0002,0015,0016,0017,0019,0031,0033,0037,0052,0055,0061,0063,0064,0066,0091,0108,0117,0128,0157,0177,1402,2002,2003"
StandardEject=1
MessageContent="55534243123456702000000080000c85010101180101010101000000000000"


Setalah save, untuk menjalankan konfigurasi tersebut saya menggunakan perintah: sudo usb_modeswitch -c /etc/usb_modeswitch.conf. Dan hasilnya adalah sebagai berikut:

Warning: TargetProductList overrides TargetProduct!
Look for target devices ...
 No devices in target mode or class found
Look for default devices ...
   product ID matched
 Found devices in default mode (1)
Access device 005 on bus 001
Current configuration number is 1
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)

USB description data (for identification)
-------------------------
Manufacturer: ZTE,Incorporated
     Product: ZTE WCDMA Technologies MSM
  Serial No.: MF1900ZTED010000
-------------------------
Sending standard EJECT sequence
Looking for active driver ...
 No active driver found. Detached before or never attached
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Read the response to message 1 (CSW) ...
 Response successfully read (13 bytes).
Trying to send message 2 to endpoint 0x01 ...
 OK, message successfully sent
Read the response to message 2 (CSW) ...
 Response successfully read (13 bytes).
Trying to send message 3 to endpoint 0x01 ...
 OK, message successfully sent
Read the response to message 3 (CSW) ...
 Response reading failed (error -9)
 Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!


Akhirnya seri MF190 muncul juga dan disini saya merasa senang. 🙂
Dan ketika di check dengan lsusb terlihat hasil berbeda dengan sebelumnya:

Bus 004 Device 004: ID 0bda:5603 Realtek Semiconductor Corp.
Bus 004 Device 003: ID 0458:0152 KYE Systems Corp. (Mouse Systems)
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 19d2:0117 ZTE WCDMA Technologies MSM
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub



Begitu juga pada modem manager yang tadinya tidak muncul mobile broadband sekarang muncul mobile broadband network manager.

modem-manager

Langkah berikutnya adalah dengan menginstall gammu dengan perintah sudo apt-get install gammu. Setelah terinstall tahap berikutnya saya melakukan check apakah modem terdeteksi oleh gammu dengan perintah sudo gammu-detect.

 

juang@trial:~$ sudo gammu-detect
[sudo] password for juang:
; Configuration file generated by gammu-detect.
; Please check The Gammu Manual for more information.

[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port ZTE_Incorporated ZTE_WCDMA_Technologies_MSM
connection = at

[gammu1]
device = /dev/ttyUSB1
name = Phone on USB serial port ZTE_Incorporated ZTE_WCDMA_Technologies_MSM
connection = at

[gammu2]
device = /dev/ttyUSB2
name = Phone on USB serial port ZTE_Incorporated ZTE_WCDMA_Technologies_MSM
connection = at

...


Dari hasil gammu-detect memperlihatkan model terkoneksi pada beberapa port yaitu di ttyUSB0 hingga ttyUSB2. Pada tahap ini saya tidak bisa menentukan port nama yang sedang digunakan oleh gammu untuk terhubung dengan modem. Pada tahap ini saya tidak punya cara lain selain mencoba ttyUSB0 hingga ttyUSB2.

Tahap berikutnya adalah konfigurasi sudo gammu-config untuk melakukan test sms pertama kali.

gammu-config-r1
Untuk port bisa di coba dari ttyUSB0 jika tidak berhasi maka pindah portnya ke ttyUSB1 dst.

Untuk test sms saya melakukan perintah sudo gammu sendsms TEXT 08xxxxxxxxx -text "Halooo from ttyUSB1 ..". Jika salah port maka gammu akan merespon:

No response in specified timeout. Probably phone not connected.



Dan jika berhasil gammu akan merespon:

If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=41



berikut hasilnya di handphone saya:

sms-hasil-r1

Advertisements

Tethering Raspberry Pi dengan Android

Linux adalah operating system yang tidak bisa terlepas dari kebutuhan terhadap internet. Untuk mendapatkan update system dan install software, Linux harus terhubung dengan repositorynya. Walapun sudah ada yang mengimplementasikan methode offline installer seperti apt-web atau alldeb yang digarap oleh teman-teman di Ubuntu-Indonesia, tetap saja untuk mendapatkan pertama kali dependency atau package tersebut membutuhkan internet.

Raspbian termasuk operating system berbasis Linux yang tentunya membutuhkan koneksi internet. Ada beberapa cara untuk Raspi mendapatkan koneksi internet, salah satunya adalah dengan tethering dengan ponsel Android. Mungkin di rumah mendapatkan koneksi internet dari router, namun ada saatnya kita tidak berada di rumah dan memerlukan Raspi untuk tersambung ke internet. Menurut saya, ini adalah cara paling mudah.

Pada artikel ringan ini, saya melakukan percobaan menggunakan wifi tethering Android dengan tujuan update dan install software untuk Raspberry Pi. Dalam percobaan ini saya menggunakan Android pada Oppo R831K dan Raspberry Pi model B tanpa bantuan monitor pada port HDMI.

  1. Langkah pertama adalah melakukan setup enable wifi hotspot pada wireless setting sebagai berikut:
    portable-wifi-hotspot
  2. Kemudian melakukan setting SSID seperti berikut ini pada setup wifi hotspot:
    ssid-pass
  3. Setelah semua setting selesai, saya meng-install aplikasi Network Scanner untuk mencari IP address dari Raspi dan juga laptop yang nantinya akan remote connection dengan SSH. Aplikasi Network Scanner bisa didownload disini.
  4. Berikutnya adalah melepas SD card pada raspi dan memasangnya di card reader. Seperti yang saya lakukan pada percobaan sebelumnya, SD card akan dimounting di /media/[user]/ dan akan diedit network interfacenya sesuai dengan SSID pada Android tadi. Pada console lebih lengkapnya perintah tersebut adalah sebagai berikut:

    jxvn@X452C:~ > sudo kate /media/jxvn/f24a4949-f4b2-4cad-a780-a138695079ec
    /etc/network/interfaces
    



    Pada file network interfaces di bawah, saya sesuaikan (highlighted) dengan setting pada android tadi:

    auto lo
    iface lo inet loopback
    
    auto wlan0
    iface wlan0 inet dhcp
            wpa-ssid "androidku"
            wpa-psk 12345678
    iface eth0 inet dhcp
    



    Saya lepas SD card dan pasang pada Raspberry Pi dan langsung saya hubungkan dengan power adaptor. LED pada USB wifi adaptor menyala menandakan initialize daemon pada Raspi berhasil login ke SSID tadi. 🙂

  5. Tahap selanjutnya adalah melakukan scan jaringan untuk mendapatkan IP address dari Raspberry Pi dan juga laptop yang nanti akan melakukan remote connection. Berikut hasil scan dari aplikasi Network Scanner setelah saya koneksikan Raspi dan laptop ke SSID “androidku”.
    network-scan
    Masing-masing device dapat dikenali dari dari mac-address dan juga vendor dari adapter yang digunakan. Tampak pada hasil scan, IP address Raspi berada di 192.168.43.209. Dan device diatasnya adalah laptop yang nanti akan remote connection. Berikut hasil remote connection dengan SSH:
    tethering-update

Demikian percobaan saya untuk tethering Raspi dengan Android.

Salam,
Juang Nakarani