In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

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

von Thomas,
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 Entwicklung

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

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

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 416
Vertrieb: +49 4307 900 402

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