Autor Thema: R5 , TAPI, Teles.fon , Script zur Rufnummernübergabe (ohne Windows-Wählhilfe)  (Gelesen 5400 mal)

Offline Highnuu

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Hallo,

so - nun hat's mich erwischt......der Notes-Virus hat mich und ich will partout eine Lösung erzielen...und stehe nun etwas ratlos da.

Bitte nicht erschrecken: ich wühle im folgenden in 'tausend Jahren' alten Programmen/Programmversionen rum....aber damit soll's letztlich trotzdem gehen.

Situation:
Ich möchte aus dem Notes-Adressbuch zum telefonieren wählen können.Dazu soll ein Teles-fon (ISDN-Telefon), das mit einer eigenen 'Wählhilfe'-Software funktioniert, benutzt werden.

Dazu gibt's hier im Forum viele, viele Threads zum Thema TAPI und auch fertige Scripts die per Action-Button die Telefonnummer an die Windows-eigene TAPI-Maschinerie übergeben....
DAS waren meine ersten Anlaufpunkte, um die Sache grundlegend zu verstehen.

Nun stellt es sich hier etwas anders da. Ich nutze zum Telefonieren am hauseigenen ISDN (S0)-Bus ein ISDN-Telefon der Marke Teles (das berühmt berüchtigte TELES.fon).
Das Besondere an diesem Gerät ist, dass man mittels der Software TELES.RVS-PowerPack u.a ein kleines Programmchen namens RVS-Telefon (dialer32.exe) hat, welches die Rufnummernübergabe an das Teles.fon bewerkstelligen kann. Dazu wird dieses Tool so eigestellt, dass eine Nummer nach Klick auf den Wählen-Button die Rufnummer ..."..über das TELES-Family-Konzept..." an das Teles.fon übermittelt, der Ruf abgesetzt wird und nach Annahme an der Gegenstelle das Teles.fon klingelt....

Leider (oder vielleicht besser ?) läuft das ganz ohne TAPI-Kram des Betriebssystems ab und wird irgendwie über den ISDN-Bus (D-Kanal?) bewerkstelligt...(Voraussetztung ist ebenfalls ein TELES-ISDN-Adapter am Bus).
Soweit so gut.
Mir ist es leider nicht gelungen, diesem kleinen Programm zu entlocken, ob und wenn - wie - z.B. beim Programmstart eine zu wählende Rufnummer übergeben werden kann ....dann könnte man das TAPI-Call-LotusScript vielleicht einfach umschreiben....und das Programm mit Parametern aufrufen....

Allerdings will ich hier noch nicht aufgeben.
Beim Probieren sieht es nun so aus: wenn das Programm (dialer32.exe) gestartet wird, steht der Fokus sofort im Feld, in das die Rufnummer eingetragen werden muss, die dann mittels <ENTER> gerufen wird. (Die Einstellungen zum Teles.fon sind vorher schon im Programm selbst konfiguriert worden).

Somit könnte es doch vielleicht so funktionieren, dass per (dem TAPI-Call-Script (von wflamme)) anstelle des TAPI-Aufrufes das dialer32.exe-Programm gestartet wird und die vorher im Script 'zusammengebastelte' (und in die Zwischenablage kopierte) Rufnummer einfach per D'n'D eingefügt und ein <ENTER> hinterhergesendet wird....
Idealerweise sollte zwischem dilaer32.exe-Aufruf und 'Senden' der Rufnummer eine kleine Pause von vielleicht 2 Sekunden liegen, damit dieses Programm im Rufnummernfokus steht und das Einfügen aus der Zwischenablage erwartet....

So stellt sich ein Laie das vor.

Ist das machbar ? Das dürfte doch für den LotusScript - Profi nicht die Welt sein?
1.) Variableninhalt in Zwischenablage
2.) externes Programm aufrufen
3.) 2 Sekunden warten
4.) Inhalt der Zwischenablage einfügen
5.) ENTER senden .....

Hier nochmal der Link zum Thread mit dem Script
http://atnotes.de/index.php?topic=6337.0

....ich hoffe, ich habe mich halbwegs verständlich ausgedrückt....
es wäre schön, wenn sich jemand des Problems annehmen könnte und/oder mir auf die Sprünge helfen kann.

Besten Dank +
viele Grüße
Highnuu


Offline Highnuu

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Lösung *freu*
« Antwort #1 am: 12.03.06 - 16:30:03 »
 :) so - ich hab mich nochmal intensiv damit beschäftigt und dank vieler weiterer Tipps und Hin- und Verweise hier im Forum eine Möglichkeit gebastelt  :)

Also:
nochmal zusammengefasst....

Voraussetzungen:
 PC mit:
- Notes (ich hier R5/PE 5.0.1 ,höhere Versionen gehen sicher auch)
- installierte TELES-ISDN-Karte (ab Win2000 nur noch die PCI- oder PCMCIA-Varianten unterstützt!)
- CAPI 3.38
- installiertes TELES.RVS-PowerPack 1.70 
- Tool AutoIt (http://www.autoitscript.com/autoit3/) zur Scriptprogrammierung

1.) zur Rufnummernermittlung habe ich zwei Verweise hier aus dem Forum genutzt.
Einmal bediene ich mich der Geschichte mit der Rufnummernkonvertierung im Adressbuch, damit alle Nummern möglichst Dialer-konform abgelegt werden (siehe auch http://www.sns1.de/partner/flamme/wflamme.nsf/Shortcut/TelKorrektur).
2.) zur Übergabe modifiziere ich die TAPI-Routine (siehe auch http://www.sns1.de/partner/flamme/wflamme.nsf/Shortcut/PABDialer) in der Form, dass ich nicht die Windows-TAPI-Routine aufrufe, sondern zuerst die ermittelte Telefonnummer in eine Datei ausgebe (landet standardmäßig im Lotus\Notes-Verzeichnis) und diese Datei dann mit einem eigenen Programm (compiliertes AutoIt-Script) wieder auslese und an den Teles-Dialer via SendKeys übergebe.

Nun im Detail:

zu 1.) könnt ihr alles auf der Webpage lesen (das als Voraussetzung, um möglichst viele Eingabevarianten der Telefonnummern abzufangen)

zu 2.) das Aktions-Script wurde folgendermaßen modifiziert:

im Deklarationsteil wurde ergänzt:
Code
Type PersonRecord
empName As String * 20 'ggf. mehr als 20 für lange Rufnummern !
End Type

im Click-Sub-Teil wurde eingefügt - einmal eine weitere Variable:
Code
Dim test As String 'für Aufruf des externen Programmes 

dann der eigentliche TAPI-Aufruf ersetzt durch folgende Code
Code
 'original TAPI-Request	
'Call tapiRequestMakeCall(strPhoneNumber,strAppName,strCallParty,strComment)
'ersetzt durch neue Aufrufparameter für Teles.fon
			
	'Telnr. in Datei pndata.txt ausgeben
	   Dim fileNum As Integer
	   Dim fileName As String
	   Dim rec As PersonRecord
	   fileNum% = Freefile()
	   fileName$ = "pndata.txt"
               ' First, open a random file with a record length equal to
               ' the size of the records to be stored.
	   Open fileName$ For Random As fileNum% Len = Len(rec)
	   rec.empName$ = strPhoneNumber
	   Put #fileNum%, 1, rec       ' Write this record at position 1.
	   Seek fileNum%, 1            ' Rewind file to beginning.
	   Close fileNum%              ' Close the file
			
	'Teles-Dialer-Tool aufrufen
	   test=Shell("C:\Lotus\Notes\telesfon.exe",1)

(Den gesamten/modifizierten Code findet ihr im angehängten Archiv!)
 
Zuerst gebe ich die ermittelte Tel.Nr in eine Datei 'pndata.txt' aus und rufe danach ein Programm namens 'telesfon.exe' auf.
Das ist ein compiliertes AutoIt-Script, welches die Weiterbearbeitung der Rufnummer übernimmt.
Diese Script liest die Datei 'pndata.txt' wieder aus, startet den TELES-Dialer (dialer32.exe) und übergibt die ausgelesene Rufnummer per SendKey an den Dialer.
Zuletzt sendet das Script noch ein ENTER, was den Dialer dazu veranlasst, über den S0-Bus zu wählen und nach Annahme des Rufes an der Gegenstelle mein TELES.fon klingeln zu lassen....klappt perfekt und genau, wie ich es wollte.

Der Umweg über die 'pndata'-Datei war notwendig, da ich einerseits mit der Bibliothek zur Nutzung der Zwischenablage irgendwie keinen Erfolg hatte (lag sicher an meiner alten Notes-Version oder meiner Dummheit...), andererseits damit natürlich auch die Gefahr besteht, dass andere Aktionen am PC das ClipBoard überscheiben und der Dialer dann irgendwelchen Quatsch übergeben bekommt. Somit vielleicht gar nicht so doof!..
Die Nutzung eines externen Tools (AutoIt, Freeware!) konnte auch nicht umgangen werden, da Notes keine SendKey-Unterstützung (mehr?) aufweist und ich nicht weiß, wie ich sonst zum richtigen Zeitpunkt an den TELES-Dialer die Rufnummern-Daten 'senden' soll (keine Ahnung, ob und wie der Dialer vielleicht mit Parametern o.ä. zu füttern sei...Rechercheversuche dazu blieben erfolglos!).  :-:

Im felesfon.exe (AutoIt-)-Script habe ich versucht, noch das eine oder andere Problem abzufangen....wen's interessiert - die Datei 'telesfon.au3' ist ebenso im Archiv und kann im Editor betrachtet werden. Eine solche au3-Datei kann dann mit den AutoIt-Editor/Compiler zur exe gewandelt werden - und die ruft ja das LotusScript letztlich auf.

Das LotusScript habe ich im Adressbuch dann als gemeinsame Aktion in den entsprechenden Ansichten eingefügt und kann nun ganz bequem aus der Kontaktübersicht per PC wählen (auch OHNE TAPI-Unterstützung!  :D)

Danke für dieses Forum an alle - bisher habe ich für alle Probleme irgendwann- und wie - meist HIER eine Lösung gefunden - RESPEKT !  :-P

Und nun viel Spaß mit diesem - zugegebenermaßen 'wilden' 'TELES-Dialer.....

Viele Grüße
Highnuu


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz