MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-FRITZ-Box-Callmonitor-py3 and MMM-Callmonitor-Current-Call

    Scheduled Pinned Locked Moved Utilities
    69 Posts 7 Posters 14.3k Views 8 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • X Offline
      xIExodusIx @rkorell
      last edited by

      @rkorell
      Hi Ralf,

      I did not touch the file “fritz_access.py” by now, but what I already did was edeting the files “MMM-FRITZ-Box-Callmonitor-py3.js” and “node-helper.js”.
      In the file “node-helper.js” I already added:
      const CALL_TYPE = Object.freeze({
      INCOMING: “1”,
      MISSED: “2”,
      OUTGOING: “3”,
      BLOCKED: “4”
      })
      and tried this (now comented out because it did not work):
      //Call blocked
      //monitor.on(“blocked”, function (call) {
      // var name = self.ownNumbers.includes(call.caller) ? self.getName(call.called) : self.getName(call.caller);
      // var direction = self.ownNumbers.includes(call.caller) ? “out” : “in”;
      // self.sendSocketNotification(“blocked”, { “caller”: name, “direction”: direction });
      //});
      and this (also now comented out):
      for (var index in callArray) {
      var call = callArray[index];
      var type = call.Type[0];
      //Try to handle blocked calls this is new from “if to else” delete all lines from “if to else” if it not works!
      //if var name = type == CALL_TYPE.BLOCKED || type == CALL_TYPE.INCOMING ? self.getName(call.Caller[0]) : self.getName(call.Called[0]);
      // var duration = call.Duration[0];
      // if (type == CALL_TYPE.INCOMING && self.config.deviceFilter && self.config.deviceFilter.indexOf(call.Device[0]) > -1) {
      // continue;
      //} else
      //From here the original script is ongoing
      var name = type == CALL_TYPE.MISSED || type == CALL_TYPE.INCOMING ? self.getName(call.Caller[0]) : self.getName(call.Called[0]);
      var duration = call.Duration[0];
      if (type == CALL_TYPE.INCOMING && self.config.deviceFilter && self.config.deviceFilter.indexOf(call.Device[0]) > -1) {
      continue;
      }
      In the file “MMM-FRITZ-Box-Callmonitor-py3” I did already this:
      const CALL_TYPE = Object.freeze({
      INCOMING: “1”,
      MISSED: “2”,
      OUTGOING: “3”,
      BLOCKED: “4” //New entry! to handle blocked calls
      })
      and tried this:
      //Handle blocked calls
      //if (notification === “blocked”) {
      //Send notification for currentCall module
      // this.sendNotification(“CALL_BLOCKED”, payload.caller);
      //Remove alert from UI when call is connected
      // this.sendNotification(“HIDE_ALERT”);
      // this.activeAlert = null;
      //}
      But that all does not work so I comented it out again.
      Thats my problem I can’t code and I dont really understand what I’m doing, all I can do is “Try and Error”!

      But thanks a lot for your help. :-)

      Carsten

      R 1 Reply Last reply Reply Quote 0
      • R Offline
        rkorell Module Developer @xIExodusIx
        last edited by rkorell

        @xIExodusIx Yeahh…
        You figured out the exact same idea and made more out of this than I’m able to do.
        But for sure you have to start at the python script - the python script “feeds” node-helper.
        And if node-helper don’t get info about “blocked” - your If-clause is never true so your new code couldn’t be reached.
        And for setting the python script correctly you have to identify how the AVM/Fritz interface works…

        Regards,
        Ralf

        X 1 Reply Last reply Reply Quote 0
        • X Offline
          xIExodusIx @rkorell
          last edited by

          @rkorell

          I have almost 2 hours googled for the right name of the function for the blocked calls, but did not find anythig about that.
          And I found some smaller errors in the funktion of the module. E.g. it should delete the alert (the big popup on the gui of the MM when a call comes in) when I answer this call. But that does not work.
          This should do the job in the "MMM-FRITZ-Box-Callmonitor-py3:
          if (notification === “connected”) {
          //Send notification for currentCall module
          this.sendNotification(“CALL_CONNECTED”, payload);

          		//Remove alert only on connect if it is the current alert shown
          		if (this.activeAlert === payload) {
          			//Remove alert from UI when call is connected
          			this.sendNotification("HIDE_ALERT");
          			this.activeAlert = null;
          		}
          	}
          

          but it dosn’t work.

          As I already said: I can’t code :-(

          Regards,
          Carsten

          R 1 Reply Last reply Reply Quote 0
          • R Offline
            rkorell Module Developer @xIExodusIx
            last edited by

            @xIExodusIx Yes, I identified this “bug” as well and couldn’t find the mistake…
            As I mentioned - I couldn’t code (this) as well …

            Regards,
            Ralf

            X 1 Reply Last reply Reply Quote 0
            • X Offline
              xIExodusIx @rkorell
              last edited by

              @rkorell

              I think it is something with the syntax, maybe it has changed somehow in python3, or a wrong set “,” or “;” so the modulescript could not run correct, but it is enough to let the module almost run as expected.
              For that I have not enough experience to figure that out.

              Would be nice if there were the possebility of a testing enviroment for MS-Windows, so that I could test the scripts. For editing I could use VS-Code.

              R 1 Reply Last reply Reply Quote 0
              • R Offline
                rkorell Module Developer @xIExodusIx
                last edited by

                @xIExodusIx said in MMM-FRITZ-Box-Callmonitor-py3 and MMM-Callmonitor-Current-Call:

                testing enviroment for MS-Windows,

                For Python you can use this …

                Regards,
                Ralf

                X 1 Reply Last reply Reply Quote 0
                • X Offline
                  xIExodusIx @rkorell
                  last edited by

                  @rkorell

                  Hi Ralf,
                  I found out that the correct entry for handle “blocked calls” is “10”, not “4”, I found that on “https://fritzconnection.readthedocs.io/en/1.14.0/sources/library_modules.html”
                  Slowly I understand how the module works and what the entire entries do, but without understandig the syntax and how to code. I will not come further.

                  Regards
                  Carsten

                  R 1 Reply Last reply Reply Quote 1
                  • R Offline
                    rkorell Module Developer @xIExodusIx
                    last edited by

                    @xIExodusIx
                    Dear Carsten,

                    quick question: For several reasons yesterday I had checked the log files during startup of my MagicMirror.

                    Unfortunately there is an error related to your pimped module:

                    [ERROR] ERROR! Could not find main module js file for MMM-FRITZ-Box-Callmonitor-py3_drtorchwood
                    

                    The module works (!?) but may there is something that don’t work?

                    Is there a submodule which is not loaded to git?

                    Thanks for any hint!

                    X 1 Reply Last reply Reply Quote 0
                    • X Offline
                      xIExodusIx @rkorell
                      last edited by xIExodusIx

                      @rkorell said in MMM-FRITZ-Box-Callmonitor-py3 and MMM-Callmonitor-Current-Call:

                      MMM-FRITZ-Box-Callmonitor-py3

                      Hi Ralf,
                      I have searched all my log-files in “.pm2/logs/” for that string, but I didn’t find anything related to that error. I don’t have this error in my pm2 log-files.
                      Are there more log-files I can check, if so where can I find them?
                      I’m sure you have checked your MagicMirror/config/config.js if there is a type missmatch.

                      Reguards
                      Carrsten

                      R 1 Reply Last reply Reply Quote 0
                      • R Offline
                        rkorell Module Developer @xIExodusIx
                        last edited by

                        @xIExodusIx It’s in the PM2 logs, yes.
                        I guess you have some code parked in an additional file “py3_drtorchwood” which is present on your system but not on mine …
                        especially drtorchwood isn’t present on my system at all.
                        Will dig into code lateron …
                        Thanks for your double check.

                        Regards,
                        Ralf

                        X 1 Reply Last reply Reply Quote 0
                        • X Offline
                          xIExodusIx @rkorell
                          last edited by

                          @rkorell

                          Hi Ralf,
                          sorry it took a while to answer, what I did until now is:
                          I updated python on my raspberry pi 4 bookworm 64bit, to python 3.13.2 and I overworked the module MMM-FRITZ-Box Callmonitor-py3, it now handles almost all unwanted (blocked) calls, that are in your FritzBox callist for blocked calls, and shows them in the callist on your MM2.
                          But it can’t handle blocked numbers that are in the “area list”, that means numbers that begins with e.g. 0031* (+31*) all numbers from, in this example, Netherlands, they appear as “SIP:ownnumber” with a red X in the callist of your MM2. I can’t find out how to fetch the whole correct number that ist displayed in the FritzBox gui under incomming calls.
                          And I can’t find out how to let the alert “Incomming Call” disappear for that blocked calls.
                          Everything else should work as expected, for me it does.

                          Regards,
                          Carsten

                          R 1 Reply Last reply Reply Quote 0
                          • R Offline
                            rkorell Module Developer @xIExodusIx
                            last edited by

                            @xIExodusIx
                            Carsten, as you stated, you cannot code - than this is really awsome!!!
                            Congratulations.
                            Did you maanage as well to let the message box disappear whan call is in progress?

                            Do you have pushed your modified code to github?

                            To my last posting: In fact there is NO occurance of “py3_drtorchwood” in ANY of my files …
                            So I will simply ignore the error message.

                            Warmest regards and chapeau !!!

                            Ralf

                            X 2 Replies Last reply Reply Quote 0
                            • X Offline
                              xIExodusIx @rkorell
                              last edited by

                              @rkorell

                              Hi Ralf,
                              Yes the message box disappears now when a call is in progress, and no I did not push my modificated code to github by now.
                              But sadly I can’t find out how to let the massage box disapper when a call is incomming that will be blocked. So the message box is displayed over hours on the screen, to let it disappear I have to connect to my MM2 using “RealVNC Viewer” and mouseclick on the message box, then it disappears. This is not satisfying.

                              With the update of python to version 3.13.2 I made a failure, that was not a good idea, so I have to reinstall my MM2 from scratch, what I’m doing right now. If this is done and all runs like I want again, I will push my modified code to githup. If this is done I will inform you.

                              I will continue to work on the module to eliminate the last few problems. I hope I can do it.

                              As I said I can’t code was and is this the truth, all I have done is to try to copy existing code lines change them a little bit and paste it where I thought it could be the right place, then pushed the entirely .js file up to my MM2 and tested it. If it doesn’t work I tried an other way and tested it again. So all I do is “Try and Error”, not really coding! But VSCode helps a lot.

                              Regards
                              Carsten

                              1 Reply Last reply Reply Quote 0
                              • X Offline
                                xIExodusIx @rkorell
                                last edited by

                                @rkorell

                                Hi Ralf,
                                I just pushed up my reworked version of the module “MMM-FRITZ-Box-Callmonitor-py3” to github.
                                I hope it works for you too.

                                Regards
                                Carsten

                                R 1 Reply Last reply Reply Quote 1
                                • R Offline
                                  rkorell Module Developer @xIExodusIx
                                  last edited by

                                  @xIExodusIx Dear Carsten, this is awesome!
                                  Thanks a LOT!
                                  Currently - in my installation - the Info Box which is signalling the call is not a „message-box“ and disappears when call is ended.
                                  Did you modify this -then I would hesitate to install newest version…
                                  Thanks a lot for your effort!
                                  Warmest regards,
                                  Ralf

                                  X 1 Reply Last reply Reply Quote 0
                                  • X Offline
                                    xIExodusIx @rkorell
                                    last edited by

                                    @rkorell said in MMM-FRITZ-Box-Callmonitor-py3 and MMM-Callmonitor-Current-Call:

                                    Currently - in my installation - the Info Box which is signalling the call is not a „message-box“ and disappears when call is ended.
                                    Did you modify this -then I would hesitate to install newest version…
                                    Thanks a lot for your effort!

                                    Hi Ralf,
                                    I did not change the appearance of the message-box, in the module it is an alert, I only tried to let it disappear right when you answer the incomming call, because on my MM2 the message box blurres the background and I can not clearly see all other modules and the “MMM-Current-Call” module, that also shows me if the current call is incomming or outgoing, but now the message box disappears when the incomming call is answered.
                                    The MMM-Current-Call" module makes only sense if you have more then one telephon-line, so you can see how many people are talking right now, and if the calls are incomming or outgoing.

                                    Hope that will help you to decide.

                                    Regards
                                    Carsten

                                    R 1 Reply Last reply Reply Quote 1
                                    • R Offline
                                      rkorell Module Developer @xIExodusIx
                                      last edited by

                                      @xIExodusIx Thanks again, this helps!
                                      Regards,
                                      Ralf

                                      X 1 Reply Last reply Reply Quote 0
                                      • X Offline
                                        xIExodusIx @rkorell
                                        last edited by xIExodusIx

                                        @rkorell

                                        I played a little bit around with the colors and changed also the appearance of missed calls, the missed calls now will be displayed in color “magenta” with a “star”. You can edit the colors by yourself by editing the “MMM-Fritz-Box-Callmonitor-py3.js” file, you can’t miss these entrys.
                                        I also edited the README.md file again.
                                        I will push these changes to github at my next update, but I have to test a little bit more because I have to wait for the unwanted calls that are in my blocked “phonenumber range list”, and I don’t know when these unwanted calls are incomming.
                                        But hopefully I got most of the annoying problems under control. :-)

                                        Regards
                                        Carsten

                                        R 1 Reply Last reply Reply Quote 0
                                        • R Offline
                                          rkorell Module Developer @xIExodusIx
                                          last edited by

                                          @xIExodusIx It’s good practise to keep style information not in the *.js code but in the CSS file of module - than everybody can make persistent changes to style related issues in custom.css which will not been overwritten by module updates…

                                          Warm regards,
                                          Ralf

                                          X 1 Reply Last reply Reply Quote 0
                                          • X Offline
                                            xIExodusIx @rkorell
                                            last edited by xIExodusIx

                                            @rkorell

                                            Yes, I know, but I don’t know how to transfer this code-lines to the .css file, the code for appaerance and color were in the module.js file before I began to try to get it work. I only modified them.

                                            The last two problems I have with the module is, to show the correct number in the callist, not “sip:myown number”, when an incomming call is blocket by the “number range list” and to hide the alert of these calls.

                                            On these problems I still work.

                                            Regards
                                            Carsten

                                            R 1 Reply Last reply Reply Quote 1

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 2 / 4
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy