Da gewöhnlich mein DECT Telefon immer in Reichweite ist, benutze ich es außerdem um meine Audio-Anlage zu steuern.
Das anliegende Skript ist für das SONOS System - lässt sich aber problemlos auf andere Systeme umschreiben.
Test - RUF AN ! JETZT !! 04504 / 715165
Mit einer Eingabe einer:
-3- gelangt der Anrufer in das „Mega-Vote-Event-Menü“, hier kann er bestimmen, wie ihm IP-Symcon gefällt.
Es kann eine Schulnote von 1 bis 6 vergeben werden.
-4- Anrufbeantworter
-5- Zeitansage: deutsch
-6- Zeitansage: englisch
-7- Sound - System > im Skript: case 71:
- leiser
lauter
0 Stop
1 Play
2 Senderwechsel > 0 bis 9 > im Skript: case 712:
3 ZBV
Musik gibt es über das Telefon NICHT zu hören, dafür die Befehle (WAV als Anlage)
MST
<?
$delay = 100;
$allowed_numbers = Array(); //leer = alle
//Aktive Verbindungen ausgeben
//print_r(ISDN_GetActiveConnections(37323 /*[ISDN_SMS\ISDN Module 49]*/));
if($IPS_SENDER == "ISDN") {
//Informationen ins Meldungsfenster ausgeben
//echo "Event: ".$ISDN_EVENT."
";
if($ISDN_EVENT != "Disconnect"){
$callinfo = ISDN_GetConnectionInfo(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION);
//Mehr Informationen ausgeben
//print_r($callinfo);
}
//Je nach Ereigniss eine Aktion ausführen
switch($ISDN_EVENT) {
case "Incoming":
SetValue(36280 /*[ISDN_SMS\Nummer des Anrufers]*/, $callinfo['CallingNumber']);
//Anruf annehmen? (Entweder leeres Array oder Nummer ist enthalten)
if((sizeof($allowed_numbers) == 0)
or in_array($callinfo['CallingNumber'], $allowed_numbers))
{
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 1); // Incoming
IPS_Sleep(5000);
ISDN_AcceptCall(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION); //Anruf annehmen
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 2); // ISDN_CONNECTION
SetValue(14553 /*[ZBV_Test_QC\Dashboard\IPS Anrufer]*/, GetValue(14553 /*[ZBV_Test_QC\Dashboard\IPS Anrufer]*/) +1);
}
break;
case "Connect":
if (GetValue(25457 /*[ISDN_SMS\ISDN Module 49\IPS ruft jemanden an]*/) == 3){
IPS_Sleep(500);
$file = IPS_GetKernelDir()."sounds\\weckdienst.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\h1.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
} else {
$file = IPS_GetKernelDir()."sounds\\willkommen.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len);
$file = IPS_GetKernelDir()."sounds\\hauptmenue.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\wahl.wav";
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
}
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 3); // Hauptmenue
break;
case "Disconnect":
//Aktion, wenn Anruf beendet wurde
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 0); // Disconnect
SetValue(25457 /*[ISDN_SMS\ISDN Module 49\IPS ruft jemanden an]*/, 0);
break;
case "PlayFinish":
//Aktion, wenn Wav abgespielt wurde
break;
case "DTMF":
switch(GetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/)) {
case 3: // Menü - Auswahl
switch($ISDN_DATA) {
//Aktion wenn 0 gedrückt wird
case "0":
break;
case "2":
$file = IPS_GetKernelDir()."sounds\\ips_mega_vote.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
return;
case "3":
$file = IPS_GetKernelDir()."sounds\\voteevent.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\zahl1bis6.wav";
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 31); // Mega Vote
return;
case "4": // AB
$file = IPS_GetKernelDir()."sounds\\ab_und_auflegen.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\beep.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$stamp = date("H_i_s");
ISDN_RecordWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, "D:/Daten/AB_Ansagen/ab".$stamp.".wav");
SetValue(16427 /*[ZBV_Test_QC\Dashboard\Neue AB Meldung]*/, True);
return;
case "5": // // Zeit deutsch
$date = getdate();
$hrs = $date['hours'];
$min = $date['minutes'];
$file = IPS_GetKernelDir()."sounds\\zeit/" . $hrs . "uhr.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\zeit/" . $min . "minute.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
return;
case "6": // Zeit englisch
$file = IPS_GetKernelDir()."temp.wav";
$text = "The Time is ".date("H:i");
TTS_GenerateFile(38200 /*[Media IR\Text To Speech]*/, $text, $file, 6);
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
return;
case "7":
$file = IPS_GetKernelDir()."sounds\\musik_menue.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 71); // Musik
return;
//Aktion wenn falsche Taste gedrückt wird
default:
$file = IPS_GetKernelDir()."sounds\
ofunction.wav";
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
return;
} // switch($ISDN_DATA)
case 31: // Mega Vote
if((int)$ISDN_DATA < 7) {
$file = IPS_GetKernelDir()."sounds\\eingegeben.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\".$ISDN_DATA.".wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
SetValue(58697 /*[ZBV_Test_QC\Dashboard\Last Vote]*/, $ISDN_DATA);
$file = IPS_GetKernelDir()."sounds\\registriert.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(21212 /*[ZBV_Test_QC\Dashboard\Mega Vote Anrufer]*/, GetValue(21212 /*[ZBV_Test_QC\Dashboard\Mega Vote Anrufer]*/) +1);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."temp.wav";
$text = "Your Call was Number: " .GetValue(21212 /*[ZBV_Test_QC\Dashboard\Mega Vote Anrufer]*/);
TTS_GenerateFile(38200 /*[Media IR\Text To Speech]*/, $text, $file, 6);
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\ extnachricht.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_Sleep($len + $delay);
$file = IPS_GetKernelDir()."sounds\\ende.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 3); // Menü
} else {
$file = IPS_GetKernelDir()."sounds\\falsch.wav";
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
}
return;
case 71:
echo $ISDN_DATA;
if( $ISDN_DATA == "*") {
$file = IPS_GetKernelDir()."sounds\\lauter.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetVolume", "Volume" => 25));
return;
}
if( $ISDN_DATA == "#") {
$file = IPS_GetKernelDir()."sounds\\leiser.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetVolume", "Volume" => 10));
return;
}
if((int)$ISDN_DATA ==0) {
$file = IPS_GetKernelDir()."sounds\\stop.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Pause", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==1) {
$file = IPS_GetKernelDir()."sounds\\play.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==2) {
$file = IPS_GetKernelDir()."sounds\
euer_sender.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 712); // neuer Sender
return;
}
if((int)$ISDN_DATA ==9) {
$file = IPS_GetKernelDir()."sounds\\hauptmenue.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 3); // Hauptmenue
return;
}
$file = IPS_GetKernelDir()."sounds\\keine_funktion.wav";
ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
return;
case 712:
SetValue(23014 /*[ISDN_SMS\ISDN Menü Flag]*/, 71); // Musik-Menü
if((int)$ISDN_DATA ==0) {
$file = IPS_GetKernelDir()."sounds\
dr2.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://ndr-ndr2-hi-wma.wm.llnwd.net/ndr_ndr2_hi_wma"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==1) {
$file = IPS_GetKernelDir()."sounds\\welle_nord.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://ndr-ndr1wellenord-hi-wma.wm.llnwd.net/ndr_ndr1wellenord_hi_wma"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==2) {
$file = IPS_GetKernelDir()."sounds\\klassik_radio.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://players.creacast.com/creacast/klassik/playlist.pls"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==3) {
$file = IPS_GetKernelDir()."sounds\\chill_musik.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://di.fm/mp3/lounge.pls"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==4) {
$file = IPS_GetKernelDir()."sounds\\jazz.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://www.sky.fm/mp3/smoothjazz.pls"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==5) {
$file = IPS_GetKernelDir()."sounds\\pop.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://lsd.newmedia.nacamar.net/bb/redirect.lsc?content=live&media=mp3&stream=ndr/n-joy.mp3"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
if((int)$ISDN_DATA ==6) {
$file = IPS_GetKernelDir()."sounds\\dance.wav";
$len = ISDN_PlayWave(37323 /*[ISDN_SMS\ISDN Module 49]*/, $ISDN_CONNECTION, $file);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "SetRadio", "Sender" => "x-rincon-mp3radio://stream2141.init7.net:80"));
IPS_Sleep(1000);
IPS_RunScriptEx(34210 /*[Media IR\Sonos V2]*/, Array("Befehl" => "Play", "Sender" => "none"));
return;
}
} // switch($flagisdn)
}
}
?>
sounds.zip (201 KB)