d***@gmail.com
2013-01-16 21:19:37 UTC
Have observed this with my company's TSP (same issue as expressed in Windows Desktop Development Forums at:
[http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/1d9646d9-ea18-4bfa-8214-d017cab97d56]
The same TSP that has been working well with XP and Windows 7 fails to work on Windows 8 with respect to inbound calls. Outbound seems to be fine.
On receipt of an inbound call, our TSP issues a LINE_NEWCALL msg, followed by a LINE_CALLSTATE msg. This is usually followed by a TSPI_lineGetCallInfo() and a
TSPI_lineAnswer().
On Windows 8, we see a TSPI_lineCloseCall() invocation to TSP even before the LINE_NEWCALL and LINE_CALLSTATE messages are completely processed.
If you compare the tapisrv tracing in Windows 7 vs. Windows 8, on receipt of the LINE_NEWCALL msg, there is a 'DestorytCall' immediately issued after the 'CreateCall'. This has the direct (or perhaps side) effect of TAPI issuing the TSPI_lineCloseCall(). When the LINEEVENT message returns, htCall has a Null value. In this case, we delay 250 ms and send the LINE_NEWCALL msg again. (four times).
The same result occurs.
***********************
WINDOWS 8 TRACE:
***********************
[3344] 15:37:25:615: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:25:615: [TRACE] LineEventProc
[3344] 15:37:25:615: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:25:615: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:25:615: [TRACE] CreatetCall: NewObject returned 0x10322
[3344] 15:37:25:615: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:25:662: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:25:927: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:25:927: [TRACE] LineEventProc
[3344] 15:37:25:927: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:25:927: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:25:927: [TRACE] CreatetCall: NewObject returned 0x10311
[3344] 15:37:25:927: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:25:927: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:178: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:26:178: [TRACE] LineEventProc
[3344] 15:37:26:178: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:26:178: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:26:178: [TRACE] CreatetCall: NewObject returned 0x10300
[3344] 15:37:26:178: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:26:178: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:443: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:26:443: [TRACE] LineEventProc
[3344] 15:37:26:443: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:26:443: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:26:443: [TRACE] CreatetCall: NewObject returned 0x102ff
[3344] 15:37:26:443: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:26:443: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:443: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=2, P1=x2, P2=x1, P3=x0
[3596] 15:37:26:443: [INFO ] Got a line spevent, htLine = 0x103bb, htCall = 0x0, dwMsg = 0x2
***********************
WINDOWS 7 TRACE:
***********************
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=0000000000000000, msg=1f4, P1=x5f48790, P2=x5f487b0, P3=x0
[4984] 15:46:18:464: [TRACE] LineEventProc
[4984] 15:46:18:464: [TRACE] CreatetCall: enter, ptLine=0000000005025B30
[4984] 15:46:18:464: [INFO ] CreatetCall: calling NewObject ptCall 0000000005025C50
[4984] 15:46:18:464: [TRACE] CreatetCall: NewObject returned 0x101ee
[4984] 15:46:18:464: [TRACE] CreatetCall: exit, new ptCall=0000000005025C50
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=00000000000101EE, msg=2, P1=x2, P2=x1, P3=x0
[4716] 15:46:18:464: [INFO ] Got a line spevent, htLine = 0x10300, htCall = 0x101ee, dwMsg = 0x2
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=00000000000101EE, msg=2, P1=x2, P2=x0, P3=x0
[4716] 15:46:18:464: [TRACE] LineEventProc
[4716] 15:46:18:464: [EVENT] LineEventProc: LINE_CALLSTATE event x2
[4716] 15:46:18:464: [TRACE] CreatetCallClient: enter, ptCall=0000000005025C50,
[4716] 15:46:18:464: [INFO ] CreatetCallClient: calling NewObject, ptCallClient = [0000000005025D10]
[4716] 15:46:18:464: [TRACE] CreatetCallClient: exit, new ptCallClient=0000000005025D10
[4716] 15:46:18:464: [TRACE] CreatetCallClient: enter, ptCall=0000000005025C50,
[4716] 15:46:18:464: [INFO ] CreatetCallClient: calling NewObject, ptCallClient = [0000000005025DE8]
[4716] 15:46:18:464: [TRACE] CreatetCallClient: exit, new ptCallClient=0000000005025DE8
[4716] 15:46:18:464: [INFO ] LineEventProc: i = [0] corresponding ptCallClient [0000000005025DE8]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptCallClient->ptLineClient[0000000005025A00]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptLineClient->ptLineApp[0000000005022310]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->InitContext to ptLineApp[0000000005022310]->InitContext of [00000000800003FF]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->OpenContext to [00000000800003EE]
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
[4716] 15:46:18:464: [INFO ] LineEventProc: sending LINE_APPNEWCALL, ptClient[0000000005021CA0]
[4716] 15:46:18:464: [TRACE] WriteEventBuffer - enter
[4716] 15:46:18:464: [TRACE] WriteEventBuffer: SetEvent 0000000000000CD0 for local client
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
[4716] 15:46:18:464: [TRACE] WriteEventBuffer - enter
[4716] 15:46:18:464: [TRACE] WriteEventBuffer: SetEvent 0000000000000CD0 for local client
[4716] 15:46:18:464: [INFO ] LineEventProc: i = [1] corresponding ptCallClient [0000000005025D10]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptCallClient->ptLineClient[0000000005026600]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptLineClient->ptLineApp[00000000050264F0]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->InitContext to ptLineApp[00000000050264F0]->InitContext of [00000000800003FF]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->OpenContext to [0000000000000000]
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
Has anyone worked around this or found a solution?
[http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/1d9646d9-ea18-4bfa-8214-d017cab97d56]
The same TSP that has been working well with XP and Windows 7 fails to work on Windows 8 with respect to inbound calls. Outbound seems to be fine.
On receipt of an inbound call, our TSP issues a LINE_NEWCALL msg, followed by a LINE_CALLSTATE msg. This is usually followed by a TSPI_lineGetCallInfo() and a
TSPI_lineAnswer().
On Windows 8, we see a TSPI_lineCloseCall() invocation to TSP even before the LINE_NEWCALL and LINE_CALLSTATE messages are completely processed.
If you compare the tapisrv tracing in Windows 7 vs. Windows 8, on receipt of the LINE_NEWCALL msg, there is a 'DestorytCall' immediately issued after the 'CreateCall'. This has the direct (or perhaps side) effect of TAPI issuing the TSPI_lineCloseCall(). When the LINEEVENT message returns, htCall has a Null value. In this case, we delay 250 ms and send the LINE_NEWCALL msg again. (four times).
The same result occurs.
***********************
WINDOWS 8 TRACE:
***********************
[3344] 15:37:25:615: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:25:615: [TRACE] LineEventProc
[3344] 15:37:25:615: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:25:615: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:25:615: [TRACE] CreatetCall: NewObject returned 0x10322
[3344] 15:37:25:615: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:25:662: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:25:927: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:25:927: [TRACE] LineEventProc
[3344] 15:37:25:927: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:25:927: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:25:927: [TRACE] CreatetCall: NewObject returned 0x10311
[3344] 15:37:25:927: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:25:927: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:178: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:26:178: [TRACE] LineEventProc
[3344] 15:37:26:178: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:26:178: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:26:178: [TRACE] CreatetCall: NewObject returned 0x10300
[3344] 15:37:26:178: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:26:178: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:443: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=1f4, P1=x187b06c0, P2=x187b06e0, P3=x0
[3344] 15:37:26:443: [TRACE] LineEventProc
[3344] 15:37:26:443: [TRACE] CreatetCall: enter, ptLine=000000EA18125250
[3344] 15:37:26:443: [INFO ] CreatetCall: calling NewObject ptCall 000000EA18125370
[3344] 15:37:26:443: [TRACE] CreatetCall: NewObject returned 0x102ff
[3344] 15:37:26:443: [TRACE] CreatetCall: exit, new ptCall=000000EA18125370
[3344] 15:37:26:443: [TRACE] DestroytCall: enter, ptCall=x000000EA18125370
[3344] 15:37:26:443: [INFO ] LineEventProcSP: HTapiLine=00000000000103BB, HTapiCall=0000000000000000, msg=2, P1=x2, P2=x1, P3=x0
[3596] 15:37:26:443: [INFO ] Got a line spevent, htLine = 0x103bb, htCall = 0x0, dwMsg = 0x2
***********************
WINDOWS 7 TRACE:
***********************
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=0000000000000000, msg=1f4, P1=x5f48790, P2=x5f487b0, P3=x0
[4984] 15:46:18:464: [TRACE] LineEventProc
[4984] 15:46:18:464: [TRACE] CreatetCall: enter, ptLine=0000000005025B30
[4984] 15:46:18:464: [INFO ] CreatetCall: calling NewObject ptCall 0000000005025C50
[4984] 15:46:18:464: [TRACE] CreatetCall: NewObject returned 0x101ee
[4984] 15:46:18:464: [TRACE] CreatetCall: exit, new ptCall=0000000005025C50
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=00000000000101EE, msg=2, P1=x2, P2=x1, P3=x0
[4716] 15:46:18:464: [INFO ] Got a line spevent, htLine = 0x10300, htCall = 0x101ee, dwMsg = 0x2
[4984] 15:46:18:464: [INFO ] LineEventProcSP: HTapiLine=0000000000010300, HTapiCall=00000000000101EE, msg=2, P1=x2, P2=x0, P3=x0
[4716] 15:46:18:464: [TRACE] LineEventProc
[4716] 15:46:18:464: [EVENT] LineEventProc: LINE_CALLSTATE event x2
[4716] 15:46:18:464: [TRACE] CreatetCallClient: enter, ptCall=0000000005025C50,
[4716] 15:46:18:464: [INFO ] CreatetCallClient: calling NewObject, ptCallClient = [0000000005025D10]
[4716] 15:46:18:464: [TRACE] CreatetCallClient: exit, new ptCallClient=0000000005025D10
[4716] 15:46:18:464: [TRACE] CreatetCallClient: enter, ptCall=0000000005025C50,
[4716] 15:46:18:464: [INFO ] CreatetCallClient: calling NewObject, ptCallClient = [0000000005025DE8]
[4716] 15:46:18:464: [TRACE] CreatetCallClient: exit, new ptCallClient=0000000005025DE8
[4716] 15:46:18:464: [INFO ] LineEventProc: i = [0] corresponding ptCallClient [0000000005025DE8]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptCallClient->ptLineClient[0000000005025A00]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptLineClient->ptLineApp[0000000005022310]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->InitContext to ptLineApp[0000000005022310]->InitContext of [00000000800003FF]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->OpenContext to [00000000800003EE]
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
[4716] 15:46:18:464: [INFO ] LineEventProc: sending LINE_APPNEWCALL, ptClient[0000000005021CA0]
[4716] 15:46:18:464: [TRACE] WriteEventBuffer - enter
[4716] 15:46:18:464: [TRACE] WriteEventBuffer: SetEvent 0000000000000CD0 for local client
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
[4716] 15:46:18:464: [TRACE] WriteEventBuffer - enter
[4716] 15:46:18:464: [TRACE] WriteEventBuffer: SetEvent 0000000000000CD0 for local client
[4716] 15:46:18:464: [INFO ] LineEventProc: i = [1] corresponding ptCallClient [0000000005025D10]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptCallClient->ptLineClient[0000000005026600]
[4716] 15:46:18:464: [INFO ] LineEventProc: ptLineClient->ptLineApp[00000000050264F0]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->InitContext to ptLineApp[00000000050264F0]->InitContext of [00000000800003FF]
[4716] 15:46:18:464: [INFO ] LineEventProc: setting msg->OpenContext to [0000000000000000]
[4716] 15:46:18:464: [INFO ] FMsgDisbled: dwAPIVersion<= TAPI_VERSION3_0, msg will be enabled
[4716] 15:46:18:464: [TRACE] FMsgDisabled return 0
Has anyone worked around this or found a solution?