Interner Anruf über FB7390 schaltet Webfront

Hallo,

ich habe ein a/b Nebenstelle (Tuer, **2) an der Fritzbox und eine IP Cam.
Beim Klingel soll das Webfront auf die Kamera schalten.

Welche Funktion, Port, Meldung kann ich dafür als Schalter am sinnvollsten nutzen?

  • SIP-Client für IPS,
  • Port der Fritzbox, (client-socket schon installiert)
  • Anrufmonitore…
    Ausserhalb der IPS
    -J Fritz startet ja z. B Programm bei Anruf…

irgendwie so…


##socket öffnen
##Daten zerlegen, explode
##wenn Anruf von "Tuer" dann..
case "RING":
// Datum;RING;ConnectionID;Anrufer-Nr;Angerufene-Nummer;
 {
 WFC_SwitchPage(50553 /*[WebFront Configurator]*/, "Cam");
 }
case "DISCONNECT":
// Datum;DISCONNECT;ConnectionID;DauerInSekunden;
##..... zurückschalten ursprünglichel Seite im Webfront
break;
?>

Ich denke wenn ein Anrufmonitor das kann, muss das IPS auch irgendwie hinkriegen…
Wie komm ich weiter, evtl mit einem I/O cutter?
Weiterhin habe ich nicht die internen Rufnummern gesehen…

Gruß Konny

port1012.PNG

Hast Du denn eine Kommunikation auf dem Port wenn Du intern anrufst.

Weiterhin habe ich nicht die internen Rufnummern gesehen…

Wenn ich das so lese, denke ich eher nicht.

Bei mir haben die Klingeln spezielle Rufnummern (13 und 14)
Script sieht dann wie folgt aus:

    case "RING":
   $Rufnummer = $daten[3];
    SetValue(33421 /*[Innen\Dummy Module\Eingehende]*/ , "am ".datetime. " von ".$Rufnummer);
    if($Rufnummer=="14")
    {
    SetValue(26288 /*[Innen\Klingel\KlingelOben]*/ , true);
    WFC_SwitchPage(12345, "item1234");
    }
        if($Rufnummer=="13")
    {
    SetValue(20533 /*[Innen\Klingel\KlingelUnten]*/ , true);
    }

Nein,
intern werden die Rings nicht angezeigt, aber man kann evtl. das nach aussen umbiegen mit einer Festnetz oder VOIP-Nummer…
Ich teste noch…

@sschnake
Hast du eine Pseudotelefonnummer angelegt. (z.B als SIP auf der Fritzbox als registrar)?
Wie ist der Abgriff auf den Port per script?

Gruß Konny

Ich hab an den anlogen Eingang der fritbox meine klingel / Telefonanlage von Eurakom angeschlossen, und lasse alle Klingel Ereignisse auf dem Port ankommen. Die Rufnummern ( 13 / 14 ) sind in der Eurakom eingetragen.

also ich hab’s umgebogen mit einer VoIP-Nummer:

-Voip Nummer zugewiesen (123458)
-Fritzbox Amtholung Nebenstellen(2) der Klingel: #121#91** (an)
-Auerswald TFS auf externe Nummer umprogramiert:
a.(Klingel 5 sec drücken, Kontrollton abwarten)
b.Mit anderem internen Telefon anwählen (hier: **2)
c.Einwählen an der TFS: * 0000 (5 kurz Quitungston abwarten)
d.Rufnummer am Taster programieren: hier *2197771 und auflegen.
*2(~Klingel)1(~Taster)97771(~Rufnummer).

Jetzt bekomme ich die Anzeige auf dem Port 1012…

Nun fehlt mir nur noch die Portabfrage in der IPS…

Konny

Klingel.PNG

Clientsocket und Regvar anlegen. Den Rest hast Du ja schon fast ganz oben geschrieben. Fehlt noch das aufteilen. Such dir was raus.

// Daten aus Registervariable lesen
$daten = explode(";", $IPS_VALUE);
// Datum/Uhrzeit anzeigen
define ("datetime", $daten[0]);

// Daten aus Registervariable auswerten
switch($daten[1])
{
    case "RING":
   $Rufnummer = $daten[3];
   $intern = $daten[4];
   SetValue(30553 /*[Fritzbox\Anrufe\Anruf]*/, $Rufnummer);
   SetValue(33912 /*[Fritzbox\Anrufe\Anruf]*/, true);
   $lautstaerkeRing = GetValue(49573 /*[WebRadio\Web Radio\Volume]*/);
    SetValue(30611 /*[Fritzbox\Anrufe\LautstärkeMediaplayer\letzteLautstärke]*/, $lautstaerkeRing);
   if($intern == 982966)
   {
       IPS_RunScript(23169 /*[Fritzbox\Anrufe\LautstärkeMediaplayer]*/);
    }
    if(in_array($Rufnummer, $array["Nummer"]))
   {
       $intern = array_search($Rufnummer, $array["Nummer"]);
       SetValue(52055 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "<b style=color:#0085CE;/>"."am ".datetime. " von ".$array["Name"][$intern]."<b />");
       SetValue(42706 /*[Fritzbox\Anrufe\Letzter Anruf]*/, "<b style=color:#FFFF40;/>"."am ".datetime. " von ".$array["Name"][$intern]."<b />");
       echo "Anruf am ".datetime. " von ".$array["Name"][$intern];
       SetValue(10528 /*[Fritzbox\Anrufe\Name]*/, $array["Name"][$intern]);
       return;
   }
   else
   {
      $Rufnummer = SucheNummer($Rufnummer);
   }
   break;

   case "CALL":
   $interneNummer = $daten[4];
   $lautstaerkeCall = GetValue(49573 /*[WebRadio\Web Radio\Volume]*/);
    SetValue(30611 /*[Fritzbox\Anrufe\LautstärkeMediaplayer\letzteLautstärke]*/, $lautstaerkeCall);
   if ($interneNummer == xxxx)
   {
      $interneNummer = "Rainer";
      IPS_RunScript(23169 /*[Fritzbox\Anrufe\LautstärkeMediaplayer]*/);
    }
    else
    {
       $interneNummer = "Gabi";
    }
    $externeNummer = $daten[5];
    SetValue(35105 /*[Fritzbox\Anrufe\Ausgehender Anruf]*/, "<b style=color:#00FF00;/>"."von ".$interneNummer." zu ".$externeNummer."<b />");
   break;

   case "DISCONNECT":
   IPS_RunScript(22055 /*[Fritzbox\Anruferliste abholen]*/);
   RegVar_SetBuffer(27536 /*[Fritzbox\Fritzport1012]*/, "");
   SetValue(52055 /*[Fritzbox\Anrufe\Eingehender Anruf]*/, "");
   SetValue(35105 /*[Fritzbox\Anrufe\Ausgehender Anruf]*/, "");
   $lautstaerke = GetValue(30611 /*[Fritzbox\Anrufe\LautstärkeMediaplayer\letzteLautstärke]*/);
   WAC_SetVolume(44140 /*[WebRadio\Web Radio]*/, $lautstaerke);
   IPS_SetScriptTimer(33436 /*[Fritzbox\Internettelefonie]*/, 10);
   IPS_SetScriptTimer(44737 /*[Fritzbox\Anrufbeantworter\Nachrichten]*/, 10);
   SetValue(33912 /*[Fritzbox\Anrufe\Anruf]*/, false);
   break;
}

Da brauch ich noch etwas Hilfe…

Wie füll ich die Registervariable? (Bild)
Und wie ist der syntaxt von explode…?

Konny

REgVar.PNG

Du gar nicht, das macht dann die FB. :wink:

Registervariable mit Clientsocket verbinden und dein Auswertscript der Registervariable zuweisen, der Rest geht dann von alleine wenn auf dem Port aktivität ist.

<?
// Daten aus Registervariable lesen
$daten = explode(";", $IPS_VALUE);
//Nebenstellennummer der Klingel(a/b)
$klingelNS = "0123456789"
// Datum/Uhrzeit anzeigen
define ("datetime", $daten[0]);

// Daten aus Registervariable auswerten
switch($daten[1])
{
    case "RING":
   $Rufnummer = $daten[3];
    if($Rufnummer==$klingelNS)
    {
    SetValueString(52776 /*[Test\TuerKlingel\Letzte Klingel]*/, Klingel);
    WFC_SwitchPage(50553 /*[WebFront Configurator]*/, "Cam");
    } 
   break;
   case "CALL":
   break;
   case "DISCONNECT":
   break;
}
// Daten aus Registervariable lesen 
$daten = explode(";", $IPS_VALUE); 

ansonsten zum testen.

//RegVar_SetBuffer(27536 /*[Fritzbox\Fritzport1012]*/, '20.11.09 12:16:23;RING;0;xxxxxxxx');
//$daten = explode(";", RegVar_GetBuffer(27536 /*[Fritzbox\Fritzport1012]*/));

wobei die 27536 die Registervariable ist!

Klar… hab nicht drangedacht, dass ich das nicht als Script ausführen kann…
Funktioniert…

Danke Konny

Morgen gibts noch Wünsche

Falls mir noch jemand zu den folgende Wünschen helfen kann:

a) Zustand des Webfronts vor Klingel herstellen?

b) Snapshot machen, Befehl senden: "http://KonnysCam/snapshot.cgi?user=1&pwd=1&next_url=123

c) Snapshot bereitstellen, als aktuellstes Bild (liegt auf der Fritzbox unter schlecht benannten JPG. (z.B 00606E90785D(KonnysCam)_2_20111030085041_17.jpg)

Gruß Konny

a) Du kannst nur zu einem Item im WFC zurück gehen.

b) mit file[i]_get_contents("http…

c) über ftp auf den Stick und das Bild holen.
[/i]

b) hab ich

file_get_contents("http://KonnysCam/snapshot.cgi?user=1&pwd=1&next_url=snapshot.jpg")

c) Image Grabber geht nur auf http,
ich brauche aber ftp ohne PW
„\192.168.5.1\fritz.nas\SAMSUNG-HM500JI-02\Klingel\snapshot.jpg“

und dann in /media kopieren?

Warum holst Du das Bild nicht direkt mit dem Imagegrabber von der Cam. Dann kannst Du dir den ganzen anderen Kram sparen.

FTP ohne PW ist anonymous.

Stimmt…aber da kenn ich mich zuwenig aus, bzw bekomme das nicht hin…

der Stream und der Snapshot sind cgi

ich versuchs nochmals. …beim stream geht die Konsole in die Knie…

mit dem snapshot klappt’s…
Danke

Ich kenn deine Cam nicht, aber im Forum gibt es genügend Lesestoff dazu.

Du kannst auch mal direkt auf deine Cam gehen und einen Snapschuss machen, dort sieht Du dann die URL. Diese trägst Du in den Grabber ein, fertig. :wink: