Ankündigung

Einklappen
Keine Ankündigung bisher.

FritzBox Anruf per GA (Türklingel) Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Hallo
    Habe das Plugin mal etwas umgeschrieben, das man eine Rufumleitung mit einer GA EIN und wieder AUS schalten kann.
    Gruß NetFritz
    fritz_umleitung.pl
    Code:
    ######################
    # Fritz-Box Rufumleitung EIN/AUS#
    ######################
    # Wiregate-Plugin
    # (c) 2012 Amaridian under the GNU Public License
    # angepasst: KingOlli (KNX-User-Forum) am 02.05.2013
    # Rufumleitung von NetFritz (KNX-User-Forum) 26.05.2013
    # Die Rufumleitung muss in der FB programmiert werden
    # funktioniert nur mit Fritz OS 5.50 oder höher
    use LWP;
    use Digest::MD5 'md5_hex';
    #Cycle ist unerheblich
    $plugin_info{$plugname.'_cycle'} = 86400;
    
    # Definitionen
    my $umleitung_ga = "2/1/1";
    my $fritz_ip = '192.168.2.1';
    my $id = "0"; # CallerIDActions0 für erste Umleitung
    
    #Benutzer muss in der Web-Oberfläche der Fritzbox angelegt werden
    my $fritz_user  = 'xxx';
    my $fritz_pw  = 'xxxxxx';
    
    #Gruppenadresse "abonnieren"
    $plugin_subscribe{$umleitung_ga}{$plugname} = 1;
    my $active;
    # Bei einer gesendeten 1 und 0 reagieren
    if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $umleitung_ga) { 
        if (int($msg{'data'}) == 1 ) {
            $active = '1';
        }            
            elsif (int($msg{'data'}) == 0 ) {
              $active = '0';
        }
                                
            # Login-Challenge und evtl. vorhandene Session-ID holen        
        my $user_agent = LWP::UserAgent->new;
        my $http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua',
                  [
                      'sid'        => defined($plugin_info{$plugname.'_sid'}) ? $plugin_info{$plugname.'_sid'} : '0',
                  ],
              );
        $http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and my $sid = $1 and my $challengeStr = $2;
              
        # Wenn noch eine gültige Session da ist, nehmen wir die
        if($sid eq '0000000000000000'){        
                  # Challenge zusammen mit PW hashen laut http://www.avm.de/de/Extern/files/session_id/AVM_Technical_Note_-_Session_ID.pdf
                  my $ch_Pw = "$challengeStr-$fritz_pw";
                  $ch_Pw =~ s/(.)/$1 . chr(0)/eg;
                  my $md5 = lc(md5_hex($ch_Pw)); #warum auch immer AVM hier UTF16LE haben möchte...
                  my $challenge_response = "$challengeStr-$md5";
                  # Mit der frisch errechneten Challenge-Response die Session-ID abholen
                  $http_response = $user_agent->post('http://'.$fritz_ip.'/login_sid.lua?username='.$fritz_user.'&response='.$challenge_response,
                      [
                          'getpage'             => '../html/de/menus/menu2.html',
                      ],
                  );        
                  $http_response->content =~ /<SID>(\w+)<\/SID>\s*<Challenge>(\w+)<\/Challenge>/i and $sid = $1 ;
        }
        # Rufumleitung    
            # den gewünschten Befehl absetzen
            $http_response = $user_agent->post('http://'.$fritz_ip.'/cgi-bin/webcm',
                 [
                   'getpage'    => '../html/login_sid.xml',
                   'sid'    => $sid,
                   'telcfg:settings/CallerIDActions'.$id.'/Active' => $active,
                 ],
              );
        return("Rufumleitung ".$id." ist ".$active); 
    }
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    Kommentar


      #47
      Hi,

      nur mal so die Frage. Wäre es auch möglich das Plugin so umzuschreiben das er nicht User/Pass abfragt sondern nur das Password?
      Gibt ja eventuell einige User die zwar die neue Firmware haben aber nicht auf User/Pass umstellen können/wollen.

      Kann man also da was machen?

      Grüße
      Jascha

      Kommentar


        #48
        @Netfritz: danke für das Plugin zum Setzen der Rufumleitung.

        Leider wird aber anscheinend in der FB (OS 5.52) die Rufumleitung nicht geändert.

        Im Log des Plugins im WG steht brav drin "Rufumleitung 0 ist 0", oder "1 ist 1", aber keinerlei Veränderung in der FB.

        Frage 1: wo kann man sehen, welche ID letztendlich hinter der Rufumleitung steckt und

        Frage 2: wie könnte ich weiter debuggen ? Wo kann ich z.B. sehen, ob evtl. Loginprobleme seitens des WG bei der FB bestehen ?

        Würde mich über eine kleine RM freuen.

        Danke und Gruß

        Daniel




        Edit: nach Löschen der Rufumleitung und Einrichtung einer neuen Rufumleitung geht es jetzt ?! Dennoch wäre es interessant zu wissen, ob man in der FB oder im Plugin / WG etwas in der Richtung in Logs finden kann !
        Endlich kann Ich Bei Euch mitreden ...

        Kommentar


          #49
          Hallo

          Im WG Plugin Log kann man nur das sehen was das Plugin meldet.
          Die letzte Zeile im Plugin meldet: "return("Rufumleitung ".$id." ist ".$active);"

          In der Fritzbox kann man unter Rufumleitung das Kästchen mit einem Haken sehen.

          In der FB-Anrufliste wird der ankommende und abgehende Anruf angezeigt.

          Gruß NetFritz
          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

          Kommentar


            #50
            Hi,

            danke für die RM.

            Ja, das Häkchen habe bei der Rufumleitung schon gesehen, nur bei der ersten Umleitung ist es nicht de- / aktiviert worden.

            ich dachte es gäbe noch ein größeres Log iwo in der FB.

            Wie auch immer, dennoch danke.

            Gruß

            Daniel
            Endlich kann Ich Bei Euch mitreden ...

            Kommentar


              #51
              Hallo,

              habe mir mal das Script angeschaut.
              Was ist ? Lege ich hier fest von wo angerufen wird ?

              'telcfg:settings/DialPort' => $call_from,

              Kann man irgendwie festlegen mit welchen Klingelton das angerufene Telefon verwenden soll wenn ich unterschideliche Ereignisse habe ?

              Kommentar


                #52
                Was meinst du mit ? Die Einstellungen haben nirgends ein ? Es kommt im Plugin nur als Startzeichen für die URL Parameter vor.
                Gruss Patrik alias swiss

                Kommentar


                  #53
                  ... ich meine
                  'telcfg:settings/DialPort' => $call_from,

                  Kommentar


                    #54
                    Ich sehe da immer noch kein ? in dem Code Ausschnitt...
                    Gruss Patrik alias swiss

                    Kommentar


                      #55
                      Hi Patrik, der Kollege scheint einfach mit Worten zu geizen daher habe ich kurzerhand meine Glaskugel aus der Spülmaschine geholt und würde sagen die Antwort auf die Frage ist ...

                      Die Rufnummer wird in dieser Zeile festgelegt:
                      my $call_from = '50';

                      @elko68: Tipp: Es kommt deutlich anders rüber wenn Du Deinen Fragen etwas mehr Text spendierst, sonst bezweifle ich ernsthaft ob hier jemand gewillt ist Dir Deine Fragen zu beantworten... Nix für ungut.

                      Kommentar


                        #56
                        Ach soo... Ja die Nummer von der angerufen wird, wird weit oben im Plugin definiert. Der URL Parameter bietet aber AFAIK keine Klingeltonauswahl.
                        Gruss Patrik alias swiss

                        Kommentar


                          #57
                          Hi,

                          ich nochmal, kann man sich die ID's der Rufumleitungen irgendwie anzeigen lassen ?

                          Ich habe etwas rumexperimentiert mit den Weiterleitungen, ich habe aktuell nur noch eine Weiterleitung in der FB, aber genau diese will er nicht umschalten.

                          Wenn ich eine "alte" Regel wieder erstelle, wird genau diese per Plugin umgeschaltet, nur halt die aktuelle nicht. Schätze, dass er intern die ID der Weiterleitungen nicht auf 0 setzt, sondern doch irgendwie hochsetzt. Neustart FB + Wiregate ohne Verbesserung.

                          Es wird ja nichts mit dem Inhalt der Rufumleitung zu tun haben, oder ?

                          Danke und Gruß

                          Daniel
                          Endlich kann Ich Bei Euch mitreden ...

                          Kommentar


                            #58
                            Was gibt denn telcfg >> CallerIDActions aus?
                            Gruss Patrik alias swiss

                            Kommentar


                              #59
                              Hi,

                              ich bin zwar des Googlens mächtig, aber via telnet auf der FB mit
                              ctlmgr_ctl r telcfg CallerIDActions

                              komme ich nicht so recht weiter. Denke die Syntax ist nicht korrekt ?!

                              Hat jmd eine schnelle Antwort evtl. wie ich den Befehl absetze ? :-)

                              Danke und Gruß

                              Daniel
                              Endlich kann Ich Bei Euch mitreden ...

                              Kommentar


                                #60
                                Ich nochmal,

                                nach längerem Rumgeteste sieht es aus wie folgt:

                                Es hängt an der Art der Umleitung.

                                Konfiguriere ich eine Umleitung in der Form von **1 auf eine Handynummer (genau diese Art der Rufumleitung funktioniert übrigens nicht, und ist auch seitens AVM nicht vorgehesen, evtl. bei einer nächsten Firmware :-/) -> diese Umleitung kann ich via Wiregate ein und ausschalten.

                                Lösche ich diese Umleitung und konfiguriere eine Umleitung in der Form alle Anrufe an eine externe Nummer zb.123456 sollen auf ein Handy weitergeleitet werden, kann ich diese Rufumleitung nicht ein und ausschalten via WG. Die Umleitung an sich funktioniert übrigens :-)

                                Hat hier jmd irgendeinen Ansatz ?

                                Danke und Gruß

                                Daniel
                                Endlich kann Ich Bei Euch mitreden ...

                                Kommentar

                                Lädt...
                                X