Dokumentation
Voice over IP
Das VoIP Modul kann Telefonverbindungen aufbauen/entgegennehmen, DTMF Signale verarbeiten, Verbindungsgebundene Daten buffern und Sounds abspielen.
Folgende Geräte werden von IP-Symcon unterstützt:
Voraussetzungen
Es wird ein aktives Portal zur Telefonie benötigt. Dies kann eine Fritzbox oder ein Dienst wie Sipgate sein.
Einbindung in IP-Symcon
Zur Einbindung kann via Objekt hinzufügen im Objektbaum ein "VoIP" Gerät hinzugefügt werden.
In der Instanzkonfiguration müssen Domain und Benutzername zum Telefonservice angegeben werden.
Falls benötigt müssen noch AuthID und Passwort eingetragen werden.
Wenn der Rechner mehrere Netzwerkkarten oder -interfaces hat (z.B. auch virtuelle Adapter wie VPN, Docker, Hyper-V) kann es erforderlich sein die IP-Adresse über die die VoIP Verbindung aufgebaut wird zu definieren. Dazu gibt es den passenden Spezialschalter "VoIPInterface"
Um zu verwalten was bei einer aktiven Verbindung passieren soll, muss ein Abarbeitungsskript hinzugefügt werden.
Abarbeitungsskript
Das Abarbeitungsskript bestimmt das Verhalten bei jeder eingehenden Verbindung. Dazu sind auch die Systemvariablen wichtig.
Beispiele
Skript für eingehende Anrufe (Abarbeitungsskript)
if($_IPS['SENDER'] == "VoIP") { // Wir wollen nur eingehende Anrufe verarbeiten // $_IPS["INSTANCE"] ist ab IP-Symcon 5.4 verfügbar if(VoIP_GetConnection($_IPS["INSTANCE"], $_IPS["CONNECTION"])["Direction"] == 1 /* Ausgehend */) { return; } switch($_IPS["EVENT"]) { case "Incoming": IPS_LogMessage("VoIP", "Ein eingehender Anruf"); break; case "Connect": IPS_LogMessage("VoIP", "Es wurde eine Verbindung aufgebaut"); break; case "Disconnect": IPS_LogMessage("VoIP", "Es wurde eine Verbindung beendet"); break; case "DTMF": IPS_LogMessage("VoIP", "Es wurde ein DTMF Signal empfangen"); switch($_IPS["DATA"]) { case '1': case '2': case '3': case '4': case '5': case '6': IPS_LogMessage("VoIP", "Es wurde eine der Tasten 1 bis 6 gedrückt"); break; case '#': IPS_LogMessage("VoIP", "Es wurde die Taste # gedrückt"); break; default: IPS_LogMessage("VoIP", "Es wurde die Taste ". $_IPS["DATA"] ." gedrückt"); break; } break; case "PlayFinish": IPS_LogMessage("VoIP", "Es wurde eine Sounddatei abgespielt"); break; default: IPS_LogMessage("VoIP", "Ein unbekanntes Event wurde ausgelöst"); break; } }
Skript für ausgehende Anrufe mit TTS-Module "AWS Polly" aus dem Module Store
if($_IPS['SENDER'] == "Execute") { $id = VoIP_Connect(12345, "0451305005xx"); //Maximal 10 Sekunden warten, dass einer abnimmt for($i = 0; $i < 10; $i++) { IPS_Sleep(1000); $c = VoIP_GetConnection(12345, $id); if($c['Connected']) { // VoIP_Playwave() unterstützt ausschließlich WAV im Format: 16 Bit, 8000 Hz, Mono. VoIP_PlayWave(12345, $id, TTSAWSPOLLY_GenerateFile(23456, "IP-Symcon wünscht einen wunderbaren Tag")); return; } } //Auflegen, falls keiner abnimmt VoIP_Disconnect(12345, $id); }
Beispieleinrichtung in der FritzBox
Mithilfe der FritzBox kann das VoIP-Modul genutzt werden. Hierzu ist eine seperate freie Telefonnummer in der FritzBox empfohlen und folgende Schritte sind zu beachten.
Gegebenfalls muss unter "Telefonie" -> "Eigene Rufnummer" -> "Neue Rufnummer" eine neue Rufnummer eingerichtet werden
Als erster Schritt muss in der FritzBox unter "Telefonie" -> "Telefoniegeräte" ein neues Telefoniegerät hinzugefügt werden.
Dieses muss als neues "Telefon" hinzugefügt werden.
Da IP-Symcon als IP-Telefon fungiert, muss dieses und anschließend eine seperate Telefonnummer ausgewählt werden. Es sollte ein sprechender Name für das Telefoniegerät gewählt werden.
Anschließend müssen ein Benutzername und Passwort festegelegt werden, diese werden später in das VoIP in IP-Symcon eingetragen.
Das einzurichtende Telefoniegerät muss bestätigt und dessen Einrichtung im Anschluss abgeschlossen werden.
Nun kann das Telefoniegerät in IP-Symcon innerhalb des VoIP Modul übernommen werden.
Wenn alles geklappt hat wird der Status "Registrierung war erfolgreich" angezeigt.
Mit eingerichtetem Abarbeitungsskript kann ein Testanruf getätigt werden. In den Meldungen sollten folgende Nachrichten beim Drücken von Zifferntasten auf dem Telefon ersichtlich werden.