möchte gern per Anruf im IPS verschiedene Dinge auslösen.
Habe dazu ersteinmal paresys Script genommen http://www.ip-symcon.de/forum/f18/isdn-modul-verwenden-5071/ und Steiners Script zum Anrufbeantworter.
Habe mir ein ISDN-Modul und ein TTS angelegt. Jeweils die Instanz-ID im Script angepasst. Im ISDN-Modul als Ereignisscript mein Script angegeben. Es wird jedoch nicht ein Ruf angenommen. Nach dem dem zweiten Ruf wird leider ausgelöst.
habe mir eine neue MSN eingerichtet. die ist noch für nichts vergeben, somit auch nicht im IPS. Zur Info: habe die capi over fritz! am laufen (FritzFax over LAN), also per LAN zur Fitzbox und dann als S0 weiter zu einer Nst. der Telefonanlage. Liegts daran? Gibts bei dieser Konstellation keine kommenden Gespräche?
Letztendlich möchte gern einen AutoAttendant (drücke die 0 für … , die 1 für usw) programmieren, mit dem ich einige Dinge im IPS auslesen und mir telefonisch ansagen lassen möchte. Einstiegs-Script hier:
<?
$allowed_numbers = Array(""); //leer = alle
if($IPS_SENDER == "ISDN")
{
//Informationen ins Meldungsfenster ausgeben
echo "Event: ".$ISDN_EVENT."
";
$callinfo = ISDN_GetConnectionInfo(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION);
//Mehr Informationen ausgeben
print_r($callinfo);
// Erstmal nicht weitermachen
exit;
if($ISDN_EVENT != "Disconnect")
{
$callinfo = ISDN_GetConnectionInfo(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION);
//Mehr Informationen ausgeben
print_r($callinfo);
}
//Je nach Ereigniss eine Aktion ausführen
switch($ISDN_EVENT)
{
case "Incoming":
//Anruf annehmen? (Entweder leeres Array oder Nummer ist enthalten)
if((sizeof($allowed_numbers) == 0)
or in_array($callinfo['CallingNumber'], $allowed_numbers))
{
ISDN_AcceptCall(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION); //Anruf annehmen
}
break;
case "Connect":
//Aktion nach dem Verbinden ausführen
$file = IPS_GetKernelDir()."temp.wav";
$text = "Press Zero for current Time";
TTS_GenerateFile(30424 /*[AB\Text To Speech]*/, $text, $file, 6);
ISDN_PlayWave(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION, $file);
break;
case "Disconnect":
//Aktion, wenn Anruf beendet wurde
//"ISDN_GetConnectionInfo" ist hier nicht mehr verfügbar!
break;
case "PlayFinish":
//Aktion, wenn Wav abgespielt wurde
break;
case "DTMF":
switch($ISDN_DATA)
{
//Aktion wenn 0 gedrückt wird
case "0":
$file = IPS_GetKernelDir()."temp.wav";
$text = "The Time is ".date("H:i");
TTS_GenerateFile(30424 /*[AB\Text To Speech]*/, $text, $file, 6);
ISDN_PlayWave(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION, $file);
break;
//Aktion wenn falsche Taste gedrückt wird
default:
ISDN_Disconnect(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION);
break;
}
break;
}
}
?>
danke für Deine schnelle Antwort. Da hatte ich auch schon probiert. Stelle aber gerade fest, daß ich mir auf den IPS-Rechner mit einer anderen MSN auch keine Faxe schicken lassen kann. Verschicken jedoch klappt wieder. Alles sehr merkwürdig.
Gibt es eine andere capi? Welche hast Du? Oder hast Du eine ISDN-Karte im/am Rechner?
Nutzt du VoIP über die Fritz!Box oder wirklich eine ISDN Anlage mit ISDN nach draußen?
Du musst auf jeden Fall die komplette MSN angeben. Es kann sein, dass die Anlage mehr als die „62“ rausgibt, falls du die Nummer nur intern verwendest.
Bei meiner 7270 musste ich ControllerID 5 nehmen und die Rufnummer mit dem „VoIP Kanal“ angeben. Den sieht du im Fritz!Box Monitor oder beim Telnet auf Port 1012 als „SIP5“, also z.B. 5#1234567 als „empfangende MSN“.
Du siehst die Kommunikation auch im Debug Fenster des ISDN Moduls.
@Renè: Mit den IDs habe ich auch schon experimentiert, werde aber nochmal mit anderen versuchen. Bei mir funktioniert gehend die 2. Kommend aber weder 1 noch2.
@Ralf: Meine Tk-Anlage ist amtseitig an einem Mehrgeräteschluss dran, an einer S0-Nebenstelle hängt die Fritzbox quasi als Unteranlage. In der FB habe die MSN 61-65 eingetragen und einigen Testteilnehmern zugeteilt. (61 Fritzfax, 63 Dect und 65 analoges Telefon. Die MSN 62 und 64 sind frei. Im FB-WBM seheich auch kommende Rufe von der Nst. aus der TK-Anlage auf die MSN der FB. Also rei kommt was. Vielleicht geht es von dort nicht weiter? Telnet (telnet fritz.box 1012) kann keine Verbindung herstellen; telnet fritz.box geht. Firewall ist aus.
NACHTRAG: siehe Anhang. 21 ist mein Prüftelefon in der TK-Anlage, 19 das Faxgerät. 61 die MSN für Fritzfax, 62 die MSN der FB. Sieht doch gut aus, oder?
Also das muss gehen, da ich „fast“ die selbe Konstellation habe.
Fritz!Box 7170 am ISDN S0 Bus und „CAPI over TCP“ aktiviert. Den CAPI Treiber auf dem IPS Server installiert und die entsprechende Instanz in IPS angelegt.
Anschließend auf Basis des Beispielscriptes ein Telefonmenü gemacht, was eingehende Anrufe auf einer bestimmten MSN annimmt.
Also glaube ich nicht, dass eine FritzCard besser klappt als mit der FritzBox.
Aber falls Du eine zu Hause rumliegen hast, dann schadet ein Versuch ja nicht - nur unbedingt eine neue kaufen würde ich mir überlegen.
Welche Einstellungen hast Du in der FB gesetzt? Ich habe die Tk-Anlage (spielt für die FB AMT) über Y-Kabel angeschlossen. Habe dann unter Telefonie -> Telefoniegeräte -> Festnetz das Festnetz aktiviert und unter Rufnummern 61-65 einegtragen.
Mehr muss ich doch nicht machen, oder doch? Die MSN habe ich keinem Gerät zugewiesen, da ich keines (DECT, Analaogtelefon) an die FB angeschlossen habe. Oder muss ich die MSN (so würde ich vermuten) einem noch einzurichtenden Gerät (siehe Anhang) zuweisen. Wie reagiert die LAN-CAPI sonst drauf?
Ich habe die Fritz!Box zwar direkt am S0 ISDN Bus hängen (ohne vorgeschaltete TK-Anlage), aber meine Fritz!Box kennt die MSN auf der IPS Anrufe annimmt überhaupt nicht. Trotzdem reagiert IPS auf den Anruf via CAPI over TCP.
Habe ich inwzischen auch gesehen und begeistert zur Kenntnis genommen. Bin auch schon ein Stück weiter: Im Beispielscript steht ein exit; - hatte ich übersehen. Danach kann ich mit „0“ die aktuelle hören.
Habe bei DTMF versucht, einen Text als wav zu speichern (wie ein AB). Leider ist nur Schweigen, obwohl ich nach dem ISDN_RECORDWAVE ein IPS_Sleep (5000) und dann noch ein ISDN_STOPRECORD gesetzt habe. Hatte gehofft, dass die Aufnahme nach 5 sec. sauber beendet wird. Stattdessen stürz IPS ab. Dienst beenden geht nicht - nur PC-Neustart hilft.
Hier der Ausschnitt aus dem Script:
case "DTMF":
switch($ISDN_DATA)
{
//Aktion wenn 0 gedrückt wird
case "1":
$file = IPS_GetKernelDir()."temp.wav";
$text = "The Time is ".date("H:i");
TTS_GenerateFile(30424 /*[AB\Text To Speech]*/, $text, $file, 6);
ISDN_PlayWave(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION, $file);
break;
case "2":
$file = IPS_GetKernelDir()."\wave\hallo_hier_ips.wav";
ISDN_PlayWave(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION, $file);
break;
case "3":
$stamp = date("H_i_s");
ISDN_RecordWave(20648 /*[AB\ISDN Module]*/,$ISDN_CONNECTION, "C:/IP-Symcon/wave/ab".$stamp.".wav");
IPS_Sleep (5000);
ISDN_StopRecord(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION);
IPS_Sleep (2000);
ISDN_PlayWave(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION, "C:/IP-Symcon/wave/ab".$stamp.".wav");
break;
//Aktion wenn falsche Taste gedrückt wird
default:
ISDN_Disconnect(20648 /*[AB\ISDN Module]*/, $ISDN_CONNECTION);
break;
Hatte bisher ISDN am Start. Jetzt habe ich von Telekom auf KD gewechselt.
Mit ISDN hatte ich folgendes Problem nicht:
Eingehende Anrufe werden nicht mehr angenommen.
Egal welche MSN ich eintrage, ob richtig, falsch, mit Vorwahl oder ohne.
Es kommt immer das gleiche Debug (siehe Anhang).