Rev 2094 | Rev 2122 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 2094 | Rev 2098 | ||
|---|---|---|---|
| Line 68... | Line 68... | ||
| 68 | { |
68 | { |
| 69 | for (var alias_name in aliases_data) |
69 | for (var alias_name in aliases_data) |
| 70 | { |
70 | { |
| 71 | var number = variables["Number"]; |
71 | var number = variables["Number"]; |
| 72 | var incommingCall = true; |
72 | var incommingCall = true; |
| - | 73 | var checkName = true; |
|
| - | 74 | ||
| - | 75 | Log("received from DTMF:\"" + number + "\""); |
|
| 73 | 76 | ||
| 74 | if (variables["Number"].length > 6) |
77 | if (variables["Number"].length > 6) |
| 75 | { |
78 | { |
| 76 | /* A seems to mean it is an incomming call! */ |
79 | /* A seems to mean it is an incomming call! */ |
| 77 | if (number.charAt(0) === 'A' || number.charAt(0) === 'D') |
80 | if (number.charAt(0) === 'A' || number.charAt(0) === 'D') |
| Line 86... | Line 89... | ||
| 86 | incommingCall = false; |
89 | incommingCall = false; |
| 87 | } |
90 | } |
| 88 | 91 | ||
| 89 | /* A number can have a trailing C */ |
92 | /* A number can have a trailing C */ |
| 90 | var endIndex = number.indexOf('C'); |
93 | var endIndex = number.indexOf('C'); |
| 91 | 94 | ||
| 92 | if (endIndex !== -1) |
95 | if (endIndex !== -1) |
| 93 | { |
96 | { |
| 94 | /* Remove trailing C */ |
97 | /* Remove trailing C */ |
| 95 | number = number.substring(0, endIndex); |
98 | number = number.substring(0, endIndex); |
| 96 | } |
99 | } |
| Line 98... | Line 101... | ||
| 98 | else if (number == "B00C") |
101 | else if (number == "B00C") |
| 99 | { |
102 | { |
| 100 | /* Unknown number */ |
103 | /* Unknown number */ |
| 101 | number = "Unknown"; |
104 | number = "Unknown"; |
| 102 | incommingCall = true; |
105 | incommingCall = true; |
| - | 106 | checkName = false; |
|
| 103 | } |
107 | } |
| 104 | else if (number == "B10C") |
108 | else if (number == "B10C") |
| 105 | { |
109 | { |
| 106 | /* Secret/protected number */ |
110 | /* Secret/protected number */ |
| 107 | number = "Protected"; |
111 | number = "Protected"; |
| 108 | incommingCall = true; |
112 | incommingCall = true; |
| - | 113 | checkName = false; |
|
| 109 | } |
114 | } |
| 110 | else |
115 | else |
| 111 | { |
116 | { |
| 112 | Log("DTMF decoded number is to short, number: \"" + number + "\", length: " + number.length); |
117 | Log("DTMF decoded number is to short, number: \"" + number + "\", length: " + number.length); |
| 113 | return; |
118 | return; |
| 114 | } |
119 | } |
| Line 122... | Line 127... | ||
| 122 | { |
127 | { |
| 123 | lastValue = JSON.parse(lastValueString); |
128 | lastValue = JSON.parse(lastValueString); |
| 124 | } |
129 | } |
| 125 | 130 | ||
| 126 | var timestamp = get_time(); |
131 | var timestamp = get_time(); |
| 127 | 132 | ||
| 128 | lastValue["Phonenumber"] = { "value" : number, "timestamp" : timestamp }; |
133 | lastValue["Phonenumber"] = { "value" : number, "timestamp" : timestamp }; |
| 129 | lastValue["Direction"] = { "value" : incommingCall ? "in" : "out", "timestamp" : timestamp }; |
134 | lastValue["Direction"] = { "value" : incommingCall ? "in" : "out", "timestamp" : timestamp }; |
| 130 | 135 | ||
| 131 | Storage_SetParameter("LastValues", alias_name, JSON.stringify(lastValue)); |
136 | Storage_SetParameter("LastValues", alias_name, JSON.stringify(lastValue)); |
| 132 | 137 | ||
| 133 | 138 | ||
| 134 | /* Store number in phone call history */ |
139 | /* Store number in phone call history */ |
| 135 | var newValue = { "number" : number, "direction" : incommingCall ? "in" : "out", "module" : alias_name, "names" : [], "timestamp" : timestamp }; |
140 | var newValue = { "number" : number, "direction" : incommingCall ? "in" : "out", "module" : alias_name, "names" : [], "timestamp" : timestamp }; |
| 136 | 141 | ||
| 137 | Storage_SetParameter("PhoneCalls", timestamp, JSON.stringify(newValue)); |
142 | Storage_SetParameter("PhoneCalls", timestamp, JSON.stringify(newValue)); |
| 138 | 143 | ||
| 139 | 144 | ||
| 140 | /* Log the number */ |
145 | /* Log the number */ |
| 141 | Log("New number: " + number + ", direction: " + (incommingCall ? "in" : "out")); |
146 | Log("New number: " + number + ", direction: " + (incommingCall ? "in" : "out")); |
| 142 | 147 | ||
| 143 | 148 | ||
| 144 | /* Lookup name */ |
149 | /* Lookup name */ |
| - | 150 | if (checkName) |
|
| - | 151 | { |
|
| 145 | Sensor_StoreNumberInPhonebook(number, timestamp); |
152 | Sensor_StoreNumberInPhonebook(number, timestamp); |
| - | 153 | } |
|
| 146 | 154 | ||
| 147 | 155 | ||
| 148 | /* Call any potential subscribers */ |
156 | /* Call any potential subscribers */ |
| 149 | if (Sensor_OnNewPhonenumberFunctions[alias_name]) |
157 | if (Sensor_OnNewPhonenumberFunctions[alias_name]) |
| 150 | { |
158 | { |