Lösungsansatz mit SH und dtmfbox
Schönen Abend an alle,
habe einen Teilerfolg zu vermelden.
Nachdem ich mich eine Weile mit Asterisk erfolglos versucht habe, bin ich nun auf dtmfbox umgestigen.
Hier habe ich nun einige Tests gemacht und habe folgendes Scipt erstellt, mit dem es Möglich ist, alle 9999 Pins durchzuprobieren. Alle 10 Tests erfolgt ein Redial, so dass der Timeout von 3min nicht erreicht wird.
Das Script läuft auch durch, nur leider lässt sich bei meiner Box den PIN über die Mehode nicht zurücksetzen. Ich vermute, dass entweder ein direktes PIN-Ändern ohne vorherige Pin-Eingabe nicht möglich ist oder dass irgend ein Timing-Verhalten zuschlägt.
Kann ggf jemand von Euch das Script auf bei einem bekannten PIN mal testen, ob es grundsätzlich funktionieren würde? Bin mir nicht sicher, ob die Box mit den vielen Hashs und Stars etwas durcheinanderkommt?
Vorsicht beim durchlauf aller Möglichkeiten. Dauert ca. 14h!
Code:
#!/var/tmp/sh
a=0 # 1000-Ziffer
b=0 # 100-Ziffer
c=0 # 10-Ziffer
d=0 # 1-Ziffer
dtmfbox 0 -call 11 58 3 # Anruf des Türmanagers auf interner ISDN 58
sleep 6 # Etwas Wartezeit, bis ISDN-Verbindung aufgebaut ist
while [ $a -le 9 ]
do
dtmfbox 0 -dtmf "*" # Funktion PIN Ändern
dtmfbox 0 -dtmf "5"
dtmfbox 0 -dtmf "1"
dtmfbox 0 -dtmf "#"
dtmfbox 0 -dtmf "$a" # Fortlaufene PIN-Eingabe
dtmfbox 0 -dtmf "$b"
dtmfbox 0 -dtmf "$c"
dtmfbox 0 -dtmf "$d"
dtmfbox 0 -dtmf "#"
dtmfbox 0 -dtmf "0" # Neue PIN eingeben
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "#"
dtmfbox 0 -dtmf "0" # Neue PIN wiederholen
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "0"
dtmfbox 0 -dtmf "*"
sleep 2 # 2s Wartezeit für nächsten Versuch
echo $a $b $c $d >> done.log # Ergebnis in LOG speichern
d=`expr $d + 1` # Nächste Einerziffer
if [ $d == 10 ] # Bei 10 Zurücksetzen und Zehnerziffer hochzählen
then
d=0
dtmfbox 0 -hook down # Aufhängen und neu Einwählen
sleep 2
dtmfbox 0 -call 11 58 3
sleep 6
echo "neuanwahl" >> done.log
c=`expr $c + 1`
if [ $c == 10 ] # Bei 10 Zurücksetzen und Hunderterziffer hochzählen
then
c=0
b=`expr $b + 1`
if [ $b == 10 ] # Bei 10 Zurücksetzen und Tausenderziffer hochzäh
then
b=0
a=`expr $a + 1`
fi
fi
fi
done
dtmfbox 0 -hook down # Auflegen
Bei mir ist das Script nun als durchgelaufen, nur leider bisher ohne Erfolg.
Wäre klasse, wenn jemand das Script bei einer funktionierenden Box auf die Rücksetzfunktion des PW testen könnte.
Einfach PIN mit den Parametern a, b, c, d und das Ende des Loops mit "$d -le x" mit x für Wert von d vorbelegen.
Danke für Eure Unterstützung. Wäre klasse, wenn wir es gemeinsam schaffen könnten...
Timm_K