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.
Prinzipiell 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:
Hinweis: Der Phoner muss dazu
schon vorher gestartet worden sein.