Name Last Update
imgw Loading commit data...
.gitignore Loading commit data...
CHANGES.txt Loading commit data...
MANIFEST.in Loading commit data...
README.rst Loading commit data...
agent_job.ini Loading commit data...
mailer.ini Loading commit data...
setup.py Loading commit data...

Struktur Tabel Instant Messaging Gateway

Repository ini berisi struktur tabel dan beberapa fungsi terkait paket Debian bernama im-gw. Karena paket itu masih Python 2 maka di sini hadir penggantinya.

Sesuaikan mailer.ini, lalu jalankan daemon agent:

$ ~/env/bin/imgw_mailer mailer.ini

Hasilnya:

2023-07-06 00:08:15,724 DEBUG Connect to mail.opensipkd.com:587
2023-07-06 00:08:27,004 DEBUG Login sebagai no-reply@opensipkd.com
2023-07-06 00:08:27,028 INFO Save /home/sugiana/tmp/mail/result/status.json: {'id': 'no-reply@opensipkd.com', 'status': 0, 'jawaban': 'OK'}

Biarkan dia hidup. Kini sesuaikan agent_job.ini, lalu buat tabelnya:

$ ~/env/bin/imgw_init_db agent_job.ini

Kini jalankan daemon agent job yang merupakan pemberi tugas untuk agent:

$ ~/env/bin/imgw_agent_job agent_job.ini

Hasilnya:

2023-07-06 00:09:33,546 INFO Read /home/sugiana/tmp/mail/result/status.json: {'id': 'no-reply@opensipkd.com', 'status': 0, 'jawaban': 'OK'}

Hasil di database:

imgw=> SELECT id, status, startup FROM im.agent;

-[ RECORD 1 ]-------------------
id      | no-reply@opensipkd.com
status  | 0
startup | 2023-07-06 00:08:27+07

Field status bernilai nol berarti pengirim email telah siap. Biarkan daemon itu hidup. Kini mulailah membuat email:

INSERT INTO im.antrian (penerima, pesan)
VALUES ('sugiana@gmail.com', 'Uji coba imgw');

Di daemon agent job akan tampak:

2023-07-06 00:34:02,849 INFO Write /home/sugiana/tmp/mail/job/32.json {'id': 32, 'penerima': 'sugiana@gmail.com', 'pesan': 'Uji coba imgw', 'subject': 'Uji coba imgw', 'name': 'sugiana'}

Di database row pada tabel im.antrian itu telah pindah ke tabel im.selesai:

imgw=> SELECT id, penerima, pesan, status FROM im.selesai ORDER BY id DESC LIMIT 1;

-[ RECORD 1 ]---------------
id       | 32
penerima | sugiana@gmail.com
pesan    | Uji coba imgw
status   | 1

Status positif seperti 1 berarti pesan sedang dikirim. Bila negatif berarti gagal, misalnya karena daemon agent belum aktif.

Kini lihat proses pengiriman di log daemon agent:

2023-07-06 00:34:03,623 INFO Send {'id': 32, 'penerima': 'sugiana@gmail.com', 'pesan': 'Uji coba imgw', 'subject': 'Uji coba imgw', 'name': 'sugiana'}
2023-07-06 00:34:03,689 INFO Save /home/sugiana/tmp/mail/result/32.json: {'id': 32, 'status': 0, 'jawaban': 'OK'}

Kembali ke daemon agent job tampil:

2023-07-06 00:34:03,851 INFO Read /home/sugiana/tmp/mail/result/32.json: {'id': 32, 'status': 0, 'jawaban': 'OK'}

Di database terjadi perubahan:

imgw=> SELECT id, tgl_operator, penerima, pesan, status FROM im.selesai ORDER BY id DESC LIMIT 1;

-[ RECORD 1 ]+-----------------------
id           | 32
tgl_operator | 2023-07-06 00:34:03+07
penerima     | sugiana@gmail.com
pesan        | Uji coba imgw
status       | 0

Begitulah urutannya, semoga dipahami.

Untuk menampilkannya bisa menggunakan Web Instant Messaging Gateway.