Pagina 1 van 1
Fritzbox; time based dialing rules
Geplaatst: 23 okt 2012, 00:38
door UBremoved9108
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!
Re: Fritzbox; time based dialing rules
Geplaatst: 23 okt 2012, 08:32
door philippe_d
Jammer genoeg niet.
Re: Fritzbox; time based dialing rules
Geplaatst: 23 okt 2012, 12:44
door UBremoved9108
Dat is kort maar duidelijk, heel jammer

Re: Fritzbox; time based dialing rules
Geplaatst: 31 jul 2014, 21:49
door honda4life
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.
Re: Fritzbox; time based dialing rules
Geplaatst: 01 aug 2014, 13:22
door Sinna
Ik vermoed dat er nog wel meer geïnteresseerden zullen zijn, waaronder philippe_d.
Als je dus wat kan melden, graag

Re: Fritzbox; time based dialing rules
Geplaatst: 01 aug 2014, 18:05
door honda4life
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.
Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 14:51
door honda4life
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

Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 15:26
door Heronic
Wat ga je dan precies doen? Een "if" toevoegen? Ik bedoel maar ergens moet er toch een routine gemaakt worden dan.
Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 15:45
door honda4life
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/
Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 16:31
door Heronic
Aha dus script dat in feite 2x daags de cfg's swapt. Worden die enkel bij boot geladen, kan je die niet gewoon "herladen"?
Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 16:39
door honda4life
config swappen werkt niet, vermits je verbinding er dan even uitgaat.
Niet zo fijn dus 2x per dag.
Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 16:54
door Heronic
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.

Re: Fritzbox; time based dialing rules
Geplaatst: 03 aug 2014, 17:34
door honda4life
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
Re: Fritzbox; time based dialing rules
Geplaatst: 26 okt 2014, 11:56
door honda4life
Misschien nog een leuke is call diversion als er niemand niet thuis is

Re: Fritzbox; time based dialing rules
Geplaatst: 13 feb 2015, 17:19
door dommelgebruiker
met welk programma kan ik ene back up file openen om mogelijk te bewerken?
Re: Fritzbox; time based dialing rules
Geplaatst: 13 feb 2015, 17:47
door honda4life
De simpelste is notepad.
Maar geef mij maar notepad++
Wat wil je doen?
[
Post made via mobile device ]
Re: Fritzbox; time based dialing rules
Geplaatst: 08 apr 2015, 18:20
door alfa_ajx732
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
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

Re: Fritzbox; time based dialing rules
Geplaatst: 28 apr 2015, 17:46
door honda4life
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 (&).
Re: Fritzbox; time based dialing rules
Geplaatst: 28 apr 2015, 18:03
door Heronic
Is die dan nog goed voor vectoring?
Re: Fritzbox; time based dialing rules
Geplaatst: 28 apr 2015, 18:56
door honda4life
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

?
Edit: 6.20 is rommel, ineens de beta er op gegooid en wifi werkt terug naar behoren, op alles was het tergend langzaam.
Re: Fritzbox; time based dialing rules
Geplaatst: 30 jan 2016, 19:23
door alfa_ajx732
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

Re: Fritzbox; time based dialing rules
Geplaatst: 04 jul 2016, 16:34
door cybersurfr
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?
Re: Fritzbox; time based dialing rules
Geplaatst: 04 jul 2016, 16:44
door honda4life
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.
Re: Fritzbox; time based dialing rules
Geplaatst: 02 mei 2017, 17:29
door alfa_ajx732
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
Re: Fritzbox; time based dialing rules
Geplaatst: 02 mei 2017, 18:25
door honda4life
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

Re: Fritzbox; time based dialing rules
Geplaatst: 04 mei 2017, 19:23
door alfa_ajx732
@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.