Halaman

Selasa, 16 September 2014

SMS Gateway di Ubuntu Server 14.04 dengan Gammu & Kalkun

Instalasi

Pastikan dulu repository pake yang lokal biar cepet .... heheheh liat postingan disini kalo lupa.

Karena kita akan menggunaka Kalkun untuk interfacing SMS Gateway nya, jadi kita buuh software ini :
  1. Apache 2.x.x
  2. PHP 5.x.x (with mysql, session, hash, json extension)
  3. PHP-CLI
  4. MySQL 5.x.x
  5. Gammu
  6. Kalkun
Untuk poin 1,2,3 dan 4 googling aja ya, pokoknya webserver mesti jalan.


Kalo pake modem serial port, untuk cek konfigurasi nya silakan install wvdial terlebih dahulu 
$apt-get install wvdial
Kemudian konfigurasi dengan perintah :
$sudo wvdialconf /etc/wvdial.conf
Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 --
ttyS0<*1>: failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- OK
ttyS0<*1>: ATQ0 V1 E1 Z -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyS0<*1>: Modem Identifier: ATI -- WAVECOM MODEM
ttyS0<*1>: Max speed is 115200; that should be safe.
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyS1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S2   S3   S4   S5   S6   S7   S8   S9
Modem Port Scan<*1>: S10  S11  S12  S13  S14  S15  S16  S17
Modem Port Scan<*1>: S18  S19  S20  S21  S22  S23  S24  S25
Modem Port Scan<*1>: S26  S27  S28  S29  S30  S31

Found a modem on /dev/ttyS0.
Modem configuration written to /etc/wvdial.conf.
ttyS0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Install GAMMU
  1. Update dan install aplikasi gammu dan gammu-smsd dengan perintah berikut ;
    $ sudo apt-get update
    $ sudo apt-get install gammu gammu-smsd
  2. Untuk melihat konfigurasi port device, gunakan perintah berikut :
    $ dmesg | grep tty
    [12321.308078] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB0
    [12321.308275] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB1
  3. Konfigurasi Gammu terlebih dahulu ;
    $ sudo gammu-config
  4. Maka akan keluar form berikut ;
    1. Isi dengan variabel seperti dibawah dan pilih Save ;
      port = /dev/ttyUSB0 # disesuaikan
      connection = at115200 # disesuaikan
      synchronizetime = yes
      logfile = /var/log/gammulog
      logformat = textall
      use_locking = # isi yes jika ingin resource modem di kunci
    2. Perintah diatas akan menyimpan file config dengan nama .gammurc di home user : ~/.gammurc
    3. Konfigurasi berkas /etc/gammu-smsdrc
      [gammu]
      port = /dev/ttyUSB0 # change this
      connection = at115200 # change this
      
      [smsd]
      PIN = ''
      service = sql
      driver = native_mysql
      DeliveryReport = sms
      logfile = /var/log/smsdlog
      debuglevel = 1 # change to 255 if you want to debug
      
      User = root # change this
      password = root # change this
      pc = localhost
      database = kalkun
      runonreceive = /var/www/kalkun/scripts/daemon.sh
    4. WARNING!! untuk menggunakan perintah gammu, matikan dulu service gammu-smsd. Pastikan dengan cara ;
      $ sudo /etc/init.d/gammu-smsd stop
    5. Kemudian baru bisa cek identify modem dengan perintah ;
      $ sudo gammu --identify
      Device               : /dev/ttyUSB0
      Manufacturer         : huawei
      Model                : E220 (E220)
      Firmware             : 11.117.10.02.00
      IMEI                 : 351827014879XXX
      SIM IMSI             : 510012541759XXX
    6. Untuk testing pengiriman SMS menggunakan perintah berikut ;
      $ sudo gammu --sendsms text 0857257XXXXX
      Enter the message text and press Ctrl+D:
      test server
      If you want break, press Ctrl+C...
      Sending SMS 1/1....waiting for network answer..OK, message reference=3
    7. Untuk cek pulsa (ex.simpati) ;
      $ sudo gammu --getussd *888#
      Press Ctrl+C to break...
      USSD received
      Status : No action needed
      Service reply : “Sisa Pulsa Anda Rp.4950. Penggunaan pulsa di periode ini Rp.11150. Aktif s.d. 14/05/2011. Cari t4 menarik dsekitarmu dgn TelkomselLacak. Hub *123*55#”
    8. Setelah itu, jalankan service gammu-smsd untuk aplikasi kalkun ;
      $ sudo /etc/init.d/gammu-smsd start

    Install Kalkun

  1. Download aplikasi Kalkun di sini http://sourceforge.net/projects/kalkun/files
    $ wget -c http://nchc.dl.sourceforge.net/project/kalkun/kalkun/X.X/kalkun_X.X.zip
  2. Buat folder web Kalkun dan ekstrak file ;
    $ sudo mkdir /var/www/kalkun
    $ sudo mv kalkun_X.X.zip /var/www/kalkun
    $ cd /var/www/kalkun/
    $ sudo unzip kalkun_X.X.zip
  3. Buat database kalkun
    $ mysql -u root -p
    mysql> CREATE DATABASE kalkun;
    mysql> quit
  4. Edit config Kalkun database di /var/www/kalkun/application/config/database.php
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root"; // change this
    $db['default']['password'] = "root"; // change this
    $db['default']['database'] = "kalkun"; // change this
    $db['default']['dbdriver'] = "mysql";
  5. Ekstrak example database struktur Gammu agar bisa di import, caranya ;
    $ sudo gunzip /usr/share/doc/gammu/examples/sql/mysql.sql.gz
  6. Import konfig database struktur Gammu;
    $ mysql kalkun -u root -p < /usr/share/doc/gammu/examples/sql/mysql.sql
  7. Konfigurasi path daemon di /var/www/kalkun/scripts/daemon.sh, menjadi dibawah ini ;
    #!/bin/sh
    
    # Configure this (use absolute path)
    PHP=/usr/bin/php # php cli path
    DAEMON=/var/www/kalkun/scripts/daemon.php # daemon.php path
    
    # Execute
    $PHP $DAEMON
    ~            
  8. Jangan lupa juga cek path konfigurasi /var/www/kalkun/scripts/daemon.php dibagian;
    $url = "http://domain.tld/kalkun";
  9. Buka web browser mengarah ke http://domain.tld/kalkun/ dan selanjutnya akan terjadi proses instalasi.
  10. Pada akhir instalasi ada pesan gagal untuk menghapus folder install, hapus secara manual ;
    $ sudo rm -rf /var/www/kalkun/install
  11. Akses http://domain.tld/kalkun/ kembali dengan user dan pass default user=kalkun pass=kalkun. 

Startup Daemon

Untuk menjalankan daemon setiap kali komputer restart, ketik perintah berikut ;
$ sudo update-rc.d gammu-smsd defaults 

Log Membengkak

Agar log tidak membengkak, berikut tahapan untuk mengatasi hal tersebut, sebaiknya anda menggunakan hak akses superuser atau root :
  1. Sesuaikan tempat penyimpanan berkas log, misal di /etc/smsdlog
  2. Membuat berkas smsdlog di /etc/logrotate.d/
    $ sudo vim /etc/logrotate.d/smsdlog 
  3. Membuat berkas smsdlog di /etc/logrotate.d/ :
    /var/log/smsdlog {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    create 640 root root
    endscript
    } 
  4. Selanjutnya membuat penjadwalan menggunakan perintah crontab :
    $ sudo su 
    # crontab -e 
  5. Isi dengan baris dibawah ini, agar daemon gammu-smsd di-restart setiap jam 06.50
    50 6 * * * /etc/init.d/gammu-smsd restart 

Error database struktur

Jika dilihat kembali pesan error-nya : Database structures version: 11, SMSD current version: 12, maka sebaiknya lakukan perintah dibawah ini pada database server yang digunakan dalam hal ini adalah MySQL.
$ mysql -u root -p
mysql> UPDATE `kalkun`.`gammu` SET `Version` = '12' WHERE `gammu`.`Version` =11;
mysql> quit

Connect/Disconnect di Kalkun

Connect/Disconnect di Kalkun hanya perkiraan dari waktu terakhir gammu-smsd mengupdate aktifitas dengan waktu sekarang. Defaultnya adalah 10 menit, bisa diganti di file /var/www/kalkun/application/config/kalkun_settings.php,
$config['modem_tolerant'] = ’10′;
Beberapa mungkin yang bisa di konfigurasi;
$config['sms_bomber'] = FALSE;
$config['enable_emoticons'] = FALSE;
$config['sms_advertise'] = FALSE;
$config['sms_advertise_message'] = "This is ads message";

Modem Tidak terdeteksi

Ketika melakukan perintah dmesg dan tidak menemukan modem terknoneksi, berikut langkah solusinya (ex. Modem Huawei e1550) ;
  1. Install package usb-modeswitch
    $ sudo apt-get install usb-modeswitch
  2. Buat rule baru untuk udev:
    $ sudo vim /etc/udev/rules.d/15-huawei-155x.rules
  3. Ketik dengan isian berikut :
    SUBSYSTEM=="usb",
    ATTRS{idProduct}=="1446",
    ATTRS{idVendor}=="12d1",
    RUN+="/lib/udev/modem-modeswitch --vendor 0x$attr{idVendor} --product 0x$attr{idProduct} --type option-zerocd"
  4. Simpan dan cabut modem dan colokkan kembali. Untuk keterangan idProduct dan idVendor dapat di temukan dari perintah berikut ;
    $ sudo lsusb -v | less
    Bus 005 Device 004: ID 12d1:1446 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0 
      bDeviceProtocol         0 
      bMaxPacketSize0        64
      idVendor               0x12d1 Huawei Technologies Co., Ltd.
      idProduct              0x1446 E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
      bcdDevice            0.00
      iManufacturer           2 HUAWEI Technology
      iProduct                1 HUAWEI Mobile
      iSerial                 0 
      bNumConfigurations      1

Memindahkan Port USB Modem, Service menjadi tidak berjalan

Kasus ini terjadi jika Anda memindah modem ke port USB yang lain. Maka service tidak akan berjalan, karena config masih mendeteksi lokasi port USB sebelumnya.
  1. Cek perubahan port menggunakan perintah wvdial :
    $ sudo wvdialconf
    $ cat /etc/wvdial.conf 
    [Dialer Defaults]
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    Modem Type = Analog Modem
    ; Phone = <Target Phone Number>
    ISDN = 0
    ; Password = <Your Password>
    New PPPD = yes
    ; Username = <Your Login Name>
    Modem = /dev/ttyUSB1
    Baud = 9600 
  2. Tampak pada konfigurasi wvdial posisi modem pada ttyUSB1, kemudian ubah konfigurasi dan sesuaikan port USBnya pada file /root/.gammurc dan /etc/gammu-smsdlog.

Debugging Web Kalkun

Untuk mengidentifikasi error pada web Kalkun, aktifkan log debugging pada config Kalkun seperti cara berikut ;
$sudo vim kalkun/application/config/config.php
Ubah baris log_treshold menjadi seprti berikut
$config['log_threshold'] = 4;
Akses menggunakan browser dengan alamat berikut ;
http://localhost/index.php/daemon/message_routine

Startup Daemon Bermasalah Ketika Restart Server

Kendala ini ketika server sms restart secara tidak sengaja karena masalah kelistrikan service gammu-smsd tidak bisa melakukan auto startup daemon padahal sudah kita set secara automatis. Hal ini bisa diakali dengan menambahkan script start service gammu pada file rc.local. Langkah-langkahnya sebagai berikut :
Hapus Auto Daemon gammu dengan perintah dibawah ini
$ sudo update-rc.d -f gammu-smsd remove
Kemudian edit file /etc/rc.local, kemudian tambahkan baris menjadi seperti dibawah ini
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10
/etc/init.d/gammu-smsd start
exit 0

**************************************************************************

Tidak ada komentar:

Posting Komentar