Zitat von psilo
Beitrag anzeigen

Danke dir. Jetzt kanns losgehen

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], '')
# 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)
if event == 'RING': # process "trigger items" for trigger_item in self._trigger_items: if self._plugin_instance.get_iattr_value(trigger_item.conf, 'avm_data_type') == 'monitor_trigger': trigger_item(0) # self.logger.debug(self._plugin_instance.get_iattr_value(trigger_item.conf, 'avm_data_type') + " " +trigger_item.conf['avm_incoming_allowed']+" "+trigger_item.conf['avm_target_number']) if 'avm_incoming_allowed' not in trigger_item.conf or 'avm_target_number' not in trigger_item.conf: self.logger.error( "both 'avm_incoming_allowed' and 'avm_target_number' must be specified as attributes in a trigger item.") elif trigger_item.conf['avm_incoming_allowed'] == call_from and trigger_item.conf[ 'avm_target_number'] == call_to: trigger_item(1) if self._call_monitor_incoming_filter in call_to: # set call id for incoming call self._call_incoming_cid = callid # reset duration for incoming calls self._duration_item['call_duration_incoming'](0) # 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)
incoming: is_call_incoming: type: bool avm_data_type@fritzbox_7490: is_call_incoming duration: type: num avm_data_type@fritzbox_7490: call_duration_incoming last_caller: type: str avm_data_type@fritzbox_7490: last_caller_incoming last_calling_number: type: str avm_data_type@fritzbox_7490: last_number_incoming last_called_number: type: str avm_data_type@fritzbox_7490: last_called_number_incoming last_call_date: type: str avm_data_type@fritzbox_7490: last_call_date_incoming event: type: str avm_data_type@fritzbox_7490: call_event_incoming outgoing:
avm: uptime_7490: type: num visu_acl: ro avm_data_type@fritzbox_7490: uptime serial_number_7490: type: str visu_acl: ro avm_data_type@fritzbox_7490: serial_number firmware_7490: type: str visu_acl: ro avm_data_type@fritzbox_7490: software_version hardware_version_7490: type: str visu_acl: ro avm_data_type@fritzbox_7490: hardware_version myfritz: type: bool avm_data_type@fritzbox_7490: myfritz_status monitor: trigger: type: bool avm_data_type@fritzbox_7490: monitor_trigger avm_incoming_allowed: xxxxxxxx avm_target_number: xxxxxxxx enforce_updates: 'yes' trigger2: type: bool avm_data_type@fritzbox_7490: monitor_trigger avm_incoming_allowed: xxxxxxxx avm_target_number: xxxxxxxx enforce_updates: 'yes' trigger3: type: bool avm_data_type@fritzbox_7490: monitor_trigger avm_incoming_allowed: xxxxxxxx avm_target_number: xxxxxxxx enforce_updates: 'yes' trigger4: type: bool avm_data_type@fritzbox_7490: monitor_trigger avm_incoming_allowed: xxxxxxxx avm_target_number: xxxxxxxx enforce_updates: 'yes' incoming: is_call_incoming: type: bool avm_data_type@fritzbox_7490: is_call_incoming duration: type: num avm_data_type@fritzbox_7490: call_duration_incoming last_caller: type: str avm_data_type@fritzbox_7490: last_caller_incoming last_calling_number: type: str avm_data_type@fritzbox_7490: last_number_incoming last_called_number: type: str avm_data_type@fritzbox_7490: last_called_number_incoming last_call_date: type: str avm_data_type@fritzbox_7490: last_call_date_incoming event: type: str avm_data_type@fritzbox_7490: call_event_incoming outgoing: is_call_outgoing: type: bool avm_data_type@fritzbox_7490: is_call_outgoing duration: type: num avm_data_type@fritzbox_7490: call_duration_outgoing last_caller: type: str avm_data_type@fritzbox_7490: last_caller_outgoing last_calling_number: type: str avm_data_type@fritzbox_7490: last_number_outgoing last_called_number: type: str avm_data_type@fritzbox_7490: last_called_number_outgoing last_call_date: type: str avm_data_type@fritzbox_7490: last_call_date_outgoing event: type: str avm_data_type@fritzbox_7490: call_event_outgoing newest: direction: type: str avm_data_type@fritzbox_7490: call_direction cache: 'yes' event: type: str avm_data_type@fritzbox_7490: call_event cache: 'yes'
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar