AddTapi.NET 3.0 has been released

Last week we released new version 3.0 of our telephony library AddTapi.NET. You can download demo version of AddTapi.NET from To upgrade purchased version of AddTapi.NET, please send your serial number to Here is a list of new features in AddTapi.NET 3.0:

2-step/consultation call transfer

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 TapiCall.SetupTransfer() to create a new consultation call. Wait until call state changes to Dialtone, then use TapiCall.Dial() to dial the destination number for the transfer. When consultation call is connected, use TapiCall.CompleteTransfer() to complete the transfer.

Call park/unpark support

New TapiCall.Park() and TapiLine.Unpark() methods were added to park/unpark calls. Version 3.0 supports both directed and nondirected call parking.

3-way conference support

New version adds support for 3-way conference (if supported by the telephony system). To create a 3-way conference, call TapiCall.SetupTransfer() on the existing call to create a second call. Wait until call state changes to Dialtone, then use TapiCall.Dial() to dial the number you want to add to the conference. When the second call is connected, use TapiCall.CompleteTransfer() with the second parameter set to true to join the calls and create 3-way conference.

New call recording engine

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. TapiCall.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 TapiCall.StartRecording() from the CallConnected event handler.

Call privilege handling

AddTapi.NET 3.0 automatically obtains owner privilege for calls when required, eliminating “application doesn’t have owner privilege” errors. New TapiCall.Privilege property provides information about the current call privilege.

Dialing on existing call

New TapiCall.Dial() 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.

WaitForDigit and GatherDigits improvements

In AddTapi.NET 3.0 TapiCall.WaitForDigit() and TapiCall.GatherDigits() 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.

Additional information about line and address capabilities

New version adds CallFeatures, MaxNumActiveCalls, SupportsPredictiveDialing, IsRoutePoint, IsQueue, MaxNumActiveCalls and MaxNoAnswerTimeout properties that provide additional information about features and capabilities of the telephony hardware.

TapiLine.Calls collection

Added TapiLine.Calls collection that contains all active calls on the line to simplify call management in some scenarios.

DigitDetected event

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. TapiCall.WaitForDigit() and TapiCall.GatherDigits() are easier to use synchronous methods for handling DTMF digits.

Other small fixes and improvements

– Added TapiCall.Trunk property to make call tracking across multiple trunks easier.

– Added TapiLine.DisconnectOnBusy property.

– Fixed a bug that caused device-specific functions to fail on some hardware.

– Fixed a bug with TapiCall.WaitUntilDone() always returning false when zero timeout is specified.

– Added checks to prevent multiple initialization of AddTapi.NET library.

AddTapi.NET updated to v2.0.2

We released new version of AddTapi.NET build This is a small update with only 2 changes.

1. TapiCall.GatherDigits() now stops playback when first digit is entered. This works better when user starts entering digits while voice prompt is still playing. In previous versions the prompt was playing until all digits are entered, and on some telephony hardware the prompt sounded choppy in this case.

2. The following problem with AddTapi.NET on Panasonic PBX was fixed: When extension is open for monitoring in AddTapi.NET, the call from this extension to a busy number disconnects automatically, so the user can’t take actions on her phone, for example, to wait for a callback.

The latest build is avaiable at If you want to update your purchased version please send an email to