Tapi
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 128
- Registriert: Mi, 26. Okt 2005 18:41
- Wohnort: Berlin
- Kontaktdaten:
Hallo,
ist ja richtig "Bedarf" nach so etwas da!
(Klar: Supi-Sache, wenn bei einem Anruf schon Kontaktdatensatz aufgerufen wird und man schon während man den Höhrer abhebt, die Kontakt-Historie sehen kann.)
Wie ich erfahren habe läßt sich (auf einem sauberen Rechner) das VC-Projekt nicht bauen, weil wohl leider ein noch paar include-Dateien fehlen.
Habt also noch ein wenig Geduld, ich werde das erstmal für Euch beheben. Denn nix nervt mehr als fremder Code, der sich nicht bauen läßt, oder? Mir fällt da nur eine Sache ein, die das noch toppt: Fremdcode, der sich erst nach viel Mühe und Aufwand zwar bauen läßt aber dann nicht funktioniert. (.. es soll gelegentlich ja solche Leute geben, die einem so etwas zu schicken.)
Dazu muß ich aber erst mal einen unbelasteten Rechner finden.
Zwischenzeitlich bitte ich Euch, mir eine Mail mit dem Betreff "TAPI3 Sourcen" an "mail chr(64) c o m b i f i n a n z chr( 46) d e"
zu schicken, damit ich mir die Sucherei hier im Forum nach euren Mail-Adressen sparen kann (die Mailfunktion im Forum erlaubt ja keine Anhänge!?).
Wer den Code (VC-Projekt) mal bei sich probebauen will/kann, melde sich auch.
Gruß
Olaf870
ist ja richtig "Bedarf" nach so etwas da!
(Klar: Supi-Sache, wenn bei einem Anruf schon Kontaktdatensatz aufgerufen wird und man schon während man den Höhrer abhebt, die Kontakt-Historie sehen kann.)
Wie ich erfahren habe läßt sich (auf einem sauberen Rechner) das VC-Projekt nicht bauen, weil wohl leider ein noch paar include-Dateien fehlen.
Habt also noch ein wenig Geduld, ich werde das erstmal für Euch beheben. Denn nix nervt mehr als fremder Code, der sich nicht bauen läßt, oder? Mir fällt da nur eine Sache ein, die das noch toppt: Fremdcode, der sich erst nach viel Mühe und Aufwand zwar bauen läßt aber dann nicht funktioniert. (.. es soll gelegentlich ja solche Leute geben, die einem so etwas zu schicken.)
Dazu muß ich aber erst mal einen unbelasteten Rechner finden.
Zwischenzeitlich bitte ich Euch, mir eine Mail mit dem Betreff "TAPI3 Sourcen" an "mail chr(64) c o m b i f i n a n z chr( 46) d e"
zu schicken, damit ich mir die Sucherei hier im Forum nach euren Mail-Adressen sparen kann (die Mailfunktion im Forum erlaubt ja keine Anhänge!?).
Wer den Code (VC-Projekt) mal bei sich probebauen will/kann, melde sich auch.
Gruß
Olaf870
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
-
- Rekursionen-Architekt
- Beiträge: 128
- Registriert: Mi, 26. Okt 2005 18:41
- Wohnort: Berlin
- Kontaktdaten:
Hallo,
meine TAPI hat noch ein Problem: Man kann das Ding nicht in eine DLL einbauen. Wenn man es doch tut, dann geschieht unberechenbares.
Ein C++-Spezi sagte, es fehlen wohl noch paar Zeilen Code, will sich aber erst darum richtig kümmern, wenn er seine Arbeit abrechnen darf. Wie er meinte, wird er es wohl in 4 Stunden schaffen. Bisher hat er keinen Auftrag von mir bekommen.
Hat jemand Lust sich zu beteiligen?
Gruß
Olaf
meine TAPI hat noch ein Problem: Man kann das Ding nicht in eine DLL einbauen. Wenn man es doch tut, dann geschieht unberechenbares.
Ein C++-Spezi sagte, es fehlen wohl noch paar Zeilen Code, will sich aber erst darum richtig kümmern, wenn er seine Arbeit abrechnen darf. Wie er meinte, wird er es wohl in 4 Stunden schaffen. Bisher hat er keinen Auftrag von mir bekommen.
Hat jemand Lust sich zu beteiligen?
Gruß
Olaf
- Schubi
- Rekursionen-Architekt
- Beiträge: 139
- Registriert: Mi, 05. Okt 2005 15:10
- Wohnort: Wiesloch
- Hat sich bedankt: 5 Mal
Toptapi
Hallo Thomas,
beim rumtesten mit Toptapi bin ich auf Deinen Beitrag gestossen:
Bei mir liefert TapiLineInitEx immer Null, d.h. kein Erfolg.
Habe aber auch keinen Schimmer, wie ich diese Callbackprozedur hinbekomme.
Noch eine Frage: Ruft man die Dll-Functions mit STDCALL oder mit CDECL auf?
beim rumtesten mit Toptapi bin ich auf Deinen Beitrag gestossen:
Wo hast Du diese C-Routinen her bzw. kannst Du mir hier weiterhelfen?thomas hat geschrieben:
Die Funktionen LP_MYCALLBACK, _MYLOOP, _MYLOOP_QUIT, _PTR_TO_STR sind in C++
geschrieben und im Projekt als Objectdatei hinzugelinkt.
Bei mir liefert TapiLineInitEx immer Null, d.h. kein Erfolg.
Habe aber auch keinen Schimmer, wie ich diese Callbackprozedur hinbekomme.
Noch eine Frage: Ruft man die Dll-Functions mit STDCALL oder mit CDECL auf?
Grüße Steffen
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Tapi
Hallo,
meistens nutzt man STDCALL, das könnte aber natürlich hier anders sein ... im C Quellcode sollte aber ein ähnlicher Parameter angegeben sein.
Xbase++ unterstützt selbst keine CALLBACK Prozeduren, aber von Pablo Botela gibt es "The XppCbk.exe callback compiler", mit dem man eine OBJ aus einer Xbase++ Funktion erstellen kann, die dann den Code der CALLBACK Funktion enthält.
Ich selbst habe sowas noch nicht genutzt, aber unter diesem Link solltest du nähere Infos finden:
http://www.xbwin.com/ot4xbXHlp/ unter Tutorial.
XppCbk.EXE müsste dort eigentlich auch zu finden sein ... oder bei Alaska im Downloadbereich ... so über google habe ich dies gefunden (ganz unten):
http://www.xbwin.com/_main_/docs_and_resources.html
Auf http://www.xbwin.com ist der Aufruf ganz rechts oben versteckt
meistens nutzt man STDCALL, das könnte aber natürlich hier anders sein ... im C Quellcode sollte aber ein ähnlicher Parameter angegeben sein.
Xbase++ unterstützt selbst keine CALLBACK Prozeduren, aber von Pablo Botela gibt es "The XppCbk.exe callback compiler", mit dem man eine OBJ aus einer Xbase++ Funktion erstellen kann, die dann den Code der CALLBACK Funktion enthält.
Ich selbst habe sowas noch nicht genutzt, aber unter diesem Link solltest du nähere Infos finden:
http://www.xbwin.com/ot4xbXHlp/ unter Tutorial.
XppCbk.EXE müsste dort eigentlich auch zu finden sein ... oder bei Alaska im Downloadbereich ... so über google habe ich dies gefunden (ganz unten):
http://www.xbwin.com/_main_/docs_and_resources.html
Auf http://www.xbwin.com ist der Aufruf ganz rechts oben versteckt
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 116
- Registriert: Fr, 23. Sep 2005 16:07
- Wohnort: Bad Oldesloe
- Kontaktdaten:
TopTapi und Callback
Hallo Steffen,
hier findest du das Bespiel zur TopTapi mit Callback. Die C++ Routinen _LP_MyCallBack, _MyLoop, _MyLoopQuit und _PTR_To_STR sind bereit in Call11p.obj
übersetzt.
Viele Grüße
Thomas
hier findest du das Bespiel zur TopTapi mit Callback. Die C++ Routinen _LP_MyCallBack, _MyLoop, _MyLoopQuit und _PTR_To_STR sind bereit in Call11p.obj
übersetzt.
Viele Grüße
Thomas
- Pablo Botella
- Rookie
- Beiträge: 14
- Registriert: Do, 18. Dez 2008 20:14
- Wohnort: Santiago de Compostela - Spain
- Kontaktdaten:
Re: Tapi
Ich war Thomas helfen, dieses C-Funktionen für den Einsatz mit lineInitialize () aber das Lesen docs habe ich entdeckt, dass nicht erforderlich, da TAPI-V 2.0 als neue TAPI-Funktion LineInitializeEx () erlaubt die Wahl zwischen 3 ModiSchubi hat geschrieben:Hallo Thomas,
beim rumtesten mit Toptapi bin ich auf Deinen Beitrag gestossen:
Wo hast Du diese C-Routinen her bzw. kannst Du mir hier weiterhelfen?thomas hat geschrieben:
Die Funktionen LP_MYCALLBACK, _MYLOOP, _MYLOOP_QUIT, _PTR_TO_STR sind in C++
geschrieben und im Projekt als Objectdatei hinzugelinkt.
Bei mir liefert TapiLineInitEx immer Null, d.h. kein Erfolg.
Habe aber auch keinen Schimmer, wie ich diese Callbackprozedur hinbekomme.
Noch eine Frage: Ruft man die Dll-Functions mit STDCALL oder mit CDECL auf?
LINEINITIALIZEEXOPTION_USEHIDDENWINDOW
Dies ist die alte Methode mit einem versteckten Fenster in einem separaten Thread, das war der Grund dafür, dass der Rückruf wurde in einer nicht Xbase + + Threads, so war zu delegieren alle Veranstaltungen zu einem Thread von Xbase + +
LINEINITIALIZEEXOPTION_USEEVENT
LINEINITIALIZEEXOPTION_USECOMPLETIONPORT
Ich denke, die Verwendung TAPI mit Xbase + + am besten geeignet ist LINEINITIALIZEEXOPTION_USEEVENT ( 2 )
Code: Alles auswählen
#include "ot4xb.ch"
// ---------------------------------------------------------------------------
proc main()
local nDeviceId := 9 // change this value for your device ID
local hLineApp := 0
local nDevCnt := 0
local nVersion := 0x20000
local aLineParams := {24,0,0,2,0,0}
local result := @tapi32:lineInitializeExA(@hLineApp,AppInstance(),0,;
"Test",@nDevCnt,@nVersion,@aLineParams)
local hLine := 0
local conCargo := 0 // _var2con( XbaseArrayCodeblockOrObjectVariable )
if result == 0
? "lineInitializeEx() -> OK"
Thread():New():Start({|| LineEventsProc( aLineParams[5] , hLineApp)} )
result := @tapi32:lineOpenA(hLineApp,nDeviceId,@hLine,;
nVersion,0,conCargo,2,0x12,0)
if result == 0
? "lineOpen() -> OK"
while inkey(0) != 27 ; end
@tapi32:lineClose( hLine )
else
? "lineOpen() -> FAIL"
end
@tapi32:lineShutdown( hLineApp )
else
? "lineInitializeEx() -> FAIL"
end
if conCargo != 0 ; _conRelease( conCargo ) ; end
? "Press a key to exit .... "
inkey(0)
return
// ---------------------------------------------------------------------------
function LineEventsProc(hEvent,hLineApp)
local aMsg := AFill(Array(6),0)
? "------ LineEventsProc() ENTER ----- "
while( @kernel32:WaitForSingleObject(hEvent,-1) != -1 )
while( @tapi32:lineGetMessage(hLineApp,@aMsg,0) == 0 )
? "------ LineEventsProc() ----- "
? cPrintf( "hDevice : 0x%08X" , aMsg[1] )
? cPrintf( "dwMessageId : 0x%08X" , aMsg[2] )
? "cargo : " , _con2var( aMsg[3] )
? cPrintf( "dwParam1 : 0x%08X" , aMsg[4] )
? cPrintf( "dwParam2 : 0x%08X" , aMsg[5] )
? cPrintf( "dwParam3 : 0x%08X" , aMsg[6] )
? "------------------------------ "
end
end
? "------ LineEventsProc() EXIT ----- "
return NIL
// ---------------------------------------------------------------------------
Pablo Botella
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Tapi
Hallo,
ich sollte eine folgendes in eine Xbase++ Anwendung einbauen:
Telekom Telefonanlage
wenn Anruf kommt, in dbf nachsehen ob es die Nummer gibt.
wenn ja, Name bzw. Historie anzeigen.
Hat das jemand schon gemacht ?
Für den Anfang würde ich gerne eine Wählhilfe erstellen, z.B. beim ausgewählten Kunden auf Tel. klicken und der Wahlvorgang startet dann.
Würde mich über Beispiele freuen, aber auch über Angebote zur Realisierung, allerdings sollte bei Angeboten Erfahrung mit
Tapi, etc. vorhanden sein.
ich sollte eine folgendes in eine Xbase++ Anwendung einbauen:
Telekom Telefonanlage
wenn Anruf kommt, in dbf nachsehen ob es die Nummer gibt.
wenn ja, Name bzw. Historie anzeigen.
Hat das jemand schon gemacht ?
Für den Anfang würde ich gerne eine Wählhilfe erstellen, z.B. beim ausgewählten Kunden auf Tel. klicken und der Wahlvorgang startet dann.
Würde mich über Beispiele freuen, aber auch über Angebote zur Realisierung, allerdings sollte bei Angeboten Erfahrung mit
Tapi, etc. vorhanden sein.
Gruß
Klaus
Klaus
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Tapi
Hallo, Klaus.
Anrufe auslösen geht mit TapiRequestMakeCall() ganz simpel. Und für den Rest (Leitungsüberwachung) findest Du alles nötige eigentlich auch in diesem Thread.
Anrufe auslösen geht mit TapiRequestMakeCall() ganz simpel. Und für den Rest (Leitungsüberwachung) findest Du alles nötige eigentlich auch in diesem Thread.
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Tapi
Hallo Tom,
danke, habe das mal eingebaut, aber
Wenn ich z.B. über das ComCenter Fon gehe, wird die Nummer gewählt.
Muss ich sonst noch was machen ?
Gruß
Klaus
danke, habe das mal eingebaut, aber
Wenn ich z.B. über das ComCenter Fon gehe, wird die Nummer gewählt.
Muss ich sonst noch was machen ?
Gruß
Klaus
Gruß
Klaus
Klaus
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Tapi
Tom,
egal ob ich im Xbase++ Programm oder in der Wählhilfe selbst wählen lasse kommt die
Fehlermeldung.
Hingegen kann ich ja über ComCenter Fon wählen.
Werde das mal im Auge behalten.
egal ob ich im Xbase++ Programm oder in der Wählhilfe selbst wählen lasse kommt die
Fehlermeldung.
Hingegen kann ich ja über ComCenter Fon wählen.
Werde das mal im Auge behalten.
Gruß
Klaus
Klaus
-
- Rekursionen-Architekt
- Beiträge: 128
- Registriert: Mi, 26. Okt 2005 18:41
- Wohnort: Berlin
- Kontaktdaten:
Re: Tapi
EIne fertige Tapilösung mit Xbase++-Sourcecode zur Leitungsüberwachung und Meldung der Anrufernummer in das Xbase Programm gibt es hier: http://www.combifinanz.de/tools/.
Mittlerweile kann das ganze auch in eine DLL eingebunden werden und funktioniert auch mit Internet-Telefonie.
Grüße
Olaf870
Mittlerweile kann das ganze auch in eine DLL eingebunden werden und funktioniert auch mit Internet-Telefonie.
Grüße
Olaf870