VOIP Script Hilfe

Hallo wer kann helfen

Ich möchte mit dem VOIP Modul einen Türruf erstellen.

Das geht auch fast aaaaber:

Wenn ich das Script starte hört das Fritzfon nicht mehr auf zu klingeln: Also so:

Das Script Türruf starten dann klingelt es, hört kurz auf, dann klingelt es wieder das geht immer so weiter.

Wenn ich am Fritzfon auf ablenen oder annehmen drücke hörts auf dauerzuklingeln.

Danke im Voraus Egon

Bitte das Script hier mal ordentlich formatiert ablegen. Irgenwie ist nicht erkennlich, ob du zwei Skripte hast, oder eins, daher hier bitte mal sauber einbetten.

<?php
//################################################################

$VoIPID = 42162;
$FritzFon = "**610";
$WaitMs = 5000;

IPS_LogMessage('TuerRuf', '=== DEBUG START ===');
IPS_LogMessage('TuerRuf', 'VoIPID='. $VoIPID. ' Ziel='. $FritzFon. ' Wartezeit='. $WaitMs. 'ms');

if (!IPS_ObjectExists($VoIPID)) {
 IPS_LogMessage('TuerRuf', 'FEHLER: VoIP-Instanz existiert nicht');
 IPS_LogMessage('TuerRuf', '=== DEBUG ENDE ===');
 return;
}

IPS_LogMessage('TuerRuf', 'Rufe VoIP_Connect() auf');
$conn = @VoIP_Connect($VoIPID, $FritzFon);
IPS_LogMessage('TuerRuf', 'Rückgabe Connect: '. print_r($conn, true));

if (!$conn) {
 IPS_LogMessage('TuerRuf', 'FEHLER: Connect fehlgeschlagen');
 IPS_LogMessage('TuerRuf', '=== DEBUG ENDE ===');
 return;
}

IPS_LogMessage('TuerRuf', 'Connect OK, warte jetzt '. $WaitMs. ' ms');
IPS_Sleep($WaitMs);

IPS_LogMessage('TuerRuf', 'Rufe VoIP_Disconnect() auf, ConnectionID='. $conn);
@VoIP_Disconnect($VoIPID, $conn);
IPS_LogMessage('TuerRuf', 'Disconnect gesendet');

IPS_LogMessage('TuerRuf', '=== DEBUG ENDE ===');
?>

Hast Recht hab nicht mehr dran gedacht

Schönen Gruß

Egon

Schritt 1 könnte schonmal sein, die ganzen IPS_ Funktionen nicht mit @ aufzurufen. Vielleicht siehst du dann schon ein Fehler. Rufst du das Script aus dem Konsolen-Scripteditor aus? das ist bei Programmfehlern oft hilfreicher.

Danke

Aus dem Scripteditor . zuvor hatte ich das mit einem Taster gestartet. Aber zum testen ist das ohne Ereignis bessser.

Ich hatte am Anfang auch ein ziemlich einfaches Script dann kam durch KI Vorschläge immer mehr dazu zum Fehler finden.

Ich finde einfach nichts das das Script immer wieder laufen lässt oder warum ich das nicht nach den 10 sek automatisch stoppt

Schönen Gruß

Egon

Ich habe dein Skript bei mir laufen lassen. Ich habe nur $VoIPID und $FritzFon angepasst. Ausgeführt. Telefon klingelt 5 Sekunden und hört dann auf.

Funktioniert genau so, wie du es möchtest. Ich habe allerdings nicht mit einer FRITZ!box getestet, sondern mit einer Telefonanlage. Hilft dir also vermutlich nicht.

Das ist schlecht. Weil die der Rückgabewert sowohl int als auch false sein kann.
Und eine erfolgreiche Verbindung kann ja auch eine ConnectionId von 0 haben und dann bricht dein Script ab. Und die Voip Instanz legt nicht auf. → klingelt also immer wieder/weiter.

Besser auf === false prüfen.
Michael