Mengatasi “simultaneous session limit reached” atau “tidak ada sesi”

Pesan “simultaneous session limit reached” in iterjadi ketika user memasukkan user/voucher namun di database uer manager masih terdapat session user/voucher tersebut sedang/masih aktif.
Biasanya ini terjadi ketika router/server mati secara mendadak (biasanya hilangnya daya listrik).
Ketika router mati secara mendadak router tersebut tidak sempat mengirim informasi ke user manager bahwa user tersebut sudah tidak aktif/putus koneksi.

Untuk mengatasi hal tersebut kita bisa membuat sebuah script yang akan menghapus semua sesi ketika koneksi router ke server user manager tersebut.
Pada tutorial kali ini saya memanfaatkan fitu Netwatch yang terdapat di RouterOS MikroTik.

Netwatch

Script

/tool user-manager session remove [find where active]

Cara kerja:

Ketika koneksi server dengan Host/IP tersebut terputus/down maka akan menjalankan perintah tersebut.

Script & Scheduler

Jika netwatch berfungsi untuk menghapus active session ketika koneksi ke client (User manager client) terputus.
Maka dengan script & scheduler ini berfungsi agar ketika server userman itu sendiri mati (Shutdown/Restart) lalu hidup kembali, ketika startup server akan menjalankan script untuk menghapus active session

Buat Script

Buat Scheduler

Pengembangan external user manager

Profile Script On Up & On Down

Jika user manager memiliki beberapa router maka cara penghapusan session bisa ditambah dengan parameter spesifik IP router, agar session router yang lain tidak ikut terhapus.
Perintahnya adalah

On Up

#UBAH/TAMBAHKAN PANGGILAN VARIABEL user MENJADI nama
:local nama "$user"

#MEMBUAT DAN MENDAPATKAN VARIABEL IP
:local ipaddr [/ppp active get [find name=$user] address];


#CATAT KETERANGAN DI LOG
/log warning "nama $nama $ipaddr telah tersambung kembali";

On down

#UBAH/TAMBAHKAN PANGGILAN VARIABEL user MENJADI nama

:local nama "$user"

#MEMBUAT DAN MENDAPATKAN VARIABEL IP
#KARENA KITA TIDAK BISA MENDAPATKAN VARIABEL IP DARI PPP ACTIVE LAGI SEBGANTINYA ADALAH KITA MENDAPATKAN IP DARI SECRET

:local ipaddr [/ppp secret get [find name=$user] remote-address];

#HAPUS USER MANAGER SESSION

/tool user-manager session remove [find host-ip=$ipaddr];


#CATAT KETERANGAN DI LOG
/log warning "user manager session dengan router ip $ipaddr telah dihapus <koneksi $nama terputus>";

Keterangan:

Sumber/referensi:
https://cikalmerdeka.com/solusi-hotspot-voucer-tidak-bisa-login-lagi-setelah-restart-atau-mati-lampu/

Saya sendiri