Was können wir verbessern?

Dokumentation

Voice over IP

Benötigt: IP-Symcon >= 5.2

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:

Unterstützte Geräte

Vorraussetzungen

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"

Konfiguration

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
    if(VoIP_GetConnection($id_voip, $_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(12345, $id, TTSAWSPOLLY_GenerateFile(23456, "IP-Symcon wünscht einen wunderbaren Tag"));
            return;
        }
    }
 
    //Auflegen, falls keiner abnimmt
    VoIP_Disconnect(12345, $id);
}
Zum Warenkorb
Haben Sie noch Fragen?