TAPI ankommende Rufnummer anzeigen
-
moin meisters ...
Hat schon mal jemand mit der Tapi32.dll gearbeitet ?
Also ich habe soweit fast alles zusammen, nun hänge ich am Problem,
wie bekomme ich die eingehende Rufnummer heraus ?Es muß ja eine "lineGet..."-Funktion sein, aber welche, wenn ich beim Thema Tapi etwas mehr Durchblick hätte wüßte ich sicher welche

Besten Dank im Voraus
mfg
RB
-
Hast du schon rausgefunden wie das geht ?
-
Du musst die entsprechende Leitung öffnen. Über die Callback Funktion bekommst Du den entsprechenden Call per LINE_NEWCALL angeboten. Mit dem entsprechenenden Callhandle kannst Du mit lineGetCallInfo die LINECALLINFO Struktur abholen. Dort findest Du die dwCallerID Einträge.
Ob die Info überhaupt geliefert wird kannst Du anhand der Flags in dwCallerIDFlags prüfen.
Siehe http://msdn2.microsoft.com/en-us/library/ms735527.aspx
Je nach TSP den Du hast ist dies ein entsprechender unformatierter String der evtl. eine führende 0 für die Amtsholung enthält. Manchmal ist auch keine 0 vorhanden.
-
// Get the caller information BSTR callInfo = ::SysAllocString(L""); hr = pCallInfo->get_CallInfoString(CIS_CALLEDIDNUMBER,&callInfo); sendToOutputBox((const unsigned short * )callInfo ,hr); ::SysFreeString(callInfo);
-
@Multiplex_off: Das sieht so unter Tapi3.0 aus. Unter 2.0 ist dies nicht so möglich.
-
Hi,
kann vielleicht jemand mal den Code (C++) zum initialisieren von tapi posten??
Bekomme immer komische Fehlermeldungen. Es ging auch schon mal, aber jetzt nicht mehr.
Dann könnte ich mal schauen wo der Fehler sitzt.gruß mlc
-
Zeig mir Deinen Code und sag mir weclhe Fehler Du bekommst.
Ansonsten gibt es massenweise Code auf den TAPI-FAQ Seiten.
Und in Codeproject hast Du auch nicht gesucht?!
http://www.codeproject.com/useritems/IVR.asp
-
also zur Zeit bekomme ich folgenden Fehler:
undefined reference to `lineInitializeExW@28'
hatte ich früher auch schon mal und auch irgendwie wegbekommen.weiß nur nicht mehr wie

#include <QApplication> #include "Tapi.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); long lResult; LINEINITIALIZEEXPARAMS lineInit; HLINEAPP hLineApp = 0; DWORD dwApiVersion = 0x00020002; DWORD dwNumDevs = 0; memset (&lineInit, 0 , sizeof(lineInit)); lineInit.dwTotalSize = sizeof(lineInit); lineInit.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT; lResult = lineInitializeEx(&hLineApp, NULL, NULL, NULL, &dwNumDevs, &dwApiVersion, &lineInit); return 0; }mfg
-
#pragma comment(lib, "Tapi32.lib")!?
-
Das bringt nichts. Wird ignoriert.
-
lolz
-
mlc schrieb:
Das bringt nichts. Wird ignoriert.
Das wird nicht ignoriert. Das ist genau das Problem. Die tapi32 Import-Lib wird nicht gefunden.
-
So wie es aussieht hat er kein MS Compiler... sonst würde die Fehlermeldung anders aussehen...
Aber wenn er keinen MS-Compiler hat, wie soll dann das TAPI Zeugs vernünftig funktionieren!?
-
Nun die Lib wird dennoch benötigen.
Und Tapi ist nicht compiler-abhängig...
-
lib sollte eigentlich schon importiert sein (stand schon in der pro datei). scheinbar kann mingw nichts damit anfangen.
na egal.hab die funktionen jetzt aus der tapi32.dll geholt und es geht.
welche funktion sollte ich verwenden wenn ich die telfonnummer des anrufers haben will (tapi v2.2)?mfg
mlc
-

jetzt weiß ich wieder warum ich mir diesen theard angeschaut hab. antwort auf meine frage steht ja schon da.
sorry.
schönen dienstag noch
-
hab jetzt doch noch ne frage. starte mit lineMakeCall den anruf, aber es werden immer nur die ersten 3 stellen ans telefon geschickt

könnt ihr mir sagen woran das liegt?lResult = myLineMakeCall(hLine, &hCall, "123456789", 0, NULL);mfg
mlc
-
Nein! Wüsste keinen Grund wenn ich deisen Code sehe.
-
so. hab es jetzt noch mal mit vs6.0 versucht.
#include "stdafx.h" #include <iostream> #include "Tapi.h" #pragma comment(lib, "Tapi32.lib") int main(int argc, char* argv[]) { long lResult = 0; HLINEAPP hLineApp = NULL; HLINE hLine = NULL; HCALL hCall = NULL; DWORD dwNumDevs = 0; DWORD dwApiVersion = 0x00020002; LINEINITIALIZEEXPARAMS lineInit; memset (&lineInit, 0 , sizeof(lineInit)); lineInit.dwTotalSize = sizeof(lineInit); lineInit.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT; lResult = ::lineInitializeEx(&hLineApp, NULL, NULL, NULL, &dwNumDevs, &dwApiVersion, &lineInit); if(lResult != 0) std::cout << "Fehler!! " << std::endl; else std::cout << "Tapi initialize! " << "Line Devices On System: " << dwNumDevs << std::endl; lResult = ::lineOpen(hLineApp, 8, &hLine, dwApiVersion, 0, 0, LINECALLPRIVILEGE_NONE, LINEMEDIAMODE_INTERACTIVEVOICE, 0); if(lResult != 0) std::cout << "Fehler!! " << std::endl; else std::cout << "Line Open! " << std::endl; lResult = ::lineMakeCall(hLine, &hCall, "0123456789", 0, NULL); if(lResult < 0) std::cout << "Fehler!! " << std::endl; else std::cout << "Call! " << std::endl; }klappt soweit auch. nur das halt bei telefon nur 0123 ankommt. komme nicht weiter.
keiner eine idee??gruß
mlc
-
Ich arbeite extrem viel mit der Tapi. Ich kan Dir hierzu nichts sagen.
Versuch es dochmal mit einem anderen TSP.Was ist denn das für ein TSP?
Prüfe den TSP mal mit dem TB20.EXE (Tapi-Browser), evtl. verhält der sich ja falsch.