experchange > win32.programmer.* > win32.programmer.tapi

Dan Hentschel (03-02-15, 04:31 PM)
I will preface my message by stating that I am quite new to TAPI and TSPs. I have inherited support of a TSP in my organization, and I am racing to get up to speed on the topic. I apologize in advance if I ask a stupid question or make an incorrect assertion or inference.

I) We just recently made a beta version of our latest TSP available to a select few customers. It was a very minor change to our currently released driver, with only a few changes to allow for compatibility with our upcoming phone system release.

II) These customers universally report that, on all PCs tested, after upgrading to the latest Allworx TSP, they no longer see Allworx as an option in 1) dialer.exe, 2) JulMar TAPI phone dialer, 3) MS Outlook. All customers are running 64-bit Win7.

III) Customers do not have any issues seeing the Allworx TSP listed under the Phone and Modem control panel, and they can configure the driver withoutissue.

IV) We have been unable to reproduce the customers' results on any in-housemachine. We have tried VMs, physical devices, fresh OS installs, old-well-used OS installs, etc. Every single instance of PC in-house works as expected.

V) In debugging with a customer, I asked him to turn on RAS logging (netsh ras set tracing tapisrv enable) on a non-functioning PC. Here is what I seeon application initialization in the log file:

[5564] 13:46:47:266: [INFO ] LInitialize: calling NewObject ptLineApp 0000000000826300, pParams->InitContext 800003ff
[5564] 13:46:47:266: [INFO ] LInitialize: NewObject returned hLineApp 101e3
[5564] 13:46:47:266: [INFO ] LInitialize: initializing ptLineApp->InitContext with 800003ff
[5564] 13:46:47:266: [INFO ] LInitialize: initialized ptLineApp->dwAPIVersion with 20002
[5564] 13:46:47:266: [INFO ] LInitialize: returning pParams->hLineApp 00000000000101E3
[5564] 13:46:47:266: [INFO ] LInitialize: returning pParams->dwNumDevs 0000000000000007
[5564] 13:46:47:266: [TRACE] lineInitialize: exit, result=x0

In contrast to this, I see the following on my own machine:

[1444] 13:34:09:693: [INFO ] LInitialize: calling NewObject ptLineApp 00000000037E22B0, pParams->InitContext 800003ff
[1444] 13:34:09:693: [INFO ] LInitialize: NewObject returned hLineApp 103ee
[1444] 13:34:09:693: [INFO ] LInitialize: initializing ptLineApp->InitContext with 800003ff
[1444] 13:34:09:693: [INFO ] LInitialize: initialized ptLineApp->dwAPIVersion with 20002
[1444] 13:34:09:693: [INFO ] ServerInit: NumProviders=5
[1444] 13:34:09:693: [INFO ] ServerInit: ProviderFilename=unimdm.tsp
[1444] 13:34:09:708: [INFO ] ServerInit: u: Calling TSPI_providerInit
[1444] 13:34:09:708: [INFO ] ServerInit: u init'd, dwNumLines=0, dwNumPhones=0
[1444] 13:34:09:708: [INFO ] ServerInit: ProviderFilename=kmddsp.tsp
[1444] 13:34:09:708: [INFO ] ServerInit: k: Calling TSPI_providerInit
[1444] 13:34:09:708: [INFO ] ServerInit: k init'd, dwNumLines=0, dwNumPhones=0
[1444] 13:34:09:708: [INFO ] ServerInit: ProviderFilename=ndptsp.tsp
[1444] 13:34:09:708: [INFO ] ServerInit: n: Calling TSPI_providerInit
[1444] 13:34:09:708: [INFO ] ServerInit: n init'd, dwNumLines=5, dwNumPhones=0
[1444] 13:34:09:708: [INFO ] ServerInit: ProviderFilename=hidphone.tsp
[1444] 13:34:09:708: [INFO ] ServerInit: h: Calling TSPI_providerInit
[1444] 13:34:09:708: [INFO ] ServerInit: h init'd, dwNumLines=0, dwNumPhones=0
[1444] 13:34:09:708: [INFO ] ServerInit: ProviderFilename=allworxTSP.tsp
[1444] 13:34:10:411: [INFO ] ServerInit: a: Calling TSPI_providerInit
[1444] 13:34:10:411: [INFO ] ServerInit: a init'd, dwNumLines=1, dwNumPhones=0
[1444] 13:34:10:411: [INFO ] LInitialize: returning pParams->hLineApp 00000000000103EE
[1444] 13:34:10:411: [INFO ] LInitialize: returning pParams->dwNumDevs 0000000000000006
[1444] 13:34:10:411: [TRACE] lineInitialize: exit, result=x0

Note that my PC lists all the built-in MS TSPs in addition to our Allworx one. The customer's PC doesn't list any TSPs at all.

VI) In a phone discussion, I went through this customer's filesystem and registry and verified that all driver files and registry entries look correcton his PC.

VII) This customer later determined, on his own through experimentation, that he can "fix" the problem by adding Microsoft Windows Remote Service Provider under Phone and Modem in the control panel. Once this provider is manually added to the list, the Allworx TSP magically appears in all their TAPIapplications. They have verified this behavior on more than one PC.

I'm at a loss at this point. I can't reproduce the behavior. I can't come up with an explanation for the reported behavior, nor the effectiveness of the customer's fix. Any recommendations?
lbukys (11-20-18, 06:47 PM)
We discovered that the cause was WinSock initialization. The service that runs the TSP driver used to initialize WinSock itself. Somewhere among Windows 7 updates and definitely in Windows 10, it no longer does that. So a TSP driver that needs WinSock must initialize it itself instead of depending on the service to do it.
Similar Threads