ISDN Modul verwenden

Also wenn gar nichts kommt, scheint das ja eher so zu sein, als dass die Konfig vom Modul selbst nicht ganz stimmt. Hast Du denn eine MSN eingetragen? Funktioniert die ISDN-Karte ansonsten in deinem System (Fritz-Software etc?)?

Guten Morgen,

wenn ich mit ner anderen CAPI-Anwendung teste, bekommt diese den Anruf ohne Rufnummer mit.

Im ISDN Modul habe ich eine MSN eingetragen, weil ich noch eine andere Anwendung auf dem Rechner laufen habe, die eine andere Rufnummer benutzt.

Die Callinfo ist auch leer, wenn ich nicht nur nach dem INCOMING Event gucke.

Ist irgendwie komisch.

LG

Daniel

Hi,

welches ISDN-Gerät benutzt DU denn? Ich habe hier die alse PCI-Fritz-Card. Damit bekomme ich auch die Anrufe mit unterdrückter Rufnummer gemeldet.

Ich wünsche einen schönen Tag.

Christoph.

Hallo miteinander,
bin seit vorgestern stolzer Besitzer einer IPS-Lizenz, habe bereits einen Teil meiner Hausinstallation via Webfront visualisiert (klasse einfach!) und habe jetzt mal das Skript ausprobiert.
Ich will bei einem eingehenden Anruf das Dielenlicht (dort steht i. d. R. das Telefon) einschalten und bei disconnect wieder in den vorherigen Zustand schalten.
Mein Problem ist nun, daß das disconnect gar nicht ausgewertet wird, weil das Skript nach dem ersten case (connect) ja gleich zu Ende ist.
Das disconnect kommt also gar nicht im Skript an.
Welchem Denkfehler sitze ich auf?
Grüsse
lotharbrandner

Normal wird beim Disconnect ein weiteres Event ausgelöst und daher sollte auch der Case möglich sein :wink:
Allerdings scheint bei einigen Leuten das Event nicht zu funktionieren (mich eingeschlossen).

Gruß
Jens

Ist bekannt, ob es evtl. an der CAPI der TK-Anlage liegt?
Ich habe eine detewe opencom36LAN

Hallo,

Was ist denn der aktuelle Status des V2 ISDN_Moduls? Ich möchte gerne das Thema wieder aufgreifen.

Ich bin seit ein paar Tagen endlich beim V1-V2 migrieren und das ISDN Modul ist bei mir eine zentrale Komponente (Alarm, Anrufbeantworter, Call-logging, IPS Kontrolle…). Leider kann ich damit bis jetzt nicht direkt machen, was mit der V1 funktionierte. Handelt es sich bei dem Connect/Disconnect event Problem um ein noch nicht implementiertes Feature oder haben da nur manche einen Bug? Bei mir bekomme ich ein Connect und Disconnect Event nur wenn IPS selbst den Anruf initiiert. Bei einem eingehenden Anruf kommt nur ein Incoming Event und danach nichts mehr. Ich brauche aber ein Connect Event wenn ich abhebe, um z.B. die Anzeige des Anrufers auf meinen Web-interface zu beenden, es im Log richtig zu speichern oder den Anrufbeantworter zu stoppen.

In der V1 konnte auch angegeben werden, ob nach einer bestimmten dauer automatisch abgehoben werden soll. Gibt es in der V2 nicht. Habe ich da etwas übersehen? Gibt es eine ähnliche Funktion? Das kann zwar wohl auch durch einen selbst angelegten Timer gemacht werden aber ich möchte mich zuerst vergewissern, dass ich nichts übersehen habe bevor ich gleich losprogrammiere.

Gruß,

Zapp

Dem kann ich mich nur anschließen. Habe eine FritzBox Fon WLAN 7170 und auch das Problem, dass nur das Incoming-Event geworfen wird und nichts weiter. Wäre echt super, wenn sich ein Entwickler dazu äußern könnte!

Grüße
Remington

Hallo Zusammen,

gibt es zu dem Thema (evtl. woanders) was Neues? Ich fände es schade, wenn all dies tollen Möglichkeiten um das ISDN-Modul nicht genutzt werden könnten.

Grüße
Matthias

Hallo,

Also ich muss zugeben, dass ich etwas enttäuscht bin. Nach 2 Monaten „IPS-Abstinenz“ wegen Server Crash, hatte ich gehofft, dass im Besten Fall das ISDN Modul in V2 in der Zwischenzeit die Möglichkeiten der V1 erlaubt oder ich wenigstens hier eine Antwort lesen kann. Ich kann ja verstehen, dass die Entwicklung dieses fantastischen Tools viel Arbeit braucht und bin auch bereit zu warten, aber bitte gebt uns wenigstens eine Antwort über den Status.

Wenn ISDN nicht mehr unterstützt wird, sagt bitte bescheid damit ich mein IPS-System anpasse. Ich zahle hier in Belgien für eine ISDN Anlage monatlich recht viel Geld und die war nur für IPS gedacht. Ohne den komplett funktionierenden ISDN Modul Funktionalitäten ist das ganze ISDN für mich unnötig.

Gruß,

Zapp

Ich habe heute mein komplettes ISDN Test-Case aufgebaut und alle gemeldeten Bugs überprüft:

-Kein Incoming Event, wenn keine Rufnummer angegeben wurde
-Kein Connect/Disconnect Event

Tracking:

Ich kann leider keinen der beiden Fehler hier nachstellen. Mein Aufbau ist:

-Fritz!Card USB unter Windows 7 x64
-Die Box hängt an einer TK Anlage

Könnt ihr vielleicht ein wenig mehr zu eurem Aufbau etwas sagen? Seht ihr Meldungen im Debug, wenn das Incoming Event kommen sollt?

paresy

Also ich habe das Ganze über ne Fritzbox (7170) realisiert und keine interne Karte benutzt. Nachdem das nicht funktioniert hat, bin ich wieder auf die ursprüngliche Methode zurück gegangen … damit gibts keine Probleme. Also alle Ereignisse werden einwandfrei erkannt.

Ob Meldungen im Debug zu sehen waren weiß ich leider nicht mehr.

Gruß
Jens

Der eigentliche Bug tritt bei der Erzeugung der Instanz auf.
Sobald einmalig eine MSN für Rufannahme eingegeben wurde, werden auch Anrufe ohne übermittelte Nummer angenommen. Vorher nicht.

Auf diesen Umstand hatte ich bereits vor einigen Monaten hingewiesen…

Mittlerweile habe ich die ISDN Instance nicht mehr in der Anwendung.
War einfach zu instabil. Ist mittlerweile schon ne Zeit her. Vielleicht sollte ich das nochmal testen.
Ich verwende Windows XP mit einem FritzBlue Bluetooth Dongle gegen den entsprechenden Fritz ISDN Adapter.

Ich habe mal ein Skript zusammengeschmissen, das eine Nummer wählt, wartet, bis die Verbindung steht, einen Text spricht und dann wieder auflegt und aufräumt:


$rufnummer = "123456";
$isdn = 23456 /*[ISDN Module]*/ ;
$tts= 34567 /*[Text To Speech DE Steffi]*/;
$dir=IPS_GetKernelDir();
$file = $dir."temp.WAV";

TTS_GenerateFile($tts, "Hallo, das ist ein Test. Ende der Durchsage.", $file, 6); // 6 ist die richtige Sprachqualität für TTS+ISDN
$conn = ISDN_Connect($isdn, $rufnummer);
do {
	IPS_Sleep(500);
	$callinfo = ISDN_GetConnectionInfo($isdn, $conn);
} while ( $callinfo["State"] != "4") ; // warten, bis abgenommen wurde
$len = ISDN_PlayWave($isdn, $conn, $file); // Spieldauer in ms
IPS_Sleep($len+500); // warten bis abgespielt
ISDN_StopPlay($isdn, $conn);
ISDN_Disconnect($isdn, $conn);
unlink($file); // Datei löschen

Offensichtlich zeigt State den Verbindungsstatus an. Leider habe ich nur empirische Werte, da eine Webrecherche nichts gebracht hat. Wer möchte ergänzen?

[ol]
[li]Rufaufbau?
[/li][li]unbekannt
[/li][li]unbekannt
[/li][li]Verbunden
[/li][/ol]

Ich hoffe, das hilft jemandem.

Hallo paresy,

Schön, dass du das Thema wieder aufgreifen konntest. Ich habe ebenfalls eine Fritz!Card USB unter Vista.

Connect kommt richtig an, Disconnect aber nur wenn IPS den Anruf selbst iniziert hat. Bei einem einkommenden Anruf kommt auch Connect aber beim Auflegen kein Disconnect. Im Debug wird da auch nur das Connect angeizeigt und nichts beim Disconnect.

Gruss,

Zapp


20/11/2009 00:10:24.491 | 57480 | DEBUG   | ExecuteThreadID #5   | Executing Script: 57480.ips.php ~ Sender: ISDN Connection 1, Event: Incoming
...
20/11/2009 00:10:24.758 | 57480 | MESSAGE | ExecuteThreadID #5   | [Telephone\ISDN_V2] = Array
(
    [0] => 1
)
Array
(
    [CalledNumber] => 23XXXXXXX
    [CallingNumber] => 324XXXXXXX
    [CIPValue] => 1
    [State] => 1
)
sql query: SELECT * FROM list WHERE Number LIKE '%324XXXXXXX'
entries found in book: 1
Name: XXXXXX (Mobile)
20/11/2009 00:10:24.758 | 57480 | DEBUG   | ExecuteThreadID #5   | Executed, Result: 1, Successful: True, Time: 267 ms
...
[b]Und hier geht es ohne Disconnect weiter obwohl schon aufgelegt wurde...[/b]

Hallo,
ich kämpfe auch mit dem ISDN Modul, weil es sich immer wieder "aufhängt.
Habe mal einen keep-alive-call alle paar minuten gemacht und folgendes festgestellt:

connection id ist 1, beim nächsten call auch wieder 1 (ok, sauber disconnected)

plötzlich zählt die connection id bei jedem call hoch, die zuletzt benutzen werden als active connections angezeigt mit state=0,
irgdenwie bleiben die „aktiv“…dann hängt sich das Modul komplett auf und nichts geht mehr…

kann ich das irgendwie umgehen (nochmals disconnecten ? die aktiven irgendwie löschen ?)

client socket geht, aber da kann ich ja keine individuellen über (ISDN )Ansagen machen.
nur events triggern…

bin dankbar für jeden tipp.

Gerhard

Konf: IPS 2.1 Fritzbox 7270 Windows 7 - Touchscreen - nur homematik

Ich wollte gerne mehr Infos zu ausgehenden Rufen haben/auswerten, finde aber nichts rechtes zum Thema. Am ehesten passen wohl noch die folgenden Seiten zum Thema CAPI:

[ul]
[li]Einführung in die CAPI-Programmierung
[/li][li]Nachrichtenaustausch zwischen CAPI und Anwendung
[/li][li]CAPI 2.0 - Part I
[/li][/ul]

Das sagt mir in Bezug auf die von IPS bereitgestellten Funktionen trotzdem nicht, wie ich herausfinden kann:

[ul]
[li]Ob überhaupt eine ausgehende Leitung frei ist/ein Freizeichen ertönt?
[/li][li]Ob ein Besetztzeichen ertönt?
[/li][li]Ob ein Klingelzeichen ertönt?
[/li][/ul]

Wisst Ihr’s?

Danke,
moishe

Vielleicht hilft das bei der Fehlereingrenzung (Ergänzung zu meinem Beitrag gestern IDN-keep alive- Versuch

es folgt: a) Code, b) Programm ausgabe, debug fenster ISDN Modul…wenn ok
und c) programmausgabe und debug beim „aufhängen“…(Des Moduls, nicht des Telefons :slight_smile:

//** status isdn modul

//*******************************************
print ("
 ISDN keep alive gestartet
");
print ("status ISDN Modul
");
  $status_isdn=IPS_GetInstance ($isdn_id);
  print_r ($status_isdn);

//*******************************************
print ("connect Versuch folgt
");
  setvaluestring(41849 /*[Variablen\aktuellerAnruferName]*/ ,"IPS");
  $id=ISDN_Connect($isdn_id, "0800xx echte Nr xxxxx");
  print ("***connect id = $id 
");
  // test if ($id>2)
  //  {
  //  //ISDN Modul zu viele aktive Verbindungen  - Fehler
  //  $isdn_id=reset_isdn($isdn_id);
  //  }
//*******************************************
print ("Abfrage aktive Verbindungen
");
   $connections=ISDN_GetActiveConnections($isdn_id);
   print_r($connections);
   foreach ($connections as $con)
     {
     $callinfo = ISDN_GetConnectionInfo($isdn_id, $con);
     print ("Info über Verbindung Nr: $con 
");
	  print_r ($callinfo);
    }
//*******************************************
// klingelt 7 Sek
sleep(7);
print ("disconnect folgt
");
$klappt=ISDN_DISCONNECT($isdn_id,$id);
print ("Returncode disconnect : $klappt 
");

//*******************************************
print ("erneute Abfrage aktive Verbindungen direkt nach disconnect 
");
$connections=ISDN_GetActiveConnections($isdn_id);
print_r($connections);
foreach ($connections as $con)
{
 $callinfo = ISDN_GetConnectionInfo($isdn_id, $con);
 print ("Verbindung Nr $con");
 print_r ($callinfo);
}

//*******************************************
sleep(7);
print ("erneute Abfrage aktive Verbindungen  7 Sekunden nach disconnect 
");
print_r(ISDN_GetActiveConnections($isdn_id));

$connections=ISDN_GetActiveConnections($isdn_id);
foreach ($connections as $con)
{
 print ("Verbindung Nr $con");
 $callinfo = ISDN_GetConnectionInfo($isdn_id, $con);
 print_r ($callinfo);
}

.


Programm gibt aus (alles ok bis jetzt)
ISDN keep alive gestartet
status ISDN Modul
Array
(
[ChildrenIDs] => Array
(
)

[InstanceID] => 23724
[InstanceStatus] => 102
[LastChange] => 0
[ModuleInfo] => Array
    (
        [ModuleID] => {D738E8CC-F524-454A-BB69-93E5BE416E87}
        [ModuleName] => ISDN Module
        [ModuleType] => 3
    )

[NeedParent] => 
[ParentID] => 0

)
connect Versuch folgt
***connect id = 1
Abfrage aktive Verbindungen
Array
(
[0] => 1
)
Info über Verbindung Nr: 1
Array
(
[CalledNumber] => 08001507090
[CallingNumber] => 697010
[CIPValue] => 16
[State] => 0
)
disconnect folgt
Returncode disconnect : 1
erneute Abfrage aktive Verbindungen direkt nach disconnect
Array
(
[0] => 1
)
Verbindung Nr 1Array
(
[CalledNumber] => 08001507090
[CallingNumber] => 697010
[CIPValue] => 16
[State] => 1
)
erneute Abfrage aktive Verbindungen 7 Sekunden nach disconnect
Array
(
)

************************debug (gekürzt, / ca 20-30 calls lang ok // ---- dann läuft der connection zaehler hoch und es geht kein anruf mehr raus (siehe Ende debug teil

11/24/2009 10:08:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:08:00.00 | << CONNECT_CONF (641) |
11/24/2009 10:08:04.00 | << CONNECT_ACTIVE_IND (898) |
11/24/2009 10:08:04.00 | >> CONNECT_ACTIVE_RESP (899) |
11/24/2009 10:08:04.00 | >> CONNECT_B3_REQ (33408) |
11/24/2009 10:08:04.00 | << CONNECT_B3_CONF (33409) |
11/24/2009 10:08:04.00 | << CONNECT_B3_ACTIVE_IND (33666) |
11/24/2009 10:08:04.00 | >> FACILITY_REQ (32896) |
11/24/2009 10:08:04.00 | >> CONNECT_B3_ACTIVE_RESP (33667) |
11/24/2009 10:08:07.00 | >> DISCONNECT_B3_REQ (33920) |
11/24/2009 10:08:07.00 | ??OK |
11/24/2009 10:08:07.00 | Disconnected 1 |
11/24/2009 10:08:07.00 | << DISCONNECT_B3_CONF (33921) |
11/24/2009 10:08:07.00 | << DISCONNECT_B3_IND (33922) |
11/24/2009 10:08:07.00 | >> DISCONNECT_B3_RESP (33923) |
11/24/2009 10:08:07.00 | >> DISCONNECT_REQ (1152) |
11/24/2009 10:08:07.00 | << DISCONNECT_CONF (1153) |
11/24/2009 10:08:07.00 | << DISCONNECT_IND (1154) |
11/24/2009 10:08:07.00 | >> DISCONNECT_RESP (1155) |
11/24/2009 10:09:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:09:00.00 | << CONNECT_CONF (641) |
11/24/2009 10:09:04.00 | << CONNECT_ACTIVE_IND (898) |
11/24/2009 10:09:04.00 | >> CONNECT_ACTIVE_RESP (899) |
11/24/2009 10:09:04.00 | >> CONNECT_B3_REQ (33408) |
11/24/2009 10:09:04.00 | << CONNECT_B3_CONF (33409) |
11/24/2009 10:09:04.00 | << CONNECT_B3_ACTIVE_IND (33666) |
11/24/2009 10:09:04.00 | >> FACILITY_REQ (32896) |
11/24/2009 10:09:04.00 | >> CONNECT_B3_ACTIVE_RESP (33667) |
11/24/2009 10:09:07.00 | >> DISCONNECT_B3_REQ (33920) |
11/24/2009 10:09:07.00 | ??OK |
11/24/2009 10:09:07.00 | Disconnected 1 |
11/24/2009 10:09:07.00 | << DISCONNECT_B3_CONF (33921) |
11/24/2009 10:09:07.00 | << DISCONNECT_B3_IND (33922) |
11/24/2009 10:09:07.00 | >> DISCONNECT_B3_RESP (33923) |
11/24/2009 10:09:07.00 | >> DISCONNECT_REQ (1152) |
11/24/2009 10:09:07.00 | << DISCONNECT_CONF (1153) |
11/24/2009 10:09:07.00 | << DISCONNECT_IND (1154) |
11/24/2009 10:09:07.00 | >> DISCONNECT_RESP (1155) |
11/24/2009 10:10:01.00 | >> CONNECT_REQ (640) |
11/24/2009 10:10:08.00 | Disconnected 1 |
11/24/2009 10:11:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:11:07.00 | Disconnected 2 |
11/24/2009 10:12:01.00 | >> CONNECT_REQ (640) |
11/24/2009 10:12:08.00 | Disconnected 3 |
11/24/2009 10:13:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:13:07.00 | Disconnected 4 |
11/24/2009 10:14:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:14:07.00 | Disconnected 5 |
11/24/2009 10:15:02.00 | >> CONNECT_REQ (640) |
11/24/2009 10:15:09.00 | Disconnected 6 |
11/24/2009 10:16:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:16:07.00 | Disconnected 7 |
11/24/2009 10:17:01.00 | >> CONNECT_REQ (640) |
11/24/2009 10:17:08.00 | Disconnected 8 |
11/24/2009 10:18:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:18:07.00 | Disconnected 9 |
11/24/2009 10:19:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:19:07.00 | Disconnected 10 |
11/24/2009 10:20:01.00 | >> CONNECT_REQ (640) |
11/24/2009 10:20:08.00 | Disconnected 11 |
11/24/2009 10:21:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:21:07.00 | Disconnected 12 |
11/24/2009 10:22:01.00 | >> CONNECT_REQ (640) |
11/24/2009 10:22:08.00 | Disconnected 13 |
11/24/2009 10:23:00.00 | >> CONNECT_REQ (640) |
11/24/2009 10:23:07.00 | Disconnected 14 |

Hallo ,

sorry, das ich diesen alten Thread nochmal hoch hole.
Ich habe mit den Beispielen ein Problem. Ich bekomme im Log immer eine Fehlermeldung, wenn das temporäre .wav File verwendet werden soll.

„Could not read File: media emp.wav“

So shiet ein Auszug aus dem Code aus:

        $file = "C:/ip-symcon/media/temp.wav";
		  $text = "Vielen Dank für Ihren Anfruf";
	     TTS_GenerateFile(27353 /*[Scripts\TTS\Text To Speech]*/, $text, $file, 6);
		  $len = ISDN_PlayWave(15058 /*[Scripts\ISDN\ISDN Module]*/, $ISDN_CONNECTION, $file);
        IPS_Sleep($len + $delay);

Im Objektbaum unter MediaDateien ist die temp.wav aber vorhanden.

Hat jemand dazu eine Idee?
Ausserdem ist teilweise das erste Wort der jeweiligen Ansage abgeschnitten. Woran könnte das liegen?

Gruß
Christian