Звонки на номера при помощи модемов Wirenboard Часть 3

В части 2 не было рабочего примера для повторения, поэтому здесь выложу его

Спойлер
defineVirtualDevice("call", {
  title: "Вызов",
  cells: {
    Позвонить: {
      type: "pushbutton"
    }
  }
});
defineRule({
   whenChanged: "call/Позвонить",
    then: function(){
     log("Звоним");
      runShellCommand("mmcli -m 0 --voice-create-call='number=+79XXXXXXXXX'", {
      captureOutput: true, //Захватывать stdout
      captureErrorOutput: true, //Захватывать stderr (если нужно)
      exitCallback: function (exitCode, capturedOutput, capturedErrorOutput) //Функция, в которую попадает вывод
            {
                var call_count = capturedOutput.substr(67);
                call_count = call_count.replace(/\n/g, '');
                //log("cmd output: " + capturedOutput); //строка полностью
                //log("call number: " + call_count);
                var call_command = "mmcli -m wbc 0 --call=" + call_count + " --start";
                //log("call_command: " + call_command);
                runShellCommand(call_command); 
                //log("cmd Erroroutput: " + capturedErrorOutput);
                var delete_command = "mmcli -m wbc 0 --voice-delete-call=/org/freedesktop/ModemManager1/Call/" + call_count;
                runShellCommand(delete_command);
                if (exitCode){log.error("При выполнении записи в порт ошибка")}
            }
         }); 
 
    }
});
4 лайка