Link to home
Start Free TrialLog in
Avatar of shvetsov
shvetsov

asked on

TAPI lineAccept

I've created a program using TAPI interface, and here is it's fragment:

void AcceptThread(LPVOID lpVoid)
{ g_lAcceptID = lineAccept((HCALL)lpVoid, NULL, 0);
  g_hevtAccept = CreateEvent(NULL, FALSE, FALSE, NULL);
  WaitForSingleObject(g_hevtAccept, INFINITE);
  g_lAcceptID = 0;
  CloseHandle(g_hevtAccept);
  if(g_lAcceptResult == LINECALLSTATE_CONNECTED)
   {
   }
  else
   HangUp();
}

VOID FAR PASCAL lineCallbackFunc(HANDLE hDevice, DWORD dwMsg,
                                 DWORD dwCallbackInstance, DWORD dwParam1,
                                                 DWORD dwParam2, DWORD dwParam3)
{ switch(dwMsg)
   { case LINE_CALLSTATE:
       switch(dwParam1)
          {
              case LINECALLSTATE_OFFERING:
              AddToLog("Ring");
            RunThread((LPTHREAD_START_ROUTINE)AcceptThread, (LPVOID)hDevice);
               break;
              case LINECALLSTATE_ACCEPTED:
              AddToLog("Call accepted");
        }
       if(g_lAcceptID != 0)
         { g_lAcceptResult = dwParam1;
           SetEvent(g_hevtAccept);
         }
   }
}

My program receives ring notification, starts lineAccept() in separate thread,
lineAccept() returns Ok, but modem doesn't really answer the call.
ASKER CERTIFIED SOLUTION
Avatar of NickRepin
NickRepin

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of NickRepin
NickRepin

Your first answer impressed me very much :-)