Das folgende Beispiel zeigt, wie man über die ISDN Capi und DTMF Tönen
Steuerungsaufgaben (Lifestyle Programme :D) mit IP-Symcon realisieren kann.
Wer eine TK-Anlage mit internem ISDN-Bus hat, kann bequem von seinem DECT Handy z.B. die Beleuchtung steuern.
In „Instances“ wird das „ISDN Modul“ eingefügt und eine Variable für die DTMF Töne
sowie für den Status vergeben. „Accept Calls“ auf „0“ gesetzt, damit das Modul alle Anrufer entgegennimmt.
Das folgende Skript prüft den Status der ISDN Verbindung. Bei „Connected“ wird der
Anrufer „begrüßt“ und eine „Merker-Variable“ gesetzt.
<?
/*
*******************************
IPSwitch Event Scripting
*******************************
*/
//File: ISDNStatus.ips.php
// getriggert druch die Variable: "ISDNStatus"
// Einstellungen:
// MSN incomming 49 / ISDNDTMFChar / ISDNStatus
$buffer = GetValueString("ISDNStatus");
if($buffer != "") {
$items = explode(chr(13).chr(10), $buffer);
foreach($items as $item) {
// hier wirdder Status ausgewertet...
if ($item == "Connected"){
ISDN_PlayWave(24606,"d:/daten/sounds/wilkommen.wav");
IPS_Sleep(2000);
ISDN_PlayWave(24606,"d:/daten/sounds/lifestyle.wav");
SetValueInteger("Flag_ISDN",11); // Connected IPS
}
if ($item == "Disconnected"){
SetValueInteger("Flag_ISDN",99); // Connected IPS
// ZBV
}
}
//... und den Status-Buffer löschen
SetValueString("ISDNStatus", "");
}
?>
Das folgende Skript wertet die DTMF Töne aus. Stimmt die „Merker-Variable“ mit
der Taste „1“ überein, wird z.B. das „Lifestyle Programm“ 1 ausgeführt.
Die „Merker-Variable“ dient auch dazu, das Telefonmenü zu verschachteln, wie man es
aus den „Call Center Telefonaten“ her kennt.
Wird das Gespräch beendet, bekommt die „Merker-Variable z.B. den Wert 99.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : ISDNevent_Life.ips.php
Trigger : ISDNDTMFChar
Interval :
*/
$flagisdn = GetValueInteger("Flag_ISDN");
$buf = GetValueString("ISDNDTMFChar");
if ($buf != "") {
//Befehl abarbeiten bei "#" > # dient als "ENTER"
ClearBuf(); //Buffer löschen
switch($flagisdn) {
case 11: // Connected
switch((int)$buf) { // DTMF
case 1:
ISDN_PlayWave(24606,"d:/daten/sounds/eingegeben.wav");
IPS_Sleep(2000);
ISDN_PlayWave(24606,"d:/daten/sounds/".$buf.".wav");
IPS_RunScript("LifeStyle_1");
return;
case 2:
// ZBV
return;
case 3:
// ZBV
return;
default:
ISDN_PlayWave(24606,"d:/daten/sounds/nofunction.wav");
return;
} // DTMF
case 31:
// ZBV
}
//Wenn hier gelandet, falscher Befehl
ISDN_PlayWave(24606,"d:/daten/sounds/falsch.wav");
}
//Puffer löschen function deklarieren
function ClearBuf() {
//DTMF Puffer löschen
SetValueString("ISDNDTMFChar","");
}
?>
Und neue „Sound Konserven“ generiert man so:
TTS_GenerateFile($id, "Dies ist eine Mega-Lifestyle-Ansage“, "d:/Daten/sounds/lifestyle.wav", 6);
sounds.zip (158 KB)