Fritzbox; time based dialing rules

Plaats reactie
cyberbozzo
Premium Member
Premium Member
Berichten: 727
Lid geworden op: 27 sep 2007, 23:31
Uitgedeelde bedankjes: 23 keer
Bedankt: 25 keer
Provider

Beste,

Iemand een idee of de FritzBox in de nieuwste firmwares reeds over time based dialing rules beschikt?
Ga vandeweek ergens een Fritzboxke instellen die uitbelt via Betamax én via een PSTN lijn van Telenet (in hoeverre dat laatste PSTN is natuurlijk, maar goed, daar gaat het nu niet over).

Ik zou die FritzBox natuurlijk na 16u willen laten uitbellen via Telenet ivm Freephone én na 16u ook uitbellen via Telenet als het om BE Mobile nummers gaat (Mobile gratis bij TN na 16u).
Voor de rest moet ie natuurlijk buitenbellen via Betamax.

Is natuurlijk onmogelijk te programmeren als er geen time based dialing rules zijn.

Ik weet dat dat indertijd een request is geweest vanuit de community, maar of dat nu al in orde is?

Thx!
philippe_d
Moderator
Moderator
Berichten: 16487
Lid geworden op: 28 apr 2008, 11:22
Locatie: Waregem
Uitgedeelde bedankjes: 820 keer
Bedankt: 2998 keer
Provider

Jammer genoeg niet.
VoIP: WeePee (vaste nummers geporteerd), Sipgate.de, Sipgate.co.uk, MegaVoip (uitgaand België).
Provider: Proximus Start (60/4 mbps down/up).
Modem/Router: Fritz!Box 7590 int, OS 07.39-97058 BETA, profiel 100/35.
Telefoon centrale: Euracom 181 achter FritzBox So.
TV: Telenet CI+, Fritz!DVB-C.
cyberbozzo
Premium Member
Premium Member
Berichten: 727
Lid geworden op: 27 sep 2007, 23:31
Uitgedeelde bedankjes: 23 keer
Bedankt: 25 keer
Provider

Dat is kort maar duidelijk, heel jammer :-(
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Sorry voor de kick van zo'n oud topic maar ik denk dat het wel nuttig is (in mijn geval toch).

Ik ben het een en het ander aan het proberen om iets via de command line aan de praat te krijgen en heb al een paar interessante vaststellingen gedaan.
Ik kan goed overweg met Linux, echter zijn er nog wat doodlopende eindjes.
Indien er nog interesse is kunnen we misschien eens brainstormen en tot een oplossing komen.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
Sinna
Elite Poster
Elite Poster
Berichten: 2417
Lid geworden op: 14 nov 2008, 08:22
Twitter: KrSi78
Locatie: Brugge
Uitgedeelde bedankjes: 208 keer
Bedankt: 152 keer
Provider

Ik vermoed dat er nog wel meer geïnteresseerden zullen zijn, waaronder philippe_d.
Als je dus wat kan melden, graag :)
Computer(k)nul
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Uiteraard zitten alle settings in de backup van de configuratie.
Helaas is het niet mogelijk deze te herladen zonder dat je de fritzbox moet herstarten, anders was het probleem opgelost.

Na wat backups te vergelijken merk ik het volgende:

Nieuwe dailing rules aanmaken heeft effect op volgende binaire files:
fx_lcr
telefon_misc

Interface van een dailing rule aanpassen heeft effect op volgende binaire files:
fx_lcr, hier verandert slechts één byte.

Het lijkt simpel, deze file(s) herladen, maar welk proces gebruikt deze en hoe dit te doen zonder onderbreking.
Het is alvast niet de voip daemon.
Dus ik dacht, laten we deze files eens deleten... deze zijn helaas niet in gebruik. Dit zijn vast instellingen die in het werkgeheugen zitten eenmaal geladen, anders was het simpel om te vinden wat deze files geopend heeft.

Iemand tot hier een idee?


Een laatste mogelijkheid is een Curl-script maken, dat "browsen" simuleert.
Dit is natuurlijk een erg omslachtige manier, zeker om dit met een sh script te doen.
Had ik nu een ondersteunende krachtige taal, was dit vast beter te doen.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Langzaam maar zeker:

Met "ctlmgr_ctl r telcfg" kan je de configuratie uitlezen, waarschijnlijk is "w" schrijven.
http://www.wehavemorefun.de/fritzbox/Telcfg

Nu hier nog de dailing rules te pakken krijgen en we zijn er zo goed als.

Edit:
I DID IT:
ctlmgr_ctl r telcfg settings/Routing/Group0/Route

Nu nog de rest ze :)
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2736
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 427 keer
Bedankt: 210 keer
Provider

Wat ga je dan precies doen? Een "if" toevoegen? Ik bedoel maar ergens moet er toch een routine gemaakt worden dan.
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

In linux heb je cron (aanwezig op de Fritz zelve dus).
Hier kan je time based events maken.
In principe kan je om 8 en 16 uur de aanpassingen doen en klaar is kees.

Helaas ben ik zo'n freak die ook het herstarten van de box in rekening wil brengen en controleer ik dus de tijd en voorwaarden.
één en hetzelfde script voor start piek, start dal en reboot.

Code: Selecteer alles

#!/bin/sh
HOUR=$(date +"%k")
DAY=$(date +"%u")
echo "HOUR: $HOUR"
echo "DAY: $DAY"
if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
        echo Piekuren
else
        echo Daluren
fi
Precies toch geen cron, dan maar op deze manier werken:
http://www.koerner.in/2012/07/reboot-fr ... ific-time/
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2736
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 427 keer
Bedankt: 210 keer
Provider

Aha dus script dat in feite 2x daags de cfg's swapt. Worden die enkel bij boot geladen, kan je die niet gewoon "herladen"?
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

config swappen werkt niet, vermits je verbinding er dan even uitgaat.
Niet zo fijn dus 2x per dag.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2736
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 427 keer
Bedankt: 210 keer
Provider

Ben niet goed mee hoor.
Config swappen = verbinding even kwijt.
Maar 2x rebooten is wel ok?

Is het dan niet mogelijk een script met sed commandos 2x daags de aanpassingen te laten doen?

Kan zijn dat ik er vanavond ook eens naar kijk als mijn permanente aanwezigheid naast mijn liefste haar zijde niet meer vereist is. :wink:
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Zo ver sta ik al.
debug.cfg wordt bij opstart uitgevoerd (of de tijd dan al juist is moet ik nog testen).
Hiervoor maak ik een oneindige lus die blijft doorgaan.
Om geen CPU te vreten, laat ik deze lus slapen alvorens opnieuw uit te voeren.
Nu kan je om de seconde, minuut, ... controleren hoe laat het is. Maar ook berekenen hoe lang het programma nog moet wachten tot 8 of 16 uur.
Na het wachten, wordt gekeken hoe laat het is, en de juiste functie geselecteerd.
Dubbel werk zou je denken... Nee je wil dit ook bij een herstart controleren.

Door volgende command kan ik van m'n eerste dailing rule aanpassen welke uitgaande lijn te gebruiken.
ctlmgr_ctl w telcfg settings/Routing/Group0/Route 0
ctlmgr_ctl w telcfg settings/Routing/Group0/Route 1

Code: Selecteer alles

#!/bin/sh

onpeak() {
        echo "Piekuren"
}

offpeak() {
        echo "Daluren"
}

changerules() { #Check onpeak or offpeak
        HOUR=$(date +"%k")
        DAY=$(date +"%u")
        if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
                onpeak
        else
                offpeak
        fi
}

sleephandler() { #Handles sleep until time
        DIFF_8=$(($(date -d "8:00" +%s) - $(date +%s))) #8:00 o'clock
        DIFF_16=$(($(date -d "16:00" +%s) - $(date +%s))) #16:00 o'clock
        if [ $DIFF_8 -lt 0 ]; then #Time is passed + 1 day
                DIFF_8=$((DIFF_8 + 86400))
        fi
        if [ $DIFF_16 -lt 0 ]; then #Time is passed + 1 day
                DIFF_16=$((DIFF_16 + 86400))
        fi
        if [ $DIFF_8 -lt $DIFF_16 ]; then #Time that comes first
                DIFF_SLEEP=$DIFF_8
        else
                DIFF_SLEEP=$DIFF_16
        fi
        echo "Sleeping: $DIFF_SLEEP"
        sleep $DIFF_SLEEP #Sleep until first time
}

changerules #Change rules at startup

while true; do #Infinite loop rechange rules at time
        sleephandler #Sleep until time
        changerules #Change rules on first time
done
Edit: zoals gevreesd, tijdens de opstart klopt het uur nog niet.
Daar een loop inbouwen tot het jaartal niet meer 1970 is en dan zijn we er

Edit: dit zou 'm moeten zijn (zonder aanpassing van de rules)

Code: Selecteer alles

#!/bin/sh
onpeak() {
	#echo "$(date): Piekuren" >> /var/flash/debug.log
}
offpeak() {
	#echo "$(date): Daluren" >> /var/flash/debug.log
}
changerules() { #Check onpeak or offpeak
	HOUR=$(date +"%k")
	DAY=$(date +"%u")
	if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
		onpeak
	else
		offpeak
	fi	
}
sleephandler() { #Handles sleep until time
	DIFF_8=$(($(date -d "8:00" +%s) - $(date +%s))) #8:00 o'clock
	DIFF_16=$(($(date -d "16:00" +%s) - $(date +%s))) #16:00 o'clock
	if [ $DIFF_8 -lt 0 ]; then #Time is passed + 1 day
		DIFF_8=$((DIFF_8 + 86400))
	fi
	if [ $DIFF_16 -lt 0 ]; then #Time is passed + 1 day
		DIFF_16=$((DIFF_16 + 86400))
	fi
	if [ $DIFF_8 -lt $DIFF_16 ]; then #Time that comes first
		DIFF_SLEEP=$DIFF_8
	else
		DIFF_SLEEP=$DIFF_16
	fi
	sleep $DIFF_SLEEP #Sleep until first time
}
until [ $(date +"%Y") -ne 1970 ]; do #Wait time update at startup
	#echo "$(date): Wait" >> /var/flash/debug.log
	sleep 1
done
changerules #Change rules at startup
while true; do #Infinite loop rechange rules at time
	sleephandler #Sleep until time
	changerules #Change rules on first time
done
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Misschien nog een leuke is call diversion als er niemand niet thuis is :lol:
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
dommelgebruiker
Premium Member
Premium Member
Berichten: 677
Lid geworden op: 09 jul 2010, 11:06
Uitgedeelde bedankjes: 1 keer
Bedankt: 7 keer
Provider

met welk programma kan ik ene back up file openen om mogelijk te bewerken?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

De simpelste is notepad.
Maar geef mij maar notepad++

Wat wil je doen?

[Afbeelding Post made via mobile device ]
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
alfa_ajx732
Plus Member
Plus Member
Berichten: 160
Lid geworden op: 02 feb 2007, 12:30
Locatie: Tielt (W-Vl)
Uitgedeelde bedankjes: 29 keer
Bedankt: 8 keer
Provider

Met de hulp van honda4life heb ik het scriptje om een time based dialing rule in te stellen lopende gekregen.
Het heeft wel wat moeite gekost om dat op een Fritz 7490 met versie 6.20 te realiseren maar daarover later meer.
Op een versie 6.06 is het zonder meer te gebruiken.
De opzet is als ik een "0" kies de verbinding in de daluren via de scarlet voip gaat en in de piekuren via internet voipbuster.
Ik heb nog een tweede dialing rule aangemaakt die de "04" (mobiel verkeer) altijd naar internet voipbuster stuurt.
Het is van belang dat de "0" regel als eerste staat.
Het script heb ik met een paar kleine aanpassingen van honda4life overgenomen, nogmaals dank daarvoor :beerchug:
en zo ziet het er nu uit:

Code: Selecteer alles

#!/bin/sh
until [ $(date +"%Y") -ne 1970 ]; do #Wait time update at startup
   echo "$(date): Wait" >> /var/flash/debug.log
   sleep 2
done
onpeak() {
   echo "$(date): onpeak" >> /var/flash/debug.log
   ctlmgr_ctl w telcfg settings/Routing/Group0/Route 1
}
offpeak() {
   echo "$(date): offpeak" >> /var/flash/debug.log
   ctlmgr_ctl w telcfg settings/Routing/Group0/Route 0
}
changerules() { #Check onpeak or offpeak
   HOUR=$(date +"%k")
   DAY=$(date +"%u")
   if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
      onpeak
   else
      offpeak
   fi   
}
sleephandler() { #Handles sleep until time
   DIFF_8=$(($(date -d "8:00" +%s) - $(date +%s))) #8:00 o'clock
   DIFF_16=$(($(date -d "16:00" +%s) - $(date +%s))) #16:00 o'clock
   if [ $DIFF_8 -lt 0 ]; then #Time is passed + 1 day
      DIFF_8=$((DIFF_8 + 86400))
   fi
   if [ $DIFF_16 -lt 0 ]; then #Time is passed + 1 day
      DIFF_16=$((DIFF_16 + 86400))
   fi
   if [ $DIFF_8 -lt $DIFF_16 ]; then #Time that comes first
      DIFF_SLEEP=$DIFF_8
   else
      DIFF_SLEEP=$DIFF_16
   fi
   echo "$DIFF_SLEEP Begin Sleep until next time" >> /var/flash/debug.log
   sleep $DIFF_SLEEP #Sleep until first time
}
changerules #Change rules at startup
while true; do #Infinite loop rechange rules at time
   sleephandler #Sleep until time
   changerules #Change rules on first time
done
deze code in de /var/flash/debug.cfg inbrengen en reboot.
Dit loopt bij mij nu al een paar dagen (bij honda4life al 6 maanden) zonder probleem; in de /var/flash/debug.log kan je kontroleren wanneer de piek- en dal-uren gestart werden.
Nogmaals dit werkt enkel voor de versie 6.06 en eerder

Voor de 6.20 moet een modfs programma gestart worden die het mogelijk maakt om de debug.cfg terug aan te maken, maar dat wil ik in een nieuw topic uit de doeken doen :-D
Provider: Scarlet Trio
Voip: Scarlet; Voipbuster; Hotvoip
Modem/Router: Fritz!Box 7590 FW 07.25 (Sync 100/30)
DECT: Fritz!Fon M2 + C4; 2 x Fritz!Dect Repeater 100; Fritz!Dect 200
Wifi rep: Fritz!Wlan Repeater 1750E+3000; powerl 1220/1260
NAS: Synology DS215J; QNAP TS110+TS221
TV: Telenet CI+ + AD2200; Scarlet/Prox. 2xV4
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

Ik heb een aangepaste firmware gemaakt van de 7390 6.20 met debug.cfg werkende.
Wie m'n aangepaste firmware vertrouwt, stuurt maar een PM.

Ohja het script werkt ook met de "power consumption" werkende.
Dit door het script in een apart bestand te steken en op te roepen vanuit debug.cfg in de achtergrond (&).
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2736
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 427 keer
Bedankt: 210 keer
Provider

Is die dan nog goed voor vectoring?
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

7390 sowieso niet dusja...
Voor mezelf is de afstand tot de ROP te groot, en de ROP heeft nog geen vectoring kaarten.

Trouwens hoe identificeert de ROP modem X als vectoring approved :wink: ?

Edit: 6.20 is rommel, ineens de beta er op gegooid en wifi werkt terug naar behoren, op alles was het tergend langzaam.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
alfa_ajx732
Plus Member
Plus Member
Berichten: 160
Lid geworden op: 02 feb 2007, 12:30
Locatie: Tielt (W-Vl)
Uitgedeelde bedankjes: 29 keer
Bedankt: 8 keer
Provider

Heb net een upgrade van mijn Fritz 7490 van 6.20 naar 6.30 succesvol doorgevoerd.
Mijn Telnet en debug.cfg met Time based dialing rules werken nog prima.
Op de 6.20 had ik de ./modfs van PeterPawn gebruikt http://www.ip-phone-forum.de/showthread.php?t=272725 om de debug.cfg en Telnet weer werkende te krijgen.
Nu voor de 6.30 had ik enkel dit script te starten

Code: Selecteer alles

./modfs update FRITZ.Box_7490.en-de-es-it-fr-pl.113.06.30.image
en dat was het.
Ik ben een gelukkig man :thumbs:
Provider: Scarlet Trio
Voip: Scarlet; Voipbuster; Hotvoip
Modem/Router: Fritz!Box 7590 FW 07.25 (Sync 100/30)
DECT: Fritz!Fon M2 + C4; 2 x Fritz!Dect Repeater 100; Fritz!Dect 200
Wifi rep: Fritz!Wlan Repeater 1750E+3000; powerl 1220/1260
NAS: Synology DS215J; QNAP TS110+TS221
TV: Telenet CI+ + AD2200; Scarlet/Prox. 2xV4
cybersurfr
Pro Member
Pro Member
Berichten: 315
Lid geworden op: 07 feb 2009, 21:46
Uitgedeelde bedankjes: 8 keer
Bedankt: 19 keer
Provider

honda4life schreef:Zo ver sta ik al.
debug.cfg wordt bij opstart uitgevoerd (of de tijd dan al juist is moet ik nog testen).
Hiervoor maak ik een oneindige lus die blijft doorgaan.
Om geen CPU te vreten, laat ik deze lus slapen alvorens opnieuw uit te voeren.
Nu kan je om de seconde, minuut, ... controleren hoe laat het is. Maar ook berekenen hoe lang het programma nog moet wachten tot 8 of 16 uur.
Na het wachten, wordt gekeken hoe laat het is, en de juiste functie geselecteerd.
Dubbel werk zou je denken... Nee je wil dit ook bij een herstart controleren.

Door volgende command kan ik van m'n eerste dailing rule aanpassen welke uitgaande lijn te gebruiken.
ctlmgr_ctl w telcfg settings/Routing/Group0/Route 0
ctlmgr_ctl w telcfg settings/Routing/Group0/Route 1

Code: Selecteer alles

#!/bin/sh

onpeak() {
        echo "Piekuren"
}

offpeak() {
        echo "Daluren"
}

changerules() { #Check onpeak or offpeak
        HOUR=$(date +"%k")
        DAY=$(date +"%u")
        if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
                onpeak
        else
                offpeak
        fi
}

sleephandler() { #Handles sleep until time
        DIFF_8=$(($(date -d "8:00" +%s) - $(date +%s))) #8:00 o'clock
        DIFF_16=$(($(date -d "16:00" +%s) - $(date +%s))) #16:00 o'clock
        if [ $DIFF_8 -lt 0 ]; then #Time is passed + 1 day
                DIFF_8=$((DIFF_8 + 86400))
        fi
        if [ $DIFF_16 -lt 0 ]; then #Time is passed + 1 day
                DIFF_16=$((DIFF_16 + 86400))
        fi
        if [ $DIFF_8 -lt $DIFF_16 ]; then #Time that comes first
                DIFF_SLEEP=$DIFF_8
        else
                DIFF_SLEEP=$DIFF_16
        fi
        echo "Sleeping: $DIFF_SLEEP"
        sleep $DIFF_SLEEP #Sleep until first time
}

changerules #Change rules at startup

while true; do #Infinite loop rechange rules at time
        sleephandler #Sleep until time
        changerules #Change rules on first time
done
Edit: zoals gevreesd, tijdens de opstart klopt het uur nog niet.
Daar een loop inbouwen tot het jaartal niet meer 1970 is en dan zijn we er

Edit: dit zou 'm moeten zijn (zonder aanpassing van de rules)

Code: Selecteer alles

#!/bin/sh
onpeak() {
	#echo "$(date): Piekuren" >> /var/flash/debug.log
}
offpeak() {
	#echo "$(date): Daluren" >> /var/flash/debug.log
}
changerules() { #Check onpeak or offpeak
	HOUR=$(date +"%k")
	DAY=$(date +"%u")
	if [ $HOUR -ge 8 ] && [ $HOUR -lt 16 ] && [ $DAY -lt 6 ]; then
		onpeak
	else
		offpeak
	fi	
}
sleephandler() { #Handles sleep until time
	DIFF_8=$(($(date -d "8:00" +%s) - $(date +%s))) #8:00 o'clock
	DIFF_16=$(($(date -d "16:00" +%s) - $(date +%s))) #16:00 o'clock
	if [ $DIFF_8 -lt 0 ]; then #Time is passed + 1 day
		DIFF_8=$((DIFF_8 + 86400))
	fi
	if [ $DIFF_16 -lt 0 ]; then #Time is passed + 1 day
		DIFF_16=$((DIFF_16 + 86400))
	fi
	if [ $DIFF_8 -lt $DIFF_16 ]; then #Time that comes first
		DIFF_SLEEP=$DIFF_8
	else
		DIFF_SLEEP=$DIFF_16
	fi
	sleep $DIFF_SLEEP #Sleep until first time
}
until [ $(date +"%Y") -ne 1970 ]; do #Wait time update at startup
	#echo "$(date): Wait" >> /var/flash/debug.log
	sleep 1
done
changerules #Change rules at startup
while true; do #Infinite loop rechange rules at time
	sleephandler #Sleep until time
	changerules #Change rules on first time
done
Heb dit ook draaien op 06.51?
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

06.31 wel ja.
Zou niet mogen uitmaken hoor welke firmwareversie.

Dit zijn er wel op een 7390 (met genoeg intern geheugen), op een 7360 moet het iets anders.
Ook is er tegenwoordig vrij veel werk aan om de firmwares aan te passen naar debug.cfg en telnet terug actief te hebben.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
alfa_ajx732
Plus Member
Plus Member
Berichten: 160
Lid geworden op: 02 feb 2007, 12:30
Locatie: Tielt (W-Vl)
Uitgedeelde bedankjes: 29 keer
Bedankt: 8 keer
Provider

Geen Telnet meer sinds de fritzOS 6.83
Het bovenvermelde script met 'time based dialing rules' heb ik sinds de OS 6.20 altijd geactiveerd via Telnet en de modfs.
Na de update naar 6.83 is het script nog werkzaam maar het ziet er naar uit dat Telnet nu volledig geblokkeerd is!
In vorige OS kreeg ik Telnet weer op gang dmv het 'modfs-starter' te laden maar in de 6.83 weigert fritz deze load omdat het geen firmware is!
Daar sta ik dan ... alles werkt prima met de 6.83, mijn time based dialing rules zijn actief maar ik kom niet meer binnen via Telnet.
Ik heb dus tijd tot de volgende firmware upgrade want om die te starten moet ik de './modfs -update' kunnen oproepen.

Ik heb wat zitten rondneuzen bij PeterPawn (de goeroe van de modfs) en daar wordt SIAB (Shell-in-a-Box) genoemd om toegang te krijgen?
Vandaar mijn vraag aan het forum: Heeft er soms iemand ervaring met SIAB?
De shell zou ergens via FTP in de Fritz aangemaakt worden ... maar ik kom daar niet verder ... please help
Provider: Scarlet Trio
Voip: Scarlet; Voipbuster; Hotvoip
Modem/Router: Fritz!Box 7590 FW 07.25 (Sync 100/30)
DECT: Fritz!Fon M2 + C4; 2 x Fritz!Dect Repeater 100; Fritz!Dect 200
Wifi rep: Fritz!Wlan Repeater 1750E+3000; powerl 1220/1260
NAS: Synology DS215J; QNAP TS110+TS221
TV: Telenet CI+ + AD2200; Scarlet/Prox. 2xV4
Gebruikersavatar
honda4life
Elite Poster
Elite Poster
Berichten: 5659
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 186 keer
Bedankt: 315 keer
Provider

alfa_ajx732 schreef:Geen Telnet meer sinds de fritzOS 6.83
Het bovenvermelde script met 'time based dialing rules' heb ik sinds de OS 6.20 altijd geactiveerd via Telnet en de modfs.
Na de update naar 6.83 is het script nog werkzaam maar het ziet er naar uit dat Telnet nu volledig geblokkeerd is!
In vorige OS kreeg ik Telnet weer op gang dmv het 'modfs-starter' te laden maar in de 6.83 weigert fritz deze load omdat het geen firmware is!
Daar sta ik dan ... alles werkt prima met de 6.83, mijn time based dialing rules zijn actief maar ik kom niet meer binnen via Telnet.
Ik heb dus tijd tot de volgende firmware upgrade want om die te starten moet ik de './modfs -update' kunnen oproepen.

Ik heb wat zitten rondneuzen bij PeterPawn (de goeroe van de modfs) en daar wordt SIAB (Shell-in-a-Box) genoemd om toegang te krijgen?
Vandaar mijn vraag aan het forum: Heeft er soms iemand ervaring met SIAB?
De shell zou ergens via FTP in de Fritz aangemaakt worden ... maar ik kom daar niet verder ... please help
Wie wil mag me steeds een PB sturen om een aangepaste image te bekomen.
Wel te flashen met ruKernelTool.
Geen garantie aangeboden door mij ;-)
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
alfa_ajx732
Plus Member
Plus Member
Berichten: 160
Lid geworden op: 02 feb 2007, 12:30
Locatie: Tielt (W-Vl)
Uitgedeelde bedankjes: 29 keer
Bedankt: 8 keer
Provider

@Honda, bedankt voor het voorstel.
Ik ga me toch nog eens verdiepen in Freetz en nog wat verder zoeken naar de SIAB toegang, heb nog wat tijd tegen de volgende update.
Provider: Scarlet Trio
Voip: Scarlet; Voipbuster; Hotvoip
Modem/Router: Fritz!Box 7590 FW 07.25 (Sync 100/30)
DECT: Fritz!Fon M2 + C4; 2 x Fritz!Dect Repeater 100; Fritz!Dect 200
Wifi rep: Fritz!Wlan Repeater 1750E+3000; powerl 1220/1260
NAS: Synology DS215J; QNAP TS110+TS221
TV: Telenet CI+ + AD2200; Scarlet/Prox. 2xV4
Plaats reactie

Terug naar “VoIP”