ATAPI.NET and ITAPI3 source code availability!

I cannot count how many times people have requested the source code to the ATAPI.NET or ITAPI3 projects.  My response has always been that I was unable to release it due to ownership issues (it was developed under contract for a client).  I am pleased to announce this morning that I have worked through those issues and have been granted permission to release the project in it’s entirety as source code on CodePlex! Here’s their new homes: and … [Read more...]

ATAPI assembly updated!

It's been a while since I updated the ATAPI assembly, I've fixed a couple of minor bugs that were reported and updated the samples to compile with VS2008.  I've also added two new events onto the TapiPhone class so you can see state changes and button presses - somehow I missed that when I added the phone support. Finally, there's now online documentation available at You can download the updated assembly, help file and samples from … [Read more...]

TSP++ 3.0 is now free!

Sales of the TSP++ products have steadily fallen over the past 5 years, so much so that I decided two years ago to release the 2.x product into the open-source community, and now I am doing the same for the server edition.  The download is available here and requires a key to install it - use  J35M-3KXo-q60T which will let you install the full product.  Documentation and samples are all part of the image so have fun! … [Read more...]

New Version of ATAPI.NET available

I've updated ATAPI.NET in the samples page with several fixes and support for conferences, full transfers and phone support. I think almost everything is now wrapped - if you find any missing functions that you want/need ping me and I'll see what I can do. … [Read more...]

Utilizing TAPI from an ASP.NET application

I've gotten several email requests about using ATAPI from ASP.NET -- people have had trouble getting it to function properly so I figured I'd post an example of how it works. First, I'd recommend using ATAPI and not ITAPI3 - only because the latter pulls in COM objects which always makes things much more complex. The key thing to remember is where to hook up your events. Don't hook events inside your ASP.NET page-derived classes - that will keep the pages alive and cause memory leaks. … [Read more...]

You can be just like the government and record telephone conversations.. with TAPI 3.1

I've gotten several questions on this topic so I thought it might be a good thing to show in a blog.  Recording with TAPI 3.1 is actually pretty easy if you are running on Windows XP or better.  TAPI 3.1 provides some simple filename-based methods to dump the conversation into a .WAV file.  If you want to control the file, or stream it somewhere else, it's a bit more difficult and Microsoft provides a decent sample with the platform SDK that does it. Here's a simple example -- in … [Read more...]

ATAPI.NET updated for VB.NET

Minor, but breaking update for ATAPI.NET (version number has changed).  It was pointed out to me that the assembly wasn't very VB.NET friendly in that it didn't show any events at the TapiManager level and you couldn't use the UI to hook it all up.  That's fixed and all the line-level events are also exposed at the TapiManager level for those who want to use VB.NET with the 2.0 wrapper.   … [Read more...]

ITAPI3 update posted

I have updated ITAPI3 to fix a couple of reported bugs -- the TE_FILETERMINAL event wasn't always being raised and the TCall.GenerateCustomTone didn't work properly.  Both of these issues are fixed in the latest drop.  Enjoy! … [Read more...]

Updated ATAPI samples and assembly

I've posted a new version of ATAPI.NET which supports consultation transfers and a simple phone sample that shows off how to use the features.  In addtiion, this version of ATAPI.NET has a couple of bug fixes that were rolled in from a production project over the past couple of weeks to fix some weird startup/shutdown issues when a LINE_REINIT is reported by TAPI.  You can get the new code from our samples link --   … [Read more...]

Fun with forwarding..

Forwarding lines with ATAPI.NET is simple and easy (assuming, of course, that the underlying TSP supports it). The first step is knowing whether a given line device even supports forwarding.  This is trivial: TapiManager mgr = new TapiManager("ForwardingTest"); foreach (TapiLine line in mgr.Lines){   if (line.Capabilities.SupportsForwarding)   {      Console.WriteLine("Line {0} supports forwarding!", … [Read more...]