Click or drag to resize
What's New in Version 3.0
New 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 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.

  • Call park/unpark support

    New Park(String) and Unpark(String) 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 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.

  • 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. 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.

  • Call privilege handling

    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.

  • Dialing on existing call

    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.

  • WaitForDigit and GatherDigits improvements

    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.

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

  • Other small fixes and improvements

    - 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.