Сделал себе такой скриптик:
on('javascript.0.Voice.Caller', function (obj) {
var wifi = getState('ping.0.Server-PC.192_168_1_15').val; /*My Phone*/
var sleep = getState('javascript.0.Sleep').val;
var algone = getState('javascript.0.Allgone').val;
calling = obj.newState.val;
var date = new Date();
var day = date.getDay(); // 0-воскр. 6-суббота
var hour = date.getHours();
var min = (date.getMinutes()<10?'0':'') + date.getMinutes(); // если минута меньше 10, то добавляем 0
calling = calling.replace(/\+/g, " ");
calling = calling.replace(/\%2B/g, "");
//log(calling);
if (wifi && calling !=='ok' && sleep=='false' && hour >= 8 && hour <= 23 ){
if (isValidPhone(calling)){ // Имя не определено
calling = 'Входящий звонок, Абонент неопределён';
setState('sayit.0.tts.text', calling);
setState('javascript.0.Voice.Caller', 'ok');
}
else {
calling = 'Входящий звонок, звонит ' + calling;
setState('sayit.0.tts.text', calling);
setState('javascript.0.Voice.Caller', 'ok');
}
}
function isValidPhone(calling) {
return /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/.test(calling);
}
});
На телефоне Tasker настроил так:
Сработка на любой входящий
266_screenshot_2015-11-04-21-23-56.png
А дальше условия,
если подключен к домашнему WiFi то проверяем есть ли абонент в телефонке(т.е. проверям есть ли CNAME), если есть то передаем имя абонента из телефонки.
если нет то получаем CNUM (номер абонента) и передаем на сервер.
266_screenshot_2015-11-04-21-23-44.png
266_screenshot_2015-11-04-21-23-48.png