cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
168
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: David Fernandez Cubria on 13-09-2013 01:35:06 AM
We are developing a TAPI application with Cisco TSP. Everything works fine with a standard user, but  when ww define a superprovider to control any CTI device we have problems.  

According to Cisco documentation,  it´s necessary to acquire the requested line with the class (CCiscoLineDevSpecificAcquire) indicating the "SEPXXXX" with which you want to work.
  

Currently we have defined something like this:
            

CCiscoLineDevSpecificAcquire mydev;
          
char name [16] = "SEP001BD4C66440";
          
strcpy (myDev.m_DeviceName, name);
  
lResult = lineDevSpecific (xxxxx, 0, NULL, myDev.lpParams (), myDev.dwSize ()); 

The problem is with this function --> lineDevSpecific. It needs to be clearly defined line (xxxxxx). In the TSP superprovider mode returns no lines.
  The question is:  

1. How can we acquire the device 
SEP001BD4C66440 for TAPI application, if the TSP did not return any line with   
Superprovider?.

LPHLINEAPP hLineApp=new ::HLINEAPP();
HINSTANCE hInstance=NULL;
DWORD * numDev = new 
DWORD;*numDev=0;
LPLINEINITIALIZEEXPARAMS lineInitializeExParams=new LINEINITIALIZEEXPARAMS();
lineInitializeExParams->dwNeededSize = sizeof(LINEINITIALIZEEXPARAMS);
lineInitializeExParams->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS);
lineInitializeExParams->dwOptions=LINEINITIALIZEEXOPTION_USECOMPLETIONPORT;
DWORD *API= new DWORD(); *API=0x00020000; 

lRet = lineInitializeEx(hLineApp,hInstance,lineCallbackFunc,"Cisco Sample Application", numDev, API, lineInitializeExParams);  //The TSP did not return any line with  Superprovider

if (lRet != 0) 
{
   cout << "Initialization Failed" << endl;f
   return 0;   
}

for (int index = 0;index < *numDev;index++)
{
 LONG Result = lineNegotiateAPIVersion (*hLineApp,0, 0x00010000, 0x10000000,&dwAPIVersion, &ExtensionID);
 lRet = lineNegotiateExtVersion(*hLineApp, index, TAPI_CURRENT_VERSION, 0x00020000, 0x00030001, &retExtVersion);
CCiscoLineDevSpecificAcquire myDev;char name[16] = "SEP001BD4C66440";
strcpy(myDev.m_DeviceName, name);
LONG lResulta=lineDevSpecific(hLine,0,0,myDev.lpParams(),myDev.dwSize());
lResulta=lineOpen(*hLineApp, index, &hLine,dwAPIVersion,(DWORD)retExtVersion,(DWORD)0,LINECALLPRIVILEGE_OWNER,LINEMEDIAMODE_INTERACTIVEVOICE,NULL);
}


Subject: RE: SuperProvider
Replied by: David Staudt on 16-09-2013 11:37:17 AM
One subtle requirement of the 'superprovider' concept is that you need at least one device associated to the app user in order in the 'regular way', in order to have a device to issue the lineDevSpecific request from.  The device could be a 'virtual' CTI port created just for this purpose.

Subject: RE: SuperProvider
Replied by: David Fernandez Cubria on 17-09-2013 07:36:24 AM
David, Thank you very much for your help. It works like a charm
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links