ich habe hier eine FritzBox 7170 (Firmware: 29.04.80) im Einsatz und schon seit längerem so eingebunden, dass mir eingehende Anrufe per TTS angesagt werden. Soweit so gut. Die ISDN ControllerID ist 1.
Im Script reagiere ich hiermit auf einen eingehenden Anruf.
switch($ISDN_EVENT)
{
case "Incoming":
Jetzt wollte ich die LED Leiste bei eingehendem Anruf blinken sollen bis der Anruf angenommen ist (CONNECT).
Da habe ich das Problem, dass das Script nicht auf CONNECT und/oder DISCONNECT reagiert.
Im Debug-Fenster steht nur eine „DISCONNECT_IND (1154)“ Meldung sobald ich den Anruf ANNEHME. Beim Auflegen erscheint gar kein Eintrag.
Hat noch jemand das Problem das keine Info über Anrufannahme und Auflegen via FritzBox reinkommt und im besten Fall sogar eine Idee was ich probieren könnte (andere Controllers haben nichts gebracht).
Moin Thorsten,
da sagt Dein Screenshot aber was anderes oder irre ich mich jetzt total?!
Da steht doch ein CONNECT (Zeit 08:53:27) und ein DISCONNECT (Zeit 08:53:35)!
Stimmt, da habe ich mich etwas unglücklich ausgedrückt.
Das CONNECT kommt sobald es anfängt zu klingeln (da bin ich noch nicht ans Telefon gegangen).
Sobald ich den Anruf am klingelnden Telefon annehme, erscheint die DISCONNECT Meldung.
Danach passiert nichts mehr. Ein Gesprächsende fügt also im Debug-Fenster keine weitere Meldung hinzu.
So ganz verstehe ich dein Problem nicht. Warum reagierst Du nicht auf das was ankommt. Wenn ich dich richtig verstanden habe, ist doch alles da was Du für dein Vorhaben benötigst.
Ich habe den „Debugger“ Knopf meiner ISDN Kern Instanz benutzt.
Vielleicht sollte ich im Script mal den Inhalt der Variable ISDN_EVENT ausgeben lassen und schauen was da jeweils drin steht.
Ich werde das mal versuchen. Vielleicht bringt mich das ein Stück weiter :o.
Momentan bin ich nicht in der Lage innerhalb eines PHP Scriptes zu erkennen, wenn …
a) der Anruf wirklich entgegen genommen wird und
b) der Anruf beendet ist
Im Script (Ereignisscript des ISDN Modul) greife ich folgendermaßen zu
if($IPS_SENDER == "ISDN")
{
// Testweise zwei Variablen protokollieren
SetValue(21261 /*[To Do - Bastelecke für alles was irgendwie nicht fertig ist\ISDNVar]*/,$ISDN_EVENT);
SetValue(39109 /*[To Do - Bastelecke für alles was irgendwie nicht fertig ist\ISDNVar2]*/,$IPS_EVENT);
switch($ISDN_EVENT)
Sobald es klingelt steht in der Variablen „ISDN_EVENT“ „Incoming“ drin und das ändert sich nie, weder beim Annehmen, noch beim Auflegen.
Die Variable „IPS_EVENT“ bleibt die ganze Zeit ohne Inhalt.
Habe ich hier vielleicht irgendwie einen Denkfehler, wie ich auf das ISDN Modul zugreife?
Wenn ich das in mein Script reinkopiere und anrufe erscheint folgender Eintrag in der Registerkarte „Meldungen“ zum Zeitpunkt des Klingelns (nicht des Annehmens).
Wenn ich das Gespräch annehme oder auflege kommt keine weitere Info mehr.
Kann es sein, dass das Script welches ich unter Ereignisscript im ISDN Modul eingetragen habe, nur 1x aufgerufen wird (eben sobald der Anruf reinkommt) und bei späteren ISDN Ereignissen (wie Annahme, Auflegen) nicht mehr?
also ich habe eine ISDN Instanz in IPS angelegt und dort meine ISDN MSN und ein Script welches ausgeführt werden soll, sobald ein Ereignis auftritt eingetragen.
In diesem Script wird geprüft ob es von einem ISDN Ereignis aufgerufen wurde.
if($IPS_SENDER == "ISDN")
In der Doku habe ich leider keine vollständige Information zu den ISDN Befehlen gefunden (oder es gibt sie nicht).
Die Kommandos die ich verwende habe ich von Paresys Script.
In diesem Post (von o.g. Thread) habe ich die wohl funktionierenden Inhalte von „$ISDN_EVENT“ her. Aber leider funktioniert von denen bei mir nur „Incoming“.
Wäre interessant ob jemand mit einer FritzBox auch die anderen Informationen in Scripten benutzen kann.
Ich würde CapiOverTCP nicht nutzen, da IP-Symcon nicht mit etwaigen Verbindungsabbrüchen klar kommt. Wenn du demnächst also merkst, dass IPS 100% zieht und dein ISDN Modul nicht mehr läuft, dann gab es einen Lag im Netzwerk und die Verbindung ist abgebrochen.