Hello,
As part of a draft inter operability, we are currently developing a
TSP for TAPI, for our communication system (VOIP).
The objective is to monitor a VOIP phone.
Unfortunately, TSP produced can not properly handle incoming calls.
We started the project SIPTAPI developed by Klaus Darilion (enum.at).
it is designed to work with SIP, but do not manage incoming calls.
With TSP, the following calls made:
TSPI_lineNegotiateTSPIVersion
TSPI_providerEnumDevices
TSPI_providerInit
TSPI_phoneNegotiateTSPIVersion
TSPI_lineGetExtensionID
TSPI_lineGetDevCaps
TSPI_lineGetAddressCaps
TSPI_lineOpen
TSPI_lineGetNumAddressIDs
TSPI_lineSetDefaultMediaDetection
TSPI_lineSetStatusMessages
message LINE_NEWCALL
message LINE_CALLSTATE - LINECALLSTATE_OFFERING
message LINE_CALLSTATE - LINECALLSTATE_ACCEPTED
TSPI_lineGetCallInfo
TSPI_lineGetCallInfo
TSPI_lineGetCallInfo
TSPI_lineGetCallInfo
TSPI_lineCloseCall
TSPI_lineClose
TSPI_providerShutdown
With the TAPI application when an incoming call, the application
receives an event "TE_CALLNOTIFICATION", and in the treatment of this
event :
case TE_CALLNOTIFICATION:
{
// CET_CALLNOTIFICATION means that the application is being notified
// of a new call.
//
// Note that we do not answer to call at this point. The application
// should wait for a CS_OFFERING CallState message before answering
// the call.
ITCallNotificationEvent * pNotify;
hr = pEvent->QueryInterface( IID_ITCallNotificationEvent, (void
**)&pNotify );
if (S_OK == hr)
{
CALL_PRIVILEGE cp;
ITCallInfo * pCall;
//
// get the call
//
hr = pNotify->get_Call( &pCall );
//
// release the event object
//
pNotify->Release();
//
// check to see if we own the call
//
hr = pCall->get_Privilege( &cp );
if ( CP_OWNER != cp ) // cp is always CP_MONITOR !!!
{
... return with Fail status...
Has anyone already made a TSP that will handle incoming calls? Could
he help?
Sincerely,
Thomas D.