Subversion Repositories HomeAutomation

Rev

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
          {