Блокировка SIM карт после 72 часов

Например у меня оператор выдает при соединении с ограничением адрес из другой подсети. Я его проверяю - и переподнимаю соединение.

Пример управления соединением в функции “nmcliReconnect”:

log.info("strt")
//Определим переменные.
var interfaceControlName = "network/GPRS IP" //топик с адресом соединения
var checkPeriod = 5000 //период проверки, мс
var connectionName = "wb-gsm-sim1" //имя соединения

var partIP = "100.211" //старшая часть адреса, текст

//Опишем, пожалуй, функцию проверки отдельно
function interfaceControl(cName, ipPart){ //если не подключено или подключено с верным адресов - возвращается true; иначе - false
  var currentAddressString = dev[cName];
  log.debug("При проверке текущего адреса получен", currentAddressString)
  if (currentAddressString == null) {
    log.debug("адреса нет");
    return true;
  } else { //Тут проверим адрес (Который не null) на соответствие заданному
    if ((currentAddressString.indexOf("ipPart",0)) == 0){
      log.debug("адреса верный");
      return true;
    }
  }
  log.debug("адрес неверный");
  return false; 
}

//функция разрывающая-поднимающая соединения
function nmcliReconnect(conName){ //аргумент - имя соединения NM
  runShellCommand("nmcli connection down "+ conName+"; sleep 6; nmcli connection up "+conName, {
    captureOutput: true,
    exitCallback: function(exitCode, capturedOutput) {
        if (exitCode === 0) {
            return true
        }
    }
});

}


//log.info("проверяем", interfaceControl(interfaceControlName, partIP))

//тут опишем правило, которое будет срабатывать при изменении самого адреса. И вызывать функцию.
var checkRule = defineRule("change_IP", {
  whenChanged: interfaceControlName, // топик, при изменении которого сработает правило
  then: function (newValue, devName, cellName) {
    log.info("devName:{}, cellName:{}, newValue:{}", devName, cellName, newValue); // вывод сообщения в лог
    log.debug("devName:{}, cellName:{}, newValue:{}", devName, cellName, newValue); // вывод сообщения в лог
    if (!interfaceControl(interfaceControlName, partIP)){
      log.debug("при смене адреса новый:{} не прошел проверку", newValue); // вывод сообщения в лог
      //nmcliReconnect(connectionName)
      log.info("соединение:{} перезапущено. Адрес {} некорректен", connectionName, newValue);
    } else {
      log.info("при смене адреса новый:{} пуст или прошел проверку", newValue);
    }
 }
});

runRule(checkRule)

Да.
Пример реализации (не мой): Не понятно чем занимается wb-connection-manager - #15 от пользователя VitP
Но в общем тоже просто выполнением mmcli с аргументами.