The SIPTAPI is a TAPI driver, which enables SIP click2dial functionality from TAPI applications (like MS Outlook, Phoner ...). The correct term for this application is: A service provider for the MS telephony API.
The work is based on asttapi, a TAPI driver which connects to Asterisk via the manager interface (a telnet connection into Asterisk). All the asterisk/telnet related stuff was removed and replaced by a SIP stack (eXosip2). Thus, it should work with all SIP based applications which understand the REFER request.
How does it work?
The SIPTAPI sends an INVITE request to your own SIP phone. When you pick up the phone and the call between the SIPTAPI and your phone is established, the SIPTAPI sends a REFER request to your phone. This REFER request contains the originally called phone number in the Refer-To: header. Thus, your SIP phone will establish a new call to the respective phone number. For a detailed howto please refer to the SIPTAPI-Tutorial (https://sourceforge.net/projects/siptapi/files/)

The SIP TAPI is tested with Windows XP SP2 german, Outlook 2003 SP1, and Phoner (Phoner.de). Development of SIPTAPI is done using MS Visual Studio.NET 7.1. Newer Visual Studio should work too. (Note: Visual Studio Express Edition can not be used as the SIPTAPI uses MFC.)
News:
2007-11-29: Updated SIPTAPI to exosip2-3.0.3-3 and osip2-3.0.3-2, fixed TSPI_lineGetCallStatus() issues
2007-07-02: SIPTAPI-multiline (our commercial SIPTAPI) now also supports incoming call notification - see screenshot with Microsoft's dialer.exe TAPI application.
2006-03-13: A tutorial how to use SIPTAPI with the sipXpbx is available on the sipX wiki
2006-03-10: SIPTAPI is now also available in a multiline version, called SIPTAPI-multiline. This is especially useful in Citrix environments, where multiple users use the same TAPI driver instance. Further, the stability has been increased. The SIPTAPI-multiline is a commercial software - please ask klaus.darilion (at) ipcom.at for licensing details.
Installation:
1. copy the siptapi.tsp file into \windows\system32\
2. Install the TAPI driver via the control panel: Start -> ControlPanel -> PhoneAndModemOptions -> Advanced -> Add -> SIP TAPI Service Provider
Configuration:
1. Configure via the control panel: Start -> ControlPanel -> PhoneAndModemOptions -> Advanced -> Configure
- SIP domain: the domain of your SIP URI
- Outbound Proxy: the IP address or domain of the OBP
- username: the SIP username of your SIP URI
- password: the SIP password
The SIP TAPI does not support for NAT traversal. Thus, you must register to a SIP proxy which does the NAT traversal, or use a dedicated outbound proxy.
For example, if your SIP URI is sip:15990@fwd.pulver.com and you are behinod NAT, configure the TAPI:
SIP domain: fwd.pulver.com
outbound proxy: fwdnat.pulver.com:5082;lr
user: 15990
password: guess what
Note: If you do not need an outboundproxy, leave this field empty. If you specify an outboundproxy make sure to add the ";lr" parameter (without "").
2. Configure your TAPI application to use the SIP TAPI
Build instructions:
1. Get the osip2 and eXosip2 sources and build them. If you use the SIP TAPI with Cisco 7960 phones, you have to build with option: -DCISCO_BUG (for details refer to: www.atosc.org/pipermail/osip/2005-April/005130.html) I used an very early version of exosip2. Thus, the API may have changed a little bit and you will have to update the exosip function calls in siptapi.
2. download the SIP TAPI sources (from sourceforge)
3. open the siptapi project in Visual Studio.NET: asttapi.sln
4. specify the location of the osip/exosip header fiels and libraries in the siptapi project
5. build the SIP TAPI, you will find it in the Debug/Release folder with the name siptapi.tsp
For debugging you can watch the debug statements unsing Sysinternals DebugView: technet.microsoft.com/en-us/sysinternals/bb896647.aspx
Tips: You can link the SIPTAPI with callto URIs using a script which connects the callto URI with a TAPI application (e.g. Windows' dialer.exe). More info can be found on www.sugarcrm.com/forums/showthread.php;
License: GNU GPL 2
Warning: This software is in an early stage - thus, it may happen that your TAPI applications or Windows crashes :-(
As the SIPTAPI is under the GPL license, you are welcome to improve it. :-)
Changelog:
0.1: initial version
0.2: bug fixed when not specifiying an outbound proxy. Note: When not specifying an outbound proxy, the field must be empty (really empty, also no spaces, tabs ...)
0.2.3: some bug fixes, works now with asterisk (canreinvite=no)
0.2.4: update to newer eXosip version which supports "id" parmeter in Event: header
0.2.5pre3: fixed a bug, added an optional user field (If a user is specified, the SIPTAPI does not call itself, but the SIP phone on the specified extension.)
Download:
You can download binaries (32bit and 64bit) and the SIPTAPI tutorial from the sourceforge website: sourceforge.net/projects/siptapi/files/
To get the source code you have to check it out from the CVS repository on sourceforge: sourceforge.net/projects/siptapi/develop
If you have questions or comments, feel free to contact me (in English or German) at klaus.darilion (at) ipcom.at.