What's New in Version 3.0 |
In addition to one-step/blind transfer, AddTapi.NET 3.0 supports 2-step or consultation call transfer. To start a 2-step transfer, call SetupTransfer to create a new consultation call. Wait until call state changes to Dialtone, then use Dial(String) to dial the destination number for the transfer. When consultation call is connected, use CompleteTransfer(TapiCall, Boolean) to complete the transfer.
New Park(String) and Unpark(String) methods were added to park/unpark calls. Version 3.0 supports both directed and nondirected call parking.
New version adds support for 3-way conference (if supported by the telephony system). To create a 3-way conference, call SetupTransfer on the existing call to create a second call. Wait until call state changes to Dialtone, then use Dial(String) to dial the number you want to add to the conference. When the second call is connected, use CompleteTransfer(TapiCall, Boolean) with the second parameter set to true to join the calls and create 3-way conference.
AddTapi.NET 3.0 has new audio engine for recording calls. New engine has better performance when recording on many lines simultaneously and is more robust overall. StopPlayback is now a synchronous operation that stops playback immediately. This change allows call recording to start faster after playing a message, and prevents from loosing first second of the recording on telephony hardware that does not support simultaneous playback and recording. Because new version initializes audio engine as soon as the call is connected, your application can call StartRecording(String) from the CallConnected event handler.
AddTapi.NET 3.0 automatically obtains owner privilege for calls when required, eliminating "application doesn't have owner privilege" errors. New Privilege property provides information about the current call privilege.
New Dial(String) method allows applications to dial on existing call. This is useful in many scenarios. For example, when user picks up a phone, new call in Dialtone state is created. Your application can use TapiCall.Dial method to dial the number on this call.
In AddTapi.NET 3.0 WaitForDigit(Int32) and GatherDigits(Int32, String, Int32, Int32) methods accept negative timeout value. Negative value means that the timeout should start after playback initiated by the Play(String) or Speak(String) is completed.
New version adds CallFeatures, MaxNumActiveCalls, SupportsPredictiveDialing, IsRoutePoint, IsQueue, MaxNumActiveCalls and MaxNoAnswerTimeout properties that provide additional information about features and capabilities of the telephony hardware.
Added Calls collection that contains all active calls on the line to simplify call management in some scenarios.
Version 3.0 adds DigitDetected event that fires when a DTMF digit is detected on the line. This event provides alternative asynchronous mechanism for handling digits received during the call. WaitForDigit(Int32) and GatherDigits(Int32, String, Int32, Int32) are easier to use synchronous methods for handling DTMF digits.
- Added Trunk property to make call tracking across multiple trunks easier.
- Added DisconnectOnBusy property.
- Fixed a bug that caused device-specific functions to fail on some hardware.
- Fixed a bug with WaitUntilDone(Int32) always returning false when zero timeout is specified.
- Added checks to prevent multiple initialization of AddTapi.NET library.