Fritzbox 6360 - Weboberfläche per Greasemonkey manipulieren

stephan_bauer

Neuer User
Mitglied seit
13 Okt 2007
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

mit der Anleitung von mr_taurus im KDG-Forum (http://www.kdgforum.de/viewtopic.php?f=67&t=25274) kann man SIP-Accounts in der Fritzbox 6360 konfigurieren.
Mit dem Firefox-Addon Greasemonkey kann man HTML-Seiten client-seitig manipulieren. Sollte auch im Chrome funktionieren.

Hiermit wird unter 'Internet' 'DNS-Server' und 'LAN-Bridge' und unter 'Telefonie' 'Wahlregeln' angezeigt:
Code:
// ==UserScript==
// @name        Fritzbox
// @namespace   URI
// @include     http://fritz.box/*
// @include     http://www.fritz.box/*
// @grant       GM_addStyle
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
// @version     1
// ==/UserScript==

GM_addStyle("#uiSipping {display: block !important;}");

jQuery.noConflict();
jQuery(document).ready(function(){

  menuElements = jQuery('#menucontent > div > ul > li');

  menuElementsTelefonie = jQuery('#menucontent > div > ul > .selected > ul > li');
  var sid = jQuery.getUrlVar('sid');
  var url = window.location.href.substring( 0, window.location.href.indexOf('?'));
  
  if ( menuElements[1].className.match('selected') ) { // Internet
    // DNS-Server
    jQuery('#menucontent > div > ul > .selected.submenu ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'internet\',\'dns_server_enh\')">DNS-Server</a><span class="PTextOnly">DNS-Server</span></li>');
    // LAN-Bridge
    jQuery('#menucontent > div > ul > .selected.submenu ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'internet\',\'cable_bridge\')">LAN-Bridge</a><span class="PTextOnly">LAN-Bridge</span></li>');
  }
  if ( menuElements[2].className.match('selected') ) { // Telefonie
    // Wahlregeln
    if ( menuElementsTelefonie[3].className.match('selected') || menuElementsTelefonie[6].className.match('selected') ) {
      jQuery('#menucontent > div > ul > .selected ul').append('<li><a href="http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:menu=fon&var:pagename=routing&sid=' + sid +'">Wahlregeln</a></li>');
    }
    else {
      jQuery('#menucontent > div > ul > .selected ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'fon\',\'routing\')">Wahlregeln</a><span class="PTextOnly">Wahlregeln</span></li>');
    }
    
    if (url == 'http://fritz.box/cgi-bin/webcm' && (jQuery.getUrlVar('var%3Apagename') == 'routing' || jQuery.getUrlVar('var:pagename') == 'routing')) {
      jQuery('#menucontent > div > ul > .selected > ul > li').last().attr('class', 'selected' );
    }
  }
});

jQuery.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return jQuery.getUrlVars()[name];
  }
});

Grüße

Stephan
 
Eigene Rufnummern - "Neue Rufnummer" und "Anschlusseinstellungen" nach Reboot automatisch freischalten
Delete-Buttons werden freigeschaltet

Code:
// ==UserScript==
// @name        Fritzbox
// @namespace   URI
// @include     http://fritz.box/*
// @include     http://www.fritz.box/*
// @grant       GM_addStyle
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
// @version     1
// ==/UserScript==

GM_addStyle("#uiSipping {display: block !important;}");

jQuery.noConflict();
jQuery(document).ready(function(){

  var javascriptLink = 0;

  // Liste Hauptmenüpunkte
  menuElements = jQuery('#menucontent > div > ul > li');
  
  // Unterscheidung zwischen http-Link und javascript-Link
  if (jQuery('#menucontent > div > ul').hasClass('LMenu')) {
    javascriptLink = 1;
  }

  menuElementsSubmenu = jQuery('#menucontent > div > ul > .selected > ul > li');
  var sid = jQuery.getUrlVar('sid');
  var url = window.location.href.substring( 0, window.location.href.indexOf('?'));
  
  if ( menuElements[1].className.match('selected') ) { // Internet
    // DNS-Server
    jQuery('#menucontent > div > ul > .selected.submenu ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'internet\',\'dns_server_enh\')">DNS-Server</a><span class="PTextOnly">DNS-Server</span></li>');
    // LAN-Bridge
    jQuery('#menucontent > div > ul > .selected.submenu ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'internet\',\'cable_bridge\')">LAN-Bridge</a><span class="PTextOnly">LAN-Bridge</span></li>');
  }
  if ( menuElements[2].className.match('selected') ) { // Telefonie
    // Wahlregeln anzeigen
    if ( javascriptLink == 0 ) {
      jQuery('#menucontent > div > ul > .selected ul').append('<li><a href="http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:menu=fon&var:pagename=routing&sid=' + sid +'">Wahlregeln</a></li>');
    }
    else {
      jQuery('#menucontent > div > ul > .selected ul').append('<li class="LSubitem"><a href="javascript:jslGoTo(\'fon\',\'routing\')">Wahlregeln</a><span class="PTextOnly">Wahlregeln</span></li>');
    }
    // Wahlregeln aktiv?
    if (url == 'http://fritz.box/cgi-bin/webcm' && (jQuery.getUrlVar('var%3Apagename') == 'routing' || jQuery.getUrlVar('var:pagename') == 'routing')) {
      jQuery('#menucontent > div > ul > .selected > ul > li').last().attr('class', 'selected' );
    }

    // Eigene Rufnummern - "Neue Rufnummer" und "Anschlusseinstellungen" nach Reboot automatisch freischalten
    if ( menuElementsSubmenu[6].className.match('selected') ) { 
      if ( !jQuery("#btnNewNum").length > 0 ) {
        jQuery('#main_form').append('<button style="display: none" id="gui_readonly" class="icon" title="Bearbeiten" value="0" name="sipextra:settings/gui_readonly" type="submit"><img alt="Bearbeiten" src="/css/default/images/bearbeiten.gif"></button>');
        jQuery("#gui_readonly").click();
      }
      //jQuery('#main_form').append('<button id="gui_readonly1" class="icon" title="Bearbeiten" value="1" name="sipextra:settings/gui_readonly" type="submit"><img alt="Bearbeiten" src="/css/default/images/bearbeiten.gif"></button>');
       
      // Delete-Buttons freischalten
      deleteButtons = jQuery('#uiViewFonNumTable button');
      var i;
      for ( i=1; i<deleteButtons.length; i+=2) {
        deleteButtons[i].disabled=false;
      }

    }
    
  }
});

jQuery.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return jQuery.getUrlVars()[name];
  }
});
 
Zuletzt bearbeitet:
Hallo,

eine Idee, wie man bei den neu eingerichteten SIP-Accounts die Nutzung des "1.PVC/Internet" einrichten kann? In den Konfigurationsdatei gibt es einen entsprechenden Parameter, aber dieser Weg ist bei den Kabelboxen versperrt.

Hintergrund: KabelBW richtet eine eigene Verbindung für die Telefonie ein, über die nur die Server von KabelBW erreichbar sind.
 
Kostenlos!

Statistik des Forums

Themen
248,927
Beiträge
2,305,461
Mitglieder
378,655
Neuestes Mitglied
M.CH.