TAPI ankommende Rufnummer anzeigen



  • 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


  • Mod

    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


  • Mod

    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.



  • also wenn ich es mit dem tapi-browser (tb20.exe) mache klapp alles. 🙄

    TSP = CorNet-TS TAPI Service Provider 1

    mfg



  • ich hab es rausbekommen 🙂
    es lag an der tapi version. hab es jetzt auf 2.0 geändert (vorher 2.2) jetzt geht es 🙂

    mfg


  • Mod

    Ist das auch im TB20 nachvollziehbar? Das ist ja schon eigentümlich...



  • da hab ich mich wohl zu früh gefreut. hat doch nix damit zu tun.
    es geht scheinbar nur wenn ich mit dem tapi20.exe browser auch die line geöffnet habe.
    😡 so ein mist!



  • habs hinbekommen 😉


  • Mod

    mlc schrieb:

    habs hinbekommen 😉

    Problem war?



  • scheinbar ging es dem telefon/programm zu schnell 😉
    wenn ich nach lineMakeCall z.B. ein cin >> i; einbaue kommt die ganze nummer an.

    so jetzt da hin zurück weshalb ich ja eigentlich hier war. gibt es noch eine andere methode als die beschriebene die nummer des anrufers herauszubekommen (Tapi v2.2)??

    mfg



  • hi,

    wie komme ich denn von

    dwTotalSize=x1000
    dwNeededSize=x49
    dwUsedSize=x49
    dwStringFormat=x1, ASCII
    dwStringSize=x31
    dwStringOffset=x18

    zu

    dwTotalSize=x1000
    dwNeededSize=x49
    dwUsedSize=x49
    dwStringFormat=x1, ASCII
    dwStringSize=x31
    dwStringOffset=x18
    65687552 20202020 20202020 20202020 Ruhe
    20202020 20202020 20202020 20202020
    20202020 20202020 20202020 3e202020 >
    xxxxxx00 xxxxxxxx xxxxxxxx xxxxxxxx

    ???

    mfg


  • Mod

    MSDN lesen:
    dwStringOffset ist das Byte Offset zum Start der Struktur an der diese Daten stehen.

    http://msdn2.microsoft.com/en-us/library/ms737266.aspx



  • hi,

    du hattest geschrieben das wenn ich die leitung öffne mir die callbackfunc den entsprechenden call per line_newcall liefert.
    nun bei mir geht das programm erst gar nicht in die callbackfunc. muss ich da was bestimmtes beachten? hab schon viel rumprobiert.

    und danke für

    MSDN lesen:
    dwStringOffset ist das Byte Offset zum Start der Struktur an der diese Daten stehen.

    http://msdn2.microsoft.com/en-us/library/ms737266.aspx

    wer lesen kann ist klar im vorteil 😉

    mfg


  • Mod

    Wie hast Du lineInitialize(ex) aufgerufen?
    Hast Du den entsprechenden lineOpen mit dem entsprechenden owner Flag gemacht?



  • hi,
    habe es so gemacht

    lineInit.dwOptions = LINEINITIALIZEEXOPTION_USEHIDDENWINDOW;
    
    	lResult = ::lineInitializeEx(&hLineApp,
    								NULL,
    								lineCallbackFunc,
    								"Tapi",
    								&dwNumDevs,
    								&dwApiVersion,
    								&lineInit);
    

    und

    lResult = ::lineOpen(hLineApp,
    					   8,							
    					   &hLine,
    					   dwApiVersion,				
    					   NULL, 					
    					   NULL,
    					   LINECALLPRIVILEGE_OWNER,
    					   LINEMEDIAMODE_INTERACTIVEVOICE,
    					   NULL);
    

    mfg


  • Mod

    Das ist so weit ich es sehen kann korrekt so.
    Und was kommt bei Dir in der Callback Routine an?



  • na scheinbar nix. hab ne ausgabe drin. diese wird aber nie ausgegeben. also denke ich mal das sie nie aufgerufen wird.
    hab das problem jetzt so gelöst das ich mit lineGetMessage über LINE_APPNEWCALL mir den call hole und dann die nummer. ist auch ok so.

    mfg


  • Mod

    Ich arbeite mit einem eigenen Thread und einem Event, der steuert wann ich lineGetMessage aufrufe. Die Callback Methode habe ich seit Win95 Zeiten nicht mehr verwendet müsste aber denoch gehen.



  • ich glaube ich bleibe auch bei lineGetMessage 😉
    danke für deine tipps!

    mfg


Anmelden zum Antworten