Avaya 1.3 Computer Accessories User Manual


 
Windows NT, Windows 2000 and Windows XP PBX Driver Development Information
Issue 1 October 2003 191
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:
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:
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.