Langkah Pertama
Pada langkah awal yang perlu diperhatikan yaitu mysql sudah bisa jalan, untuk mengetahui jalan tidaknya mysql kirim sms dengan menambahkan isi pesan dan nomor tujuan di tabel outbox.
$ mysql -u root -p
mysql> use sms
mysql> insert into outbox (DestinationNumber, TextDecoded) values ('085629xxxxx','isi sms');
mysql> select * from sentitems;Keempat cara diatas mungkin agak membingungkan, OK lebih jelasnya saya akan perlihatkan versi GUI yaitu dengan menggunakan interface phpmyadmin.
Masuk ke browser dengan url http://127.0.0.1/phpmyadmin
Kirim SMS dengan memasukkan data di tabel outbox dengan mengisi field DestinationNumber dan TextDecoded saja, dan pastikan SMS telah terkirim dengan melihat tabel sentitems
Langkah Kedua
Sampai langkah ini sms hanya berjalan dengan panjang karakter 153 atau 1 halaman sms, untuk membuat menjadi lebih dari 1 halaman tambahkan triger pada tabel outbox
Pilih database sms, dan pilih menu SQL
Masukkan dua trigger yaitu trigger sebelum insert ke outbox dan trigger setelah insert outbox
Trigger sebelum insert di tabel outbox
DROP TRIGGER IF EXISTS `outbox_before_ins_tr`;
DELIMITER //
CREATE TRIGGER `outbox_before_ins_tr` BEFORE INSERT ON `outbox`
FOR EACH ROW BEGIN
if length(new.TextDecoded)>160 then
set @countM=hex((length(new.TextDecoded) div 154)+1);
set @remains=substring(new.TextDecoded from 154);
set @randomUDH=hex(FLOOR(1 + (RAND() * 254)));
if length(@countM)=1 then
set @countM=CONCAT('0',@countM);
end if;
if length(@remains)>0 then
set new.UDH=concat('050003',@randomUDH, @countM,'01');
set new.TextDecoded=left(new.TextDecoded,153);
set new.MultiPart='true';
set new.RelativeValidity=255;
else
set new.MultiPart='false';
end if;
end if;
END
//
DELIMITER ;
Trigger setelah insert di tabel outbox
DROP TRIGGER IF EXISTS `outbox_after_ins_tr`;Eksekusi kedua trigger di atas satu persatu.
DELIMITER //
CREATE TRIGGER `outbox_after_ins_tr` AFTER INSERT ON `outbox`
FOR EACH ROW BEGIN
set @seq=2;
set @udh=left(new.udh,10);
while (length(@remains)>0 and @seq<256) do
set @part=left(@remains,153);
if length(hex(@seq))=1 then
set @seqx=CONCAT('0',hex(@seq));
else
set @seqx=hex(@seq);
end if;
set @remains=substring(@remains from 154);
insert into outbox_multipart (SequencePosition,UDH,TextDecoded,id) values (@seq,concat(@udh,@seqx),@part,new.ID);
set @seq=@seq+1;
end while;
END
//
DELIMITER ;
Langkah Ketiga
Setelah menambahkan trigger cek apakah trigger sudah terpasang
Masuk ke url http://127.0.0.1/phpmyadmin - pilih database SMS (database yang telah dibuat untuk SMS Gateway) - pilih tabel outbox - scroll kebawah dan pilih Details...
Jika berhasil akan muncul dua trigger seperti gambar di atas
Langkah Terakhir
Langkah terkahir yaitu tes apakah trigger sudah berjalan dan berhasil dengan mengirimkan SMS lebih dari 1 halaman.
Kirim SMS dengan menambahkan data di tabel outbox pada database SMS dan isi field DestinationNumber dan TextDecoded (di field TextDecoded isikan lebih dari 153 karakter).
Jika berhasil akan terlihat pecahan sms pada tabel outbox dan tabel outbox_multipart
Dan beberapa saat terlihat juga pada tabel senditems sebagai pesan terkirim.
5 comments:
bagaimana bila diterapkan dalam mode auto broadcast, kan sms lebih dari 153 char akan otomatis di pecah saat masuk di inbox. untuk menyatukan kembali dan menjalankan triger ini bagaimana. trma kasih
@fajar
thanks fajar dah berkunjung..
sebenarnya kita bisa ngakalin sendiri untuk menyatukan inbox lebih dari 153 karakter, buat saja satu tabel misal nama tabelnya tempinbox sebagai temporary yang isi fieldnya sama dengan tabel inbox.
nah di tabel inbox kita bikin satu trigger before insert untuk menggabungkan pecahan inbox tadi ke tabel tempinbox, baru di tabel tempinbox kita bisa terapin trigger auto broadcast.
sangat membantu..thx
trigger before insertnya di coba di aku kok error ya . . kalo after insert sih langsung bisa . . bisa bantu mba?
2 queries executed, 1 success, 1 errors, 1 warnings
@Denisha Galery Ada pesan errornya kah ?
Sebelumnya mungkin bisa pastiin dulu semua table sudah dibuat