Hallo,
in einem anderen Forumsbeitrag habe ich aufgerufen die Möglichkeit zu erstellen, über das Webfront telefonieren zu können.
Dann hat mich aber selbst die Lust gepackt und ich habe mich trotz des unglaublichen Fernsehprogramms und meinem unglaublichen Programmierkenntnissen rangesetzt.
Das Ergebnis möchte ich euch hier präsentieren:
In zehn einfachen Schritten:
- Phoner Installieren Phoner
- An der Fritzbox ein neues Telefoniegerät anlegen.
- Phoner mit der Fritzbox verbinden, sprich Benutzername und Passwort eingeben.
- Probieren ob das Telefonieren über Phoner funktioniert.
- Ordner anlegen unter dem IP_Symcon Ordner mit dem Namen automatic, also X:\IP-Symcon\automatic.
- Batchdatei in dem Ordner mit dem Namen telout.bat anlegen.
- Dummy Modul erstellen.
- Installiationsskript unter das Dummy Modul legen und ausführen. Danach kann es gelöscht werden.
- Das Automatisch erstellte Phoner_Aktionskript als Aktionskript bei den Variablenprofilen .numpad und .Bedientasten angeben. (Wollte es Automatisiert machen hat aber nicht geklappt.)
- Fertig
Installiationsskript
<?
$ParentID = IPS_GetObject($IPS_SELF);
$ParentID = $ParentID['ParentID'];
$numpadprofile = '.numpad';
$bedienprofile = '.bedientasten';
if (IPS_VariableProfileExists($numpadprofile)==False){
IPS_CreateVariableProfile($numpadprofile, 1);
IPS_SetVariableProfileAssociation($numpadprofile, 0, "0","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 1, "1","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 2, "2","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 3, "3","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 4, "4","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 5, "5","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 6, "6","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 7, "7","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 8, "8","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 9, "9","",0x00FF00);
}
else
{
IPS_DeleteVariableProfile($numpadprofile);
IPS_CreateVariableProfile($numpadprofile, 1);
IPS_SetVariableProfileAssociation($numpadprofile, 0, "0","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 1, "1","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 2, "2","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 3, "3","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 4, "4","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 5, "5","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 6, "6","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 7, "7","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 8, "8","",0x00FF00);
IPS_SetVariableProfileAssociation($numpadprofile, 9, "9","",0x00FF00);
}
if (IPS_VariableProfileExists($bedienprofile)==False){
IPS_CreateVariableProfile($bedienprofile, 1);
IPS_SetVariableProfileAssociation($bedienprofile, 101, "Wählen","",0x00FF00);
IPS_SetVariableProfileAssociation($bedienprofile, 102, "Auflegen","",0xFF0000);
IPS_SetVariableProfileAssociation($bedienprofile, 103, "Löschen","",0xFFFF00);
IPS_SetVariableProfileAssociation($bedienprofile, 104, "Annehmen","",0x0000CD);
}
else
{
IPS_DeleteVariableProfile($bedienprofile);
IPS_CreateVariableProfile($bedienprofile, 1);
IPS_SetVariableProfileAssociation($bedienprofile, 101, "Wählen","",0x00FF00);
IPS_SetVariableProfileAssociation($bedienprofile, 102, "Auflegen","",0xFF0000);
IPS_SetVariableProfileAssociation($bedienprofile, 103, "Löschen","",0xFFFF00);
IPS_SetVariableProfileAssociation($bedienprofile, 104, "Annehmen","",0x0000CD);
}
/// Hier werden die Variabeln Angelegt///
$nummer = IPS_CreateVariable(3); // Variable erstellen
IPS_SetParent($nummer, $ParentID); // Einordnen in Objektbaum
IPS_SetVariableCustomProfile($nummer, "~TextBox"); // Profil setzen
IPS_SetName($nummer, "Nummer"); // Name setzen
$numpad = IPS_CreateVariable(1); // Variable erstellen
IPS_SetParent($numpad, $ParentID); // Einordnen in Objektbaum
IPS_SetVariableCustomProfile($numpad, $numpadprofile); // Profil setzen
IPS_SetName($numpad, "Numpad"); // Name setzen
$bedientasten = IPS_CreateVariable(1); // Variable erstellen
IPS_SetParent($bedientasten, $ParentID); // Einordnen in Objektbaum
IPS_SetVariableCustomProfile($bedientasten, $bedienprofile); // Profil setzen
IPS_SetName($bedientasten, "Bedientasten"); // Name setzen
IPS_SetPosition($nummer, 1);
IPS_SetPosition($numpad, 2);
IPS_SetPosition($bedientasten, 3);
////// Skript Anlegen////
// Funktion zur Script Erstellung
function CreateScriptByName($ScriptNAME, $ParentID, $ScriptTEXT)
{
global $IPS_SELF;
$ScriptID = @IPS_GetScriptIDByName($ScriptNAME, $ParentID);
if ($ScriptID == 0){
$ScriptID = IPS_CreateScript(0);
IPS_SetName($ScriptID, $ScriptNAME);
IPS_SetParent($ScriptID, $ParentID);
IPS_SetInfo($ScriptID, "This script was created by: #$IPS_SELF#");
$fh = fopen(IPS_GetKernelDir()."scripts\\".$ScriptID.".ips.php", 'w') or die("can't open file");
fwrite($fh, $ScriptTEXT);
fclose($fh);
$ScriptPath = $ScriptID.".ips.php"; //Skriptdatei
IPS_SetScriptFile($ScriptID, $ScriptPath);
IPS_SetHidden($ScriptID, true);
//echo "Die Skript-ID lautet: ". $ScriptID;
return $ScriptID;
}
}
$ScriptNAME = 'Phoner_Aktionskript';
$PhonerSkript = CreateScriptByName($ScriptNAME,$ParentID,
'
<?
define("Nummer", '.$nummer.' /**/, true);
if($IPS_SENDER == "WebFront")
{
SetValue($IPS_VARIABLE, $IPS_VALUE);
Switch($IPS_VALUE)
{
case "101" :
$Nummer = $nummer = GetValue(Nummer);;
$string = "C:\Programme\Phoner\phoner.exe CONNECT $Nummer"; // Inhalt der bat-Datei
$batch ="C:/IP-Symcon/automatic/telout.bat"; // die Datei selbst
$handler = fOpen($batch, "w+"); // Datei öffnen
fWrite($handler , $string); // Datei füllen
fClose($handler); // Datei schließen
IPS_ExecuteEx("C:/IP-Symcon/automatic/telout.bat", "", true, false,1);
SetValue (Nummer, "");
break;
case "102":
$string = "C:\Programme\Phoner\phoner.exe DISCONNECT"; // Inhalt der bat-Datei
$batch ="C:/IP-Symcon/automatic/telout.bat"; // die Datei selbst
$handler = fOpen($batch, "w+"); // Datei öffnen
fWrite($handler , $string); // Datei füllen
fClose($handler); // Datei schließen
IPS_ExecuteEx("C:/IP-Symcon/automatic/telout.bat", "", true, false,1);
break;
case "103" :
$nummer = GetValue(Nummer);
SetValue(Nummer,"");
break;
case "104" :
$string = "C:\Programme\Phoner\phoner.exe ANSWER"; // Inhalt der bat-Datei
$batch ="C:/IP-Symcon/automatic/telout.bat"; // die Datei selbst
$handler = fOpen($batch, "w+"); // Datei öffnen
fWrite($handler , $string); // Datei füllen
fClose($handler); // Datei schließen
IPS_ExecuteEx("C:/IP-Symcon/automatic/telout.bat", "", true, false,1);
break;
default:
$nummer = GetValue(Nummer);
$num = $IPS_VALUE;
$nummer .= $num;
SetValue(Nummer,$nummer);
break;
}
}
?>
'
);
?>
Ist noch nicht wirklich schön, aber es klappt.
Erklärung:
Um anzurufen einfach die Nummer eintippen und „Wählen“ drücken.
„Löschen“ drücken, wenn man sich vertippt hat.
„Auflegen“ wenn man fertig ist.
Und „Annehmen“ wenn jemand anruft und man das Gespräch annehmen möchte.
<-------------GANZ EINFACH ODER ----------------->
Sollte sich mal was ändern, werde ich den ersten Post immer aktuell halten.
Viel Spaß damit. Und bitte seid gnädig mit mir, das war mein erster Versuch.
MFG Mastershort