FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: outhouse am 22 September 2013, 13:38:24

Titel: Rufumleitung
Beitrag von: outhouse am 22 September 2013, 13:38:24
Im Wiki ist der Code "FritzBox: Rufumleitung automatisieren" zu finden. Dieser hat bei mir (mit 1 Dect-Fon) wunderbar funktioniert. Neu habe ich 2 Telefone, die jeweils mit  einer Rufnummer programmiert sind. Somit funktioniert die Weiterleitung an FON0 leider nicht mehr.

Gibt es eine Möglichkeit, dem Code im Wiki so abzuändern, dass ich ein bestimmtes Telefon bzw. eine bestimmte Rufnummer (des Dect-Fons) weiterleiten kann?

Gruss

Chris
Titel: Aw: Rufumleitung
Beitrag von: pappn am 26 September 2013, 21:29:16
Hallo Chris,

ich habe die Rufumleitung aus dem WIKI für mich angepasst, so dass in der 7390 die RUL für eine bestimmte Nummer gesetzt werden kann. Die Codes zur Unterstützung einzelner Umleitungsmerkmale konnte ich in der Dokumentation nicht detailliert genug nachvollziehen. Daher wird hier die RUL "sofort" "Nebenstelle" zu "Zielrufnummer" gesetzt.

Der einfache Aufruf zum Ein- oder Ausschalten der RUL erfolgt z. Bsp. aus der fhem.cfg (oder der FhemWeb-Komandozeile) heraus mit der Funktion {FB_RULswitch("%","12345","67890")}. Gültige Werte für "%" sind on, ON, off, OFF, 0 oder 1.

in die 99_myUtils
######## Switch FB Rufumleitung on/off für eine Rufnummer #################################################################
#
# Aufruf mit {FB_RULswitch('Aktiviert',"Nebenstellennummer","Zielrufnummer")}
# mögliche Kommandos für 'Aktiviert'
#   zum Deaktivieren der Rufumleitung: 0,oFF,AUS
#   zum Aktivieren der Rufumleitung: z.Bsp. 1,On,Ein
#   Nebenstellennummer/Zielrufnummer nur Ziffern
#
sub FB_RULswitch($@) {
 my $out = "";
 my $ret = "";       #### Hier erfolgt die Standardvorgabe der Parameter Ein/Aus,Nebenstelle,Zielrufnummer
 my $cmd = "";       # RUL deaktivieren: off,aus; RUL aktivieren: z.Bsp. 1,on,ein
 my $nst = "0123456789";         # Nebenstelle, die umgeleitet werden soll
 my $ziel = "0123456789";  # ZielRufnummer, auf die umgeleitet wird
 my $laenge = @_;
 return "Anzahl Parameter nicht korrekt. Erforderlich sind 3, nicht aber $laenge!" if ($laenge ne 3);
if ($laenge eq 3){
 $cmd = $_[0];
 $nst = $_[1];
 $ziel = $_[2];
 return "Ungueltiges Telefonnummernformat!" if (($nst =~/\D/)|($ziel =~/\D/));
}
#############################################################################
if (($cmd =~ /Off/i)|($cmd =~ /Aus/i)|($cmd eq 0)) { # Schreibweise ignorieren
 $out = "ATD*21" . "**" . "$nst" . "#";            # Wählstring zusammensetzen
 $ret .= "ATD: " . `echo "$out" | nc 127.0.0.1 1011`;            # wählen
 sleep 1 ;                                 #
 $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;          # auflegen
 $ret =~ s,[\r\n]*,,g;                          # remove CR from return-string
 Log 1, "FB_RULswitch($cmd) send: $out returned: $ret";           # Ergebnis in Logdatei
   } else {                                    # sonst RUL ein
 $out = "ATD*21" . "*" ."$ziel" . "*" . "$nst" . "#";            # Wählstring zusammensetzen
 $ret .= "ATD: " . `echo "$out" | nc 127.0.0.1 1011`;            # wählen
 sleep 1 ;                                 #
 $ret .= " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;          # auflegen
 $ret =~ s,[\r\n]*,,g;                          # remove CR from return-string
 Log 1, "FB_RULswitch($cmd) send: $out returned: $ret";           # Ergebnis in Logdatei
}}                                      #
#############################################################################

in die fhem.cfg z.B.:
define Rufumleitung dummy
attr Rufumleitung alias Rufumleitung Ein/Aus
attr Rufumleitung setList state:Mike,Paul,Aus
attr Rufumleitung webCmd state
define FB_Rufumleitung notify Rufumleitung {if("$EVENT" eq "Mike") {\
  FB_RULswitch("An","12345","67890");;} elsif("$EVENT" eq "Paul") {\
  FB_RULswitch("An","12345","67890");;} else {FB_RULswitch("Aus","12345","0");;}}
#Bei "Aus" ist die Zielrufnummer nicht relevant, muss aber mit Ziffer befüllt sein; daher "0"

Getestet auf meiner 7390. Ich hoffe das hilft dir.
Gruß
Christof
Titel: Aw: Rufumleitung
Beitrag von: outhouse am 28 September 2013, 09:02:54
Hallo Christof

Erst mal vielen Dank für deine Infos und den Code. Habe es gerade getestet (ebenfalls 7390). Es funktioniert einwandfrei!!!

Nochmals Danke!!

Gruss

Chris
Titel: Aw: Rufumleitung
Beitrag von: pappn am 28 September 2013, 10:57:27
Schön, dass es dir geholfen hat.

Gruß
Christof