Posts Tagged: ‘SoftPhone’

automatische Telefonwahl über das Softphone “Phoner” aus IBM Notes heraus – eine einfache Anleitung

2. September 2013 Posted by Bernd Garrels

Phoner  ist ein Freeware-Programm von Heiko Sommerfeldt, das Gesprächsverbindungen in das Festnetz, zu Mobiltelefonen und zu VoIP-Gegenstellen ermöglicht. Das Programm kann als Softphone für analoge Teilnehmeranschlüsse, digitale ISDN-Teilnehmeranschlussleitungen oder für IP-Telefonie auf stationären und mobilen Computern benutzt werden.
Prinzipielle ist es möglich für den Phoner in einen Lotusscript-Script ein OLE Automation object "Phoner.CPhoner" anzulegen, diesem eine Nummer zu übergeben und eine Telefonruf zu starten. Dieses brachte uns auf die Idee die Widgets- und Live-Text-Funktionalität des Standard-Notes-Clients zu verwenden, um über Livetext erkannte Telefonnummern direkt für einen Telefon-Call zu nutzen.


Beschreibung der Lösung

Die Erstellung eines Notes-Widget aus einer Maske ist in der Notes-Hilfe beschrieben. Über ein solches Widget lässt sich ein Feld einer sich öffnende Notes-Maske mit der über Livetext identifizierte Telefonnummer befüllen. Prinzipiell muss abgewartet werden, bis das Widget das Feld befüllt hat. Dieses haben wir dann wie folgt gelöst:

Dim uidoc As NotesUIDocument
Dim callTimer As NotesTimer

Sub Postopen(Source As Notesuidocument)
        Set uidoc = source
        ' erstelle und initialisiere Timer
        Set callTimer = New NotesTimer(1, "rufe Telefonnummer an")
        On Event Alarm From callTimer Call CallTimerHandler
End Sub

Sub CallTimerHandler(Source As NotesTimer)
        Dim telefonnummer As String
        ' nur einmal ausführen, deshalb Timer gleich deaktivieren
        source.Enabled = False
        ' Telefonnummer normalisieren
        telefonnummer = NormalisiereTelefonnummer(uidoc.FieldGetText("Telefonnummer"))
        Call uidoc.FieldSetText("Telefonnummer", telefonnummer)
        If telefonnummer <> "" Then
                Call RufeTelefonnummerAn(telefonnummer)
                ' und Dokument wieder schließen
                Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")
                Call uidoc.Close
        End If
End Sub

Function NormalisiereTelefonnummer(Byval telefonnummer As String) As String
        ' entferne Leerzeichen, /, -, ( und )
        telefonnummer = Replace(telefonnummer, Split(" , /, -, (, )", ", "), "")
        ' entferne die 0 nach der Landesvorwahl (zumindest erst einmal für die deutsche Landesvorwahl)
        If Left$(telefonnummer, 3) = "+49" And Left$(telefonnummer, 4) = "+490" Then
                telefonnummer = "+49" & Mid$(telefonnummer, 5, 100)
        End If
        NormalisiereTelefonnummer = telefonnummer
End Function

Sub RufeTelefonnummerAn(telefonnummer As String)
        Dim Phoner As Variant
        If telefonnummer <> "" Then
                Set Phoner = CreateObject("Phoner.CPhoner")
                Phoner.MakeCall(telefonnummer)
        End If
End Sub

Und siehe da, der Phoner wählt die Nummer aus dem Livetext an:

A picture named M2

Hinweis: Der Phoner sollte schon geöffnet sein.