Untuk Siapa artikel ini :
Level pengguna : medium - advance
OS : Linux (ubuntu 14.04)
Asumsi :
Cara menginstall lamp Linux apache, mySQL and PHP
Mari kita mulai
Setelah cukup lama vakum dari aktifitas blogging, kali ini saya akan membahas tentang salah satu fasilitas yang sebenarnya sudah lama ada dan sudah lama saya gunakan yaitu Gammu. Gammu adalah command Line tools yang dapat digunakan untuk mengirim dan menerima SMS dan MMS. Namun demikian sampai saat ini kelihatannya gammu hanya mendukung operator GSM.
Seperti biasa saya menggunakan Linux Ubuntu 14.04 LTS. Karena paket gammu ini tidak termasuk paket default maka perlu di install terlebih dahulu. Pastikan anda terhubung dengan internet.
Buka Terminal dengan
setelah selesai install juga gammu-smsd dengan cara
Selanjutnya gammu sudah siap digunakan.
Pada tulisan ini saya akan fokus ke gammu-smsd, yaitu aplikasi untuk menjalankan gammu di background (sementara anda dapat melakukan hal lain dengan komputer anda). Dan saya juga akan menggunakan database MySQL sebagai backbonenya karena saya ingin memanfaatkan sms ini ke dalam banyak hal antara lain :
Untuk saat ini saya hanya akan membahas cara menyambungkan gammu dengan modem/ HP anda. Cara mendeteksi HP/Modem sudah saya tulis di bagian lain di blog ini, silahkan di search
Kembali ke bahasan
Pada saat gammu-sms dijalankan, file konfigurasi yang dibaca pertama kali adalah sebuah file gammu-smsdrc yang ada di folder etc. jadi hal pertama yang harus anda modifikasi adalah file configurasi tersebut
saya menggunakan geany sebagai text editor saya. Tentu saja anda bisa pilih text editor yang lain.
Cara mengedit
perhatikan baris di bawah [gammu] dan [smsd] keduanya adalah bagian terpenting untuk mengakses HP / Modem anda
Konfigurasi saya tampak seperti ini
port adalah port tempat modem / HP anda di colokkan di Komputer. Untuk colokan ke USB biasanya akan terdeteksi di /dev/ttUSB di tambah nomor. pada contoh di atas portnya ada di USB2
connection adalah mode koneksi. Standar koneksi modem/HP dapat menggunakan at. anda juga dapat menggunakan koneksi bluetooth untuk komunikasi dengan komputer. Pada konfigurasi inilah yang harus disesuiakan
service = sql berarti mengarahkan sms keluar masuk ke dalam database. Secara default gammu akan meletakkan sebagai teks dan disimpan di
Oleh karenanya option ini harus diarahkan ke database untuk keperluan manipulasi
driver = native_mysql adalah mengarahkan gammu-smsd untuk menggunakan database MySQL. tentu anda harus menginstall MySQL server terlebih dahulu
host = localhost artinya menggunakan localhost (komputer ini) sebagai host
user dan password adalah nama dan password untuk pengguna data base smsd. Database yang digunakan secara default adalah database smsd. adapun struktur database smsd adalah sebagai berikut
Untuk mengirim sms, anda tinggal memasukkan data ke tabel outbox. tabel inbox adalah berisis semua sms masuk. tabel sent berisi semua sms yang berhasil dikirim.
Sedikit tentang gammu
Berbeda dengan gammu-smsd, gammu memiliki konfigurasi yang harus dibuat sendiri dan diletakkan di salah satu dari folder berikut ini
pada intinya, hanya configurasi [gammu] yang perlu dimodifikasi, yaitu connection dan devicenya saja.
Salah satu software siap pakai yang dikembangkan berdasarkan gammu adalan wammu. silahkan search di internet.
Level pengguna : medium - advance
OS : Linux (ubuntu 14.04)
Asumsi :
- User sudah mahir menggunakan MySQL
- User sudah mengenal dengan baik struktur file Linux
- user sudah mengetahui cara koneksi modem dengan Linux. Jika belum lihat posting saya lainnya dalam blog ini
- MySQL server, Apache2, PHP sudah terinstall (jika belum gunakan perintah berikut
Cara menginstall lamp Linux apache, mySQL and PHP
sudo apt-get install ubuntu-restricted-extras
sudo apt-get install lamp-server^ ( Saya sangat suka ini karena hanya satu perintah akan menginstall paket PHP, MySQL, dan Apache sekaligus)
sudo apt-get install phpmyadmin (Hanya jika anda menginginkan paket ini_
Mari kita mulai
Setelah cukup lama vakum dari aktifitas blogging, kali ini saya akan membahas tentang salah satu fasilitas yang sebenarnya sudah lama ada dan sudah lama saya gunakan yaitu Gammu. Gammu adalah command Line tools yang dapat digunakan untuk mengirim dan menerima SMS dan MMS. Namun demikian sampai saat ini kelihatannya gammu hanya mendukung operator GSM.
Seperti biasa saya menggunakan Linux Ubuntu 14.04 LTS. Karena paket gammu ini tidak termasuk paket default maka perlu di install terlebih dahulu. Pastikan anda terhubung dengan internet.
Buka Terminal dengan
Ctrl+Alt+T
sudo apt-get install gammu
setelah selesai install juga gammu-smsd dengan cara
sudo apt-get install gammu-smsd
Selanjutnya gammu sudah siap digunakan.
Pada tulisan ini saya akan fokus ke gammu-smsd, yaitu aplikasi untuk menjalankan gammu di background (sementara anda dapat melakukan hal lain dengan komputer anda). Dan saya juga akan menggunakan database MySQL sebagai backbonenya karena saya ingin memanfaatkan sms ini ke dalam banyak hal antara lain :
- Melakukan registrasi dengan cara ketik REG dst..
- Melakukan ujian dengan sms untuk mahasiswa
- Mengirim feedback ujian secara otomatis..
- Mengirim Bulk SMS kepada banyak orang sekaligus
- Mengirim SMS yang dipersonalisasi, misalnya dengan menyebutkan nama dalam sekali ketik dst...
Untuk saat ini saya hanya akan membahas cara menyambungkan gammu dengan modem/ HP anda. Cara mendeteksi HP/Modem sudah saya tulis di bagian lain di blog ini, silahkan di search
Kembali ke bahasan
Pada saat gammu-sms dijalankan, file konfigurasi yang dibaca pertama kali adalah sebuah file gammu-smsdrc yang ada di folder etc. jadi hal pertama yang harus anda modifikasi adalah file configurasi tersebut
saya menggunakan geany sebagai text editor saya. Tentu saja anda bisa pilih text editor yang lain.
Cara mengedit
sudo geany ./etc/gammu-smsdrc
perhatikan baris di bawah [gammu] dan [smsd] keduanya adalah bagian terpenting untuk mengakses HP / Modem anda
Konfigurasi saya tampak seperti ini
[gammu]
port = /dev/ttyUSB2
connection = at
[smsd]
service = sql
driver = native_mysql
host = localhost
LogFile = syslog
User = namaPengguna
Password = sangatrahasia
PC = localhost
Database = smsd
debuglevel = 0
port adalah port tempat modem / HP anda di colokkan di Komputer. Untuk colokan ke USB biasanya akan terdeteksi di /dev/ttUSB di tambah nomor. pada contoh di atas portnya ada di USB2
connection adalah mode koneksi. Standar koneksi modem/HP dapat menggunakan at. anda juga dapat menggunakan koneksi bluetooth untuk komunikasi dengan komputer. Pada konfigurasi inilah yang harus disesuiakan
service = sql berarti mengarahkan sms keluar masuk ke dalam database. Secara default gammu akan meletakkan sebagai teks dan disimpan di
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/
Oleh karenanya option ini harus diarahkan ke database untuk keperluan manipulasi
driver = native_mysql adalah mengarahkan gammu-smsd untuk menggunakan database MySQL. tentu anda harus menginstall MySQL server terlebih dahulu
host = localhost artinya menggunakan localhost (komputer ini) sebagai host
user dan password adalah nama dan password untuk pengguna data base smsd. Database yang digunakan secara default adalah database smsd. adapun struktur database smsd adalah sebagai berikut
-- phpMyAdmin SQL Dump
-- version 2.8.0.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 10, 2006 at 11:08 PM
-- Server version: 5.0.18
-- PHP Version: 5.1.3
--
-- Database: `smsd`
--
-- --------------------------------------------------------
--
-- Table structure for table `daemons`
--
CREATE TABLE `daemons` (
`Start` text NOT NULL,
`Info` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `daemons`
--
-- --------------------------------------------------------
--
-- Table structure for table `gammu`
--
CREATE TABLE `gammu` (
`Version` integer NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `gammu`
--
INSERT INTO `gammu` (`Version`) VALUES (14);
-- --------------------------------------------------------
--
-- Table structure for table `inbox`
--
CREATE TABLE `inbox` (
`UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`ReceivingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
`Text` text NOT NULL,
`SenderNumber` varchar(20) NOT NULL default '',
`Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
`UDH` text NOT NULL,
`SMSCNumber` varchar(20) NOT NULL default '',
`Class` integer NOT NULL default '-1',
`TextDecoded` text NOT NULL default '',
`ID` integer unsigned NOT NULL auto_increment,
`RecipientID` text NOT NULL,
`Processed` enum('false','true') NOT NULL default 'false',
PRIMARY KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Dumping data for table `inbox`
--
-- --------------------------------------------------------
--
-- Table structure for table `outbox`
--
CREATE TABLE `outbox` (
`UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
`SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
`SendBefore` time NOT NULL DEFAULT '23:59:59',
`SendAfter` time NOT NULL DEFAULT '00:00:00',
`Text` text,
`DestinationNumber` varchar(20) NOT NULL default '',
`Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
`UDH` text,
`Class` integer default '-1',
`TextDecoded` text NOT NULL default '',
`ID` integer unsigned NOT NULL auto_increment,
`MultiPart` enum('false','true') default 'false',
`RelativeValidity` integer default '-1',
`SenderID` varchar(255),
`SendingTimeOut` timestamp NULL default '0000-00-00 00:00:00',
`DeliveryReport` enum('default','yes','no') default 'default',
`CreatorID` text NOT NULL,
PRIMARY KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE INDEX outbox_date ON outbox(SendingDateTime, SendingTimeOut);
CREATE INDEX outbox_sender ON outbox(SenderID);
--
-- Dumping data for table `outbox`
--
-- --------------------------------------------------------
--
-- Table structure for table `outbox_multipart`
--
CREATE TABLE `outbox_multipart` (
`Text` text,
`Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
`UDH` text,
`Class` integer default '-1',
`TextDecoded` text default NULL,
`ID` integer unsigned NOT NULL default '0',
`SequencePosition` integer NOT NULL default '1',
PRIMARY KEY (`ID`, `SequencePosition`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `outbox_multipart`
--
-- --------------------------------------------------------
--
-- Table structure for table `pbk`
--
CREATE TABLE `pbk` (
`ID` integer NOT NULL auto_increment,
`GroupID` integer NOT NULL default '-1',
`Name` text NOT NULL,
`Number` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `pbk`
--
-- --------------------------------------------------------
--
-- Table structure for table `pbk_groups`
--
CREATE TABLE `pbk_groups` (
`Name` text NOT NULL,
`ID` integer NOT NULL auto_increment,
PRIMARY KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Dumping data for table `pbk_groups`
--
-- --------------------------------------------------------
--
-- Table structure for table `phones`
--
CREATE TABLE `phones` (
`ID` text NOT NULL,
`UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
`TimeOut` timestamp NOT NULL default '0000-00-00 00:00:00',
`Send` enum('yes','no') NOT NULL default 'no',
`Receive` enum('yes','no') NOT NULL default 'no',
`IMEI` varchar(35) NOT NULL,
`NetCode` varchar(10) default 'ERROR',
`NetName` varchar(35) default 'ERROR',
`Client` text NOT NULL,
`Battery` integer NOT NULL DEFAULT -1,
`Signal` integer NOT NULL DEFAULT -1,
`Sent` int NOT NULL DEFAULT 0,
`Received` int NOT NULL DEFAULT 0,
PRIMARY KEY (`IMEI`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `phones`
--
-- --------------------------------------------------------
--
-- Table structure for table `sentitems`
--
CREATE TABLE `sentitems` (
`UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
`SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
`DeliveryDateTime` timestamp NULL,
`Text` text NOT NULL,
`DestinationNumber` varchar(20) NOT NULL default '',
`Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
`UDH` text NOT NULL,
`SMSCNumber` varchar(20) NOT NULL default '',
`Class` integer NOT NULL default '-1',
`TextDecoded` text NOT NULL default '',
`ID` integer unsigned NOT NULL default '0',
`SenderID` varchar(255) NOT NULL,
`SequencePosition` integer NOT NULL default '1',
`Status` enum('SendingOK','SendingOKNoReport','SendingError','DeliveryOK','DeliveryFailed','DeliveryPending','DeliveryUnknown','Error') NOT NULL default 'SendingOK',
`StatusError` integer NOT NULL default '-1',
`TPMR` integer NOT NULL default '-1',
`RelativeValidity` integer NOT NULL default '-1',
`CreatorID` text NOT NULL,
PRIMARY KEY (`ID`, `SequencePosition`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE INDEX sentitems_date ON sentitems(DeliveryDateTime);
CREATE INDEX sentitems_tpmr ON sentitems(TPMR);
CREATE INDEX sentitems_dest ON sentitems(DestinationNumber);
CREATE INDEX sentitems_sender ON sentitems(SenderID);
--
-- Dumping data for table `sentitems`
--
--
-- Triggers for setting default timestamps
--
DELIMITER //
CREATE TRIGGER inbox_timestamp BEFORE INSERT ON inbox
FOR EACH ROW
BEGIN
IF NEW.ReceivingDateTime = '0000-00-00 00:00:00' THEN
SET NEW.ReceivingDateTime = CURRENT_TIMESTAMP();
END IF;
END;//
CREATE TRIGGER outbox_timestamp BEFORE INSERT ON outbox
FOR EACH ROW
BEGIN
IF NEW.InsertIntoDB = '0000-00-00 00:00:00' THEN
SET NEW.InsertIntoDB = CURRENT_TIMESTAMP();
END IF;
IF NEW.SendingDateTime = '0000-00-00 00:00:00' THEN
SET NEW.SendingDateTime = CURRENT_TIMESTAMP();
END IF;
IF NEW.SendingTimeOut = '0000-00-00 00:00:00' THEN
SET NEW.SendingTimeOut = CURRENT_TIMESTAMP();
END IF;
END;//
CREATE TRIGGER phones_timestamp BEFORE INSERT ON phones
FOR EACH ROW
BEGIN
IF NEW.InsertIntoDB = '0000-00-00 00:00:00' THEN
SET NEW.InsertIntoDB = CURRENT_TIMESTAMP();
END IF;
IF NEW.TimeOut = '0000-00-00 00:00:00' THEN
SET NEW.TimeOut = CURRENT_TIMESTAMP();
END IF;
END;//
CREATE TRIGGER sentitems_timestamp BEFORE INSERT ON sentitems
FOR EACH ROW
BEGIN
IF NEW.InsertIntoDB = '0000-00-00 00:00:00' THEN
SET NEW.InsertIntoDB = CURRENT_TIMESTAMP();
END IF;
IF NEW.SendingDateTime = '0000-00-00 00:00:00' THEN
SET NEW.SendingDateTime = CURRENT_TIMESTAMP();
END IF;
END;//
DELIMITER ;
Untuk mengirim sms, anda tinggal memasukkan data ke tabel outbox. tabel inbox adalah berisis semua sms masuk. tabel sent berisi semua sms yang berhasil dikirim.
Sedikit tentang gammu
Berbeda dengan gammu-smsd, gammu memiliki konfigurasi yang harus dibuat sendiri dan diletakkan di salah satu dari folder berikut ini
$XDG_CONFIG_HOME/gammu/config
~/.config/gammu/config
~/.gammurc
/etc/gammurc
pada intinya, hanya configurasi [gammu] yang perlu dimodifikasi, yaitu connection dan devicenya saja.
Salah satu software siap pakai yang dikembangkan berdasarkan gammu adalan wammu. silahkan search di internet.
Tidak ada komentar:
Posting Komentar
Write your comment here