Windows NT, Windows 2000 and Windows XP PBX Driver Development Information

CSTA Server

The CSTA Server DLL provides an alternate PBX driver interface, called the CSTA Services [PBX] Driver Interface (CSDI), for use in passing CSTA request, response, and event messages between a PBX Driver and the Telephony Server.

The CSTA Server is always loaded by the Telephony Server. CSDI compliant drivers do not need to load any additional software to load their drivers.

Driver Debugging Strategies

The Tserver runs as an NT Service which makes debugging PBX drivers difficult. This SDK includes an executable version of the Tserver (TSRVSDK.EXE) which may be useful in developing and debugging your PBX Driver. This executable still requires all of the supporting DLLs as does the Service version of the Tserver (TSRV.EXE). A good way to install TSRVSDK.EXE is to place it in the same directory as TSRV.EXE.

Note:

TSRVSDK.EXE does not call tdiStopDriver(), the Driver's unload function. You must test your PBX driver with TSRV.EXE running as a service to test your unload routine.

To test PBX driver unload, stop the TSAPI Telephony Services Service from the Services control panel. If an error occurs indicating that the Tserver did not respond to the stop request, verify that nothing in the Driver's tdiStopDriver() function is hanging. Look in the Tserver Error Log for an entry "UNLDDRV: Freeing the library <drivername.dll>". This entry indicates that the Tserver called the Driver's tdiStopDriver() function and received a successful result (TRUE) from the Driver. If this message is not in the Error Log then the Driver is hung somewhere in its unload function. The Tserver will not finish unloading until the Driver does.

Note:

The Driver must not return from the tdiStopDriver() function until it has completely stopped all of its threads and cleaned up all of its resources. If the Driver still has something running after it returns from tdiStopDriver(), TSRV.EXE will abnormally terminate because the Tserver frees the driver library upon a successful return from tdiStopDriver(). If the Driver tries to access memory after it has been freed, abnormal termination will occur.

Issue 1 October 2003 191

Page 191
Image 191
Avaya 1.3 manual Csta Server, Driver Debugging Strategies