Quick-Tipp: Automatische Telefonwahl über das Softphone "Phoner" aus IBM Notes heraus - eine einfache Anleitung

von Bernd Garrels,
assono GmbH, Standort Kiel,

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:

A picture named M2

Hinweis: Der Phoner muss dazu schon vorher gestartet worden sein.

Fachbeitrag Tipp Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de