Objective Systems recently released version 2.0.0 of our CSTADLL product. Version 2.0.0 is a major release of CSTADLL and offers the following new features:
Multi-threaded client applications can use CSTADLL more effectively than before. Prior to version 2.0.0 a multi-threaded client application would have to synchronize around the message exchanges with the PBX. So, for example, if thread 1 and thread 2 needed to send messages to the PBX at about the same time, with thread 2 coming in just a tiny bit later, thread 2 would have to wait until thread 1 completed its exchange with the PBX. With version 2.0.0 this synchronization is not necessary.
For CSTA phase 3 version 2.0.0 includes classes generated from the phase 3 edition 4 specifications. Previously the classes were generated from the phase 3 edition 2 specifications. The edition 4 specifications include numerous additional messages.
Version 2.0.0 includes the new phase 3 ConsultationCall() method that was introduced in version 1.3.3 to address an issue.
The behavior of the phase 3 TransferCall() method is now more in line with the description of the Transfer Call message in the CSTA phase 3 documentation. Specifically, the TransferCall() method now requires that a Consultation Call message be sent first (using the ConsultationCall() method).
The main DLL provided with the version 2.0.0 kit is now built with Visual Studio 2008. Previously the DLL was built with Visual Studio 2005. A DLL built with Visual Studio 2005 is also provided in the version 2.0.0 kit.
The main DLL has been renamed CSTAAllPhases.dll. Previously the DLL was somewhat awkwardly named CSTAAllPhasesDLL.dll.
The top-level folder in the version 2.0.0 distribution kits is named CSTADLLv<n1><n2><n3> so it's consistent with the name of the product. Previously the top-level folder was named CSTAAllPhasesDLLv<n1><n2><n3>.
The VB and C# sample clients no longer display the hexadecimal bytes of the response message sent back by the PBX. This change reduces the clutter in the clients' output. The bytes can be seen by using the logging feature.
New phase 1 and phase 2 AnswerCall() signatures have been added that accept the connection id of the call to answer and the device to use to answer the call. Phase 3 already had a similar signature.
The VB and C# sample clients now have consistent Answer Call functionality, regardless of what CSTA phase is being used. In all cases the Answer Call functionality in the clients works against the most recently made call done with the Make Call functionality.
Similarly, the VB and C# sample clients now have consistent Monitor Stop functionality across all phases. In all cases the Monitor Stop functionality in the clients works against the most recently started monitor done with the Monitor Start functionality.
The classes for Panasonic PBX devices now include a PDFStart() method and a PDFStop() method. The PDF (Physical Device Features) Start and PDF Stop messages are Panasonic-specific messages that sometimes need to bracket other messages that deal with certain telephony devices like portable station devices.
Vendor-specific ASN.1 specifications are now located in folders named "proprietary" in the CSTADLL hierarchy.
And coming in version 2.0.1:
- There will be a new phase 3 SingleStepTransfer() signature that accepts the connection id of the call to transfer and the device to which the call is to be transferred.
- The ConsultationCall() and TransferCall() functionality will be consistent across all three phases. All phases will offer a ConsultationCall() method, and all phases will offer a TransferCall() signature that requires a ConsultationCall() be done first. Both sample clients will offer a Consultation Call option for all three phases, and the Transfer Call option in all three phases will send a Consultation Call message first.
- The samples that are provided in the kit, including the VB and C# sample clients, will have Makefiles for building the sample code in addition to the Visual Studio project files.
- The sample Visual Studio projects that are provided in the kit will be Visual Studio 2008 project files instead of Visual Studio 2005 project files.