Fritzbox an ips macht probleme mit dem Com port

ich habe es nicht reingestellt, weil es nicht von mir ist damit keiner angepisst ist. da das andere ja auch machen und jetzt sowieso einer angepisst ist, kann ich es auch einfach reinstellen :stuck_out_tongue:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : fritzbox.ips.php
Trigger  :
Interval :
*/
function say($text)
{
   IPS_Execute("C:/Programme/IP-SYMCON/doVoice.exe", $text,false,false);
}


$anrufer1 = GetValueString("anrufer1");
$anrufer1date = GetValueString("anrufer1date");
$anrufer2 = GetValueString("anrufer2");
$anrufer2date = GetValueString("anrufer2date");
$anrufer3 = GetValueString("anrufer3");
$anrufer3date = GetValueString("anrufer3date");
$anrufer4 = GetValueString("anrufer4");
$anrufer4date = GetValueString("anrufer4date");
$anrufer5 = GetValueString("anrufer5");
$anrufer5date = GetValueString("anrufer5date");

$anrufer5 = $anrufer4;
$anrufer5date = $anrufer4date;
$anrufer4 = $anrufer3;
$anrufer4date = $anrufer3date;
$anrufer3 = $anrufer2;
$anrufer3date = $anrufer2date;
$anrufer2 = $anrufer1;
$anrufer2date = $anrufer1date;

$Vorwahl = "05151";
$buffer = GetValueString("Fritzbox");
//$buffer = "03.01.07 16:41:23;RING;2;05151654789;05151290300;SIP1;";
//$buffer = "07.01.07 13:07:00;RING;2;;454456;ISDN;";
$feld = explode(';',$buffer);

/*
echo $feld[0];    // Uhrzeit
echo  '<br>';
echo $feld[1];    // aktion
echo  '<br>';
echo $feld[2];    // ??
echo  '<br>';
echo $feld[3];    // Anrufer
echo  '<br>';
echo $feld[4];    // Angerufene Nummer
echo  '<br>';
echo $feld[5];    // Frizbox Port
*/

if ( $feld[1] == "RING" ) {
   if ( substr( $feld[3], 0, 1 ) == '0' ) {
      $NUMMER =$feld[3];
   }
   else {
      $NUMMER =$Vorwahl.$feld[3];
   }

   if ( $feld[3] == "" ) {
      $Anrufer_Name ="unbekannt";
   }
   else {
     //$url="http://www.11880.com/Suche/index.cfm?fuseaction=Suche.rueckwaertssucheresult&init=true&change=false&searchform=Rueckwaerts&tel=".$NUMMER;
      $url="http://www1.dasoertliche.de/?form_name=search_inv&ph=$".$NUMMER;
      WWWReader_SetPage(26517,$url);
      WWWReader_UpdatePage(26517);
      $Anrufer_Name = (GetValueString("Anrufer_Name"));

      if ( $Anrufer_Name == "No valid Rules defined! Please check your Tags!" ) {
         $array = array('0' => '0 ', '1' => '1 ', '2' => '2 ', '3' => '3 ', '4' => '4 ', '5' => '5 ', '6' => '6 ', '7' => '7 ', '8' => '8 ', '9' => '9 ');
         $TTS_Name = strtr($NUMMER, $array);
         $Anrufer_Name = $NUMMER;
      }
      else {
         $TTS_Name = $Anrufer_Name;
      }

    if ( $feld[4] == "05151290300") {

       //$feld[4]="05151184433"; // nur zum Test ...

         $handle = fopen("c:\\fritzbox-namen.txt", "r");

         while ($array = fgetcsv($handle, 1024, ";")){
         if ($array[1]==$Anrufer_Name) $TTS_Name = $array[0];
         //echo $array[0];
         //echo $array[1];
         /* eben so viele array-Elemente, wie in einer Zeile gespeichert sind */
         }

         echo $TTS_Name;


           say("Anrufer ist ".$TTS_Name);
           //TTS_Speak(30379, "Anrufer ist ".$TTS_Name);
           $today = date("G:i - d.m.");

           SetValueString("anrufer1", $TTS_Name );
           SetValueString("anrufer1date", $today );

           SetValueString("anrufer2", $anrufer2 );
           SetValueString("anrufer2date", $anrufer2date );
           SetValueString("anrufer3", $anrufer3 );
           SetValueString("anrufer3date", $anrufer3date );
           SetValueString("anrufer4", $anrufer4 );
           SetValueString("anrufer4date", $anrufer4date );
           SetValueString("anrufer5", $anrufer5 );
           SetValueString("anrufer5date", $anrufer5date );

   }
}
}

?>

… zurück zum thema: hast du den www reader und den texparser passend eingerichtet ?

wwwreader geht auf :

dahinter geschaltet der text parser mit:

„get text between“
tag one: „Details zu diesem Eintrag anzeigen“ class=„entry“>
tag two: </a>

happy day, frank

Hallo Frank,

deine Reaktion kann ich jetzt leider nicht verstehen, aber egal, macht doch was ihr wollt.
Schön wäre es wenn Du deine Ausdrucksweise oben etwas korrigiren würdest.

In diesem Sinne.

hallo rainer !

nimm mal einfach nicht alles so ernst. ich will keinen ärgern, keinen beleidigen oder mit falscher ausdrucksweise reizen. ich will auch keinen ärgern, weil ich scripte veröffentliche, die nicht von mir sind. und ich möchte gerne mit meinem halbwissen den leuten helfen, denen ich helfen kann. sind eh nur wenige die weniger wissen, als ich :slight_smile:

und wenn ich dich damit gestört habe von einem script zu reden, was nicht öffentlich ist, tuts mir auch leid. aber leider hab ich nicht die chance es allen auf der welt recht zu machen :rolleyes:

happy day, frank

Hallo Frank,
vielen Dank für Deine Hilfe.
Habe alles so eingerichtet im wwwreader und im text parser.
Als Meldung in der Variablen kommt aber

"No valid Rules defined! Please check your Tags!

Das bedeutet doch das im text parser was nicht stimmt oder ?

cu uwe

dann steh ich gerade auch ein wenig auf dem schlauch. die meldung bedeutet, dass die regel im text parser irgendwie nicht passt. hast du im script auch alle instanz nummern an deine angepasst und den wwwreader mit dem text parser verbunden?

happy day, frank

Hallo Frank,

hab das gleich Problem wie Uwe.
Ich vermute, das es mit der Ausgabe von der Disconnect-Zeile zusammenhängt.
Wie kommt man denn an die richtige Zeile mit dem RING oder CALL heran. Habe dein Script und alle anderen Sachen wie beschrieben eingerichtet, bekomme aber ständig das Disconnect ausgegeben.

Gruss René

hallo !

leider bin ich ja auch nicht wirklich der script schreiber und habe auch so direkt keine idee, was da nicht klappt.

kommt denn in der ips-variablen was an, wenn ein anruf eingeht ?

happy day, frank

Hier mal das Script welches ich verwende. Ich arbeite mit WinAmp und durch das Script wird bei einem Anruf die Musik aus geschaltet und ein Klingeln wird über WinAmp abgespielt. Beim „RING“ lasse ich mit im Designer den Anrufer wiedergeben und beim „CONNECT“ wird dieses Klingeln dann abgeschaltet. Beim „DISCONNECT“ wird die Musik wieder eingeschaltet(Dies klappt momentan nur beim Streaming).Da ich nicht der einzige Teilnehmer bin der am ISDN der Fritzbox hängt lasse ich zusätzlich vergleichen ob der Anruf an meine Nummer geht bevor WinAmp was macht.

Bin nicht wirklich der große PHP Spezialist und daher ist es möglich das auch Fehler im Script oder Sachen auch doppelt gemoppelt sind. Man möge es mir bitte nachsehen.
Als Vorlage für mein Script hat dieses hier gedient
Fritzbox auslesen und auswerten
Vielleicht kann das weiterhelfen…
Wäre auch über jede Verbesserung des Scriptes dankbar.

Grüße Thomas

<?

 //Start writing your scripts between the brackets

/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Fritzbox.ips.php
Trigger  : OnUpdate
Interval : Fritzbox
*/

$Fritzbox = GetValueString(32949 /*[Fritzbox\Fritzbox]*/);
$daten    = explode(";", $Fritzbox);
$WinampPL = GetValueString(52838 /*[Winamp Control\TrackFilename]*/);
$Winampvolume = GetValueInteger(16069 /*[Winamp Control\Volume]*/);

// Kleine interne Datenbank, erweiterbar.

  $array["Nummer"][1] = "XXXX";
  $array["Name"]  [1] = "Thomas Arbeit";
  $array["Nummer"][2] = "XXXX";
  $array["Name"]  [2] = "Thomas";
  $array["Nummer"][3] = "XXXX";
  $array["Name"]  [3] = "Nati";
  $array["Nummer"][4] = "XXXX";
  $array["Name"]  [4] = "Kaiser";
  $array["Nummer"][5] = "XXXX";
  $array["Name"]  [5] = "Hartmut ;
// Daten einlesen und auswerten
switch($daten[1])
{
  case "RING":
$anrufkommend = ($daten[1]);
	$Rufnummer = ($daten[3]);
   $home = ($daten[4]);
   $homeist = ("3099450");
   SetValueString(21557 /*[Winamp Control\TitelfürFritz]*/, $WinampPL);
   SetValueInteger(36483 /*[Winamp Control\lautstaerke]*/, $Winampvolume);
       if(in_array($Rufnummer, $array["Nummer"]))
		 if($home == $homeist)/*da mehrere Teilnehmer Vergleich ob meine Nummer angewählt wurde*/

      { $Nummer = array_search($Rufnummer, $array["Nummer"]);
       SetValueString(50344 /*[Fritzbox\Anrufer]*/, $array["Name"][$Nummer]);
       SetValueString(17743 /*[Fritzbox\Nummer]*/, $Rufnummer);
       SetValueString(35386 /*[Fritzbox\Ziel]*/, $daten[4]);
$id=28354 /*[Winamp Control]*/; //WinAmpControlID
$url = "C:/Dokumente und Einstellungen/XXX/Eigene Dateien/Netzdateien/OldPhonev441316.mid";
WAC_Stop($id);
WAC_ClearPlaylist($id);
WAC_SetVolume(28354 /*[Winamp Control]*/, 15);
WAC_PlayFile($id, $url);}

}


switch($daten[1])
{
  case "CONNECT":
$angenommen = ($daten[1]);
$home = ($daten[4]);
$homeist = ("3099450");

    if($home == $homeist) {
WAC_Stop(28354 /*[Winamp Control]*/);
WAC_ClearPlaylist(28354 /*[Winamp Control]*/);}

}



switch($daten[1])
{
  case "DISCONNECT":
$aufgelegt = ($daten[1]);
$home = GetValueString(35386 /*[Fritzbox\Ziel]*/);
   $homeist = ("3099450");


	  SetValueString(50344 /*[Fritzbox\Anrufer]*/ , "");
	  SetValueString(17743 /*[Fritzbox\Nummer]*/, "");
	  $file = GetValueString(21557 /*[Winamp Control\TitelfürFritz]*/);
	  $vol =  GetValueInteger(36483 /*[Winamp Control\lautstaerke]*/);


if($home == $homeist)
	  {
WAC_Stop(28354 /*[Winamp Control]*/);
WAC_ClearPlaylist(28354 /*[Winamp Control]*/);
WAC_AddFile(28354 /*[Winamp Control]*/, $file);
WAC_SetVolume(28354 /*[Winamp Control]*/, $vol);
WAC_Play(28354 /*[Winamp Control]*/);
SetValueString(35386 /*[Fritzbox\Ziel]*/, "");}

}

?>

Hallo,
@Frank, ja in der Variablen kommt etwas an. Wenn ich als Buffer deine Daten nehme , wird als Anrufer auch nichts eingetragen.

@Thomas
Danke für das Script, werd ich mal versuchen.

Ein schönes Rest-Wochenende an alle

Gruss René