@xIExodusIx Dear Carsten,
I’m not that good in object-oriented programming…
The main problem for me in this module is the three-layer approach - so I’m not sure what happens when and where.
In addition I’m not familiar with the used libraries…
From my understanding the base layer “fritz_access.py” should handle your request.
In this python program you can find the class FritzAccess which handles the queries to AVM Fritzbox.
One of the calls used is “GetCallList” - in the second definition of the object:
def download_recent_calls(self, directory = "data"):
result = self.fc.call_action("X_AVM-DE_OnTel", "GetCallList")
filename = os.path.join(directory, "calls.xml")
self.forward_file(result["NewCallListURL"], filename)
I can imagine (I don’t know!) that there is another call-function “GetBlockedCallList” or something similar.
This has to be clarified.
If such a call exists, you need an entry in the FritzAccess class for this and than a function which takes care about.
In the second layer “node-helper.js” line 13ff
const CALL_TYPE = Object.freeze({
INCOMING: "1",
MISSED: "2",
OUTGOING: "3"
})
Must be extended for fourth call_type - “BLOCKED”
and the function setupMonitor() (line 73ff) must get an additional "monitor.on(“blocked” … "
In the third layer (“MMM-FRITZ-Box-Callmonitor-py3.js”) you have to adopt the “socketNotificationReceived:” function (line 90ff) and handle the “BLOCKED” condition.
This all from my very basic understanding, how theses modules are impelmented in general.
Unfortunately my knowledge is currently not deep enough to be more concrete, sorry for this!
May another user can step in here.
Because you at least was able to reconfigure code out of three different repositories - may these little hints are enough for you…
Warmest regards and good luck!
Ralf