Eingehende Anrufe lösen ein RING Event aus. Du siehst das auch, wenn Du mit Telnet auf den Callmonitor gehst und einen Anruf kriegst..
(Details: http://www.wehavemorefun.de/fritzbox/Callmonitor)
Code:
def _parse_line(self, line): """ Parses a data set in the form of a line. Data Format: Ausgehende Anrufe: datum;CALL;ConnectionID;Nebenstelle;GenutzteNummer;AngerufeneNummer;SIP+Nummer Eingehende Anrufe: datum;RING;ConnectionID;Anrufer-Nr;Angerufene-Nummer;SIP+Nummer Zustandegekommene Verbindung: datum;CONNECT;ConnectionID;Nebenstelle;Nummer; Ende der Verbindung: datum;DISCONNECT;ConnectionID;dauerInSekunden; :param line: data line which is parsed """ self.logger.debug(line) line = line.split(";") if (line[1] == "RING"): call_from = line[3] call_to = line[4] self._trigger(call_from, call_to, line[0], line[2], line[1], '') elif (line[1] == "CALL"): call_from = line[4] call_to = line[5] self._trigger(call_from, call_to, line[0], line[2], line[1], line[3]) elif (line[1] == "CONNECT"): self._trigger('', '', line[0], line[2], line[1], line[3]) elif (line[1] == "DISCONNECT"): self._trigger('', '', '', line[2], line[1], '')
Code:
# call is incoming if event == 'RING': [...] # process items specific to incoming calls for item in self._items_incoming: # update items for incoming calls if self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in ['is_call_incoming']: item(1) elif self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in ['last_caller_incoming']: if call_from != '' and call_from is not None: name = self._callback(call_from) if name != '' and not name is None: item(name) else: item(call_from) else: item("Unbekannt") elif self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in [ 'last_call_date_incoming']: item(time) elif self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in ['call_event_incoming']: item(event.lower()) elif self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in ['last_number_incoming']: item(call_from) elif self._plugin_instance.get_iattr_value(item.conf, 'avm_data_type') in [ 'last_called_number_incoming']: item(call_to)
Im Wert steht aber der aufgelöste Name (wenn er im Telefonbuch gefunden wird) und nur wenn nicht, die Nummer. Letztere wird aber ein ein eigenes Item mit avm_data_type last_number_incoming geschrieben.
Einen Kommentar schreiben: