В части 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("При выполнении записи в порт ошибка")}
}
});
}
});