Tapi - Gespräch beenden geht nicht ?



  • Hallo,
    ich bin gerade dabei mein Handy (Nokia E7) mittels Tapi zu steuern. Ich gehe da wie folgt vor:

    1. Initialisieren:

    LINEINITIALIZEEXPARAMS lineInit;
    
    	memset (&lineInit, 0 , sizeof(lineInit));
    	lineInit.dwTotalSize = sizeof(lineInit);
    	lineInit.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT;
    
    	lResult = lineInitializeEx(&hLineApp,
                                    NULL,
                                    NULL,
                                    NULL,
                                    &dwNumDevs,
                                    &dwApiVersion,
    								&lineInit);
    

    2. Line öffnen:

    lResult = lineOpen(hLineApp,
    					   10,
    					   &hLine,
                           dwApiVersion,
                           0,
                           0,
                           LINECALLPRIVILEGE_NONE,
                           LINEMEDIAMODE_INTERACTIVEVOICE,
    					   0);
    

    3. Anrufen:

    AnsiString CallNumber = "+49" + Edit1->Text;
    	char *ch = new char[CallNumber.Length()+1];
    	strcpy(ch, CallNumber.c_str());
    
    	lResult = lineMakeCall(hLine,
    							 &hCall,
    								ch,
    								0,
    								NULL);
    	delete ch;
    

    Soweit geht auch alles 😃 Nun möchte ich aber dieses Gespräch mit einem klick auf einen Button beenden. Im www habe ich dazu folgendes gefunden:

    lResult = lineDrop(hCall,NULL,0);
    lResult = lineDeallocateCall(hCall);
    lResult = lineShutdown(hLineApp);
    

    Der LineDrop()-Befehl sollte eigentlich das Gespräch beenden. Doch das macht er nur, wenn der klick auf diesen Button unmittelbar während des Rufaufbaus kommt. Dabei hat das Handy noch nicht gewählt.

    Sobald der Anruf steht, ist diese Funktion Erfolglos 😕

    Hat jemand einen Rat???

    Gruß
    Torsten



  • Ich kann dir bei deinem eigentlichen Problem nicht helfen, aber dort ist trotzdem ein Fehler in deinem Code.

    delete ch;
    

    sollte

    delete[] ch;
    

    heißen, ansonsten hast du ein Speicherleak.

    Du kannst nach den Funktionen ja mal bei Google suchen, evtl. hast du einen wichtigen Parameter nicht oder falsch gesetzt.


Log in to reply