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

Created by: Jeffrey Bryant on 24-10-2012 02:42:05 PM
I have a program written in C++ for Win64. It is supposed to check which lines are available and then determine if the device is ready to make a call. I have installed the cisco tsp for 64 bit. When I run this program I would expect to see the CTI lines but all I see are the local devices. Here are the steps I am taking, minus error checking and structure.

LPHLINEAPP lphLineApp=new ::HLINEAPP();
HINSTANCE hInstance=NULL;
DWORD * numDev = new DWORD;
*numDev=0;
LPLINEINITIALIZEEXPARAMS lip=new LINEINITIALIZEEXPARAMS();
lip->dwNeededSize = sizeof(LINEINITIALIZEEXPARAMS);
lip->dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS);
lip->dwOptions=LINEINITIALIZEEXOPTION_USECOMPLETIONPORT;
DWORD *API= new DWORD(); *API=0x00020000;
long IErr = lineInitializeEx(lphLineApp,NULL,NULL,NULL,numDev,API,lip);
std::cout << "API Version: " << std::hex << *API << std::dec << std::endl;
delete lip;

DWORD Ver=0;
LINEEXTENSIONID ExtId;
long ERRR = lineNegotiateAPIVersion(*lphLineApp,0,0,*API,&Ver,&ExtId);

for(DWORD lx=0; lx<*numDev; lx++) 
{
std::cout << std::hex << "Version:" << Ver << std::endl;
HLINE hLine=0;
long R = lineOpen(*lphLineApp,lx,&hLine,Ver,0,NULL,LINECALLPRIVILEGE_NONE,0,NULL);


LINEDEVSTATUS devStatus;
devStatus.dwTotalSize = sizeof(LINEDEVSTATUS);
long errr = lineGetLineDevStatus(hLine,&devStatus);


if(devStatus.dwLineFeatures && LINEFEATURE_MAKECALL==LINEFEATURE_MAKECALL)
{
std::cout << "MAKE CALL" << std::endl;
}

}


QUESTION: Are my assumptions that I should see the CTI-Ports if the Cisco TSP is running valid? If not, I am apparently missing a major portion of the use of the TSP.


These are the lines that I see in the dialer and my program...

AgileVPN
PPTP
Ras PPPoE Line
SSTP
ThinkPad Modem Adapter
WAN Miniport (L2TP)





What the log says...

12:21:04.704 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10065
12:21:04.705 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10065
12:21:28.709 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10065
12:21:28.709 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10065
12:22:04.710 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10051
12:22:04.710 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10051
12:22:20.712 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10051
12:22:20.713 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10051
12:23:15.709 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10060
12:23:36.709 |   CSelsiusTSPLink::Connect() *ERROR* Failed to connect to CTI Manager: error=10060
12:24:20.765 |   ProviderOpenRequest::qbeTraceOut seq# =0x00000004
12:24:20.765 |   ProviderOpenRequest::qbeTraceOut {{0x00000114, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x00000003, 0x00000020, 0x0000006C, 0x00000090}
12:24:20.765 |   ProviderOpenRequest::qbeTraceOut 
        ProviderName             : {0x0000008C, 18, CiscoTSP 8.6(2.7) }
        LoginUserID              : {0x000000B0, 24, 12, 2, ConfRoomSpy }
        ApplicationID            : {0x000000F8, 27, CiscoTSP001-10.252.130.249 }
        QBEClientVersion         : {0x0000009E, 18, CiscoTSP 8.6(2.7) }
        ProviderEventFilter = {0x000000E8, 16, 4} :
            {bDeviceRegistered: 0xFFFFFFFF, bDeviceUnRegistered: 0xFFFFFFFF, bDirectoryChangeNotify: 0xFFFFFFFF, bDeviceConfigChangedNotify: 0xFFFFFFFF}
        WantServerHeartbeat     : 0x0000001E
        CMAssignedApplicationID : 0x00000000
        PluginName              : {0x00000113, 9, CiscoTSP }
        bLightWeightProviderOpen: 0x00000000
        SingleSignOnTicket      : {0x00000000, 0, }
        AuthenticationType      : 0
        bOldDeviceLineFetch     : 0x00000000
12:24:20.821 |   ProviderOpenResponse::qbeTraceIn seq# =0x00000004 result =0x00000000
12:24:20.821 |   ProviderOpenResponse::qbeTraceIn {{0x0000008C, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x00000004, 0x00000020, 0x00000034, 0x00000040}
12:24:20.821 |   ProviderOpenResponse::qbeTraceIn 
        Result          : 0x00000000
        ProviderInfo    : {0x00000054, 14, 8.6.2.22043-2 }
        ClientHeartbeat : 30
        ServerHeartbeat : 30
        PluginVersion   : {0x00000062, 10, 8.6.2.7-0 }
        PluginLocation  : {0x0000006C, 40, http://10.192.88.4/plugins/CiscoTSP.exe }
        dwProviderId    : 34140529
        bisFIPSEnabled  : 0x00000000
12:24:20.941 |   ProviderOpenCompletedEvent::qbeTraceIn {{0x00000070, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x0000007E, 0x00000020, 0x00000048, 0x00000012}
12:24:20.941 |   ProviderOpenCompletedEvent::qbeTraceIn 
        Reason           : 0x00000000
        SequenceNumber   : 4
        ProviderInfo     : {0x00000068, 14, 8.6.2.22043-2 }
        ClientHeartbeat  : 30
        ServerHeartbeat  : 30
        Description      : {0x00000000, 0, }
        bMonitorCallPark : 0
        ProviderId       : 34140529
        DSCPForCTI2Apps  : 0x00000060
        bEnableIpv6      : 0x00000000
        unicodeUserID    : {0x00000078, 2, 1, 2,  }
        daysPswdToExp    : 4294967295
        totalDevices  : 0
12:24:20.948 |   ProviderGetCapabilitiesRequest::qbeTraceOut seq# =0x00000005
12:24:20.948 |   ProviderGetCapabilitiesRequest::qbeTraceOut {{0x0000001C, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x0000007F, 0x00000020, 0x00000004, 0x00000000}
12:24:20.990 |   ProviderGetCapabilitiesResponse::qbeTraceIn seq# =0x00000005 result =0x00000000
12:24:20.990 |   ProviderGetCapabilitiesResponse::qbeTraceIn {{0x00000050, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x00000080, 0x00000020, 0x00000014, 0x00000024}
12:24:20.990 |   ProviderGetCapabilitiesResponse::qbeTraceIn 
        dwResult          : 0x00000000
        dwCapabilitiesInfoOffset    = 52
        dwCapabilitiesInfoSize      = 36
        dwCapabilitiesInfoFixedSize = 36
        bControlAnyDevice = 0x00000000
        bMonitorParkDNs   = 0x00000000
        dwMaximumNumberDevicesOpened = 0
        bAllowCallMoniroting = 0x00000000
        bAllowCallRecording  = 0x00000000
        bEnableIpv6 = 0x00000000
        dwUserPermSystemConfig = 0x00000000
         bAutoPickupEnabled = 0x00000000
12:24:20.991 |   ProviderGetAllDevicesAndLinesRequest::qbeTraceOut seq# =0x00000006
12:24:20.991 |   ProviderGetAllDevicesAndLinesRequest::qbeTraceOut {{0x0000001C, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x0000011A, 0x00000020, 0x00000004, 0x00000000}
12:24:21.037 |   ProviderGetAllDevicesAndLinesResponse::qbeTraceIn seq# =0x00000006 result =0x00000000
12:24:21.037 |   ProviderGetAllDevicesAndLinesResponse::qbeTraceIn {{0x00000020, 0x00000000}, 0xFFFFDDDD, 0x000D0001, 0x0000011B, 0x00000020, 0x00000008, 0x00000000}
12:24:21.038 |   ProviderGetAllDevicesAndLinesCompletedEvent::qbeTraceIn seq# =0x00000006 result =0x00000000

Subject: RE: Basic CTI question
Replied by: David Staudt on 29-10-2012 04:57:29 PM
One easy way to check the TSP functionality is to open the windows phone dialer.  It should list your Cisco devices along with the other OS TAPI devices.
Some additional things to check:
- The user credentials configured in Phone and Model Options for the TSP has the correct CTI permissions.  You can enable all of the CTI roles, but ensure that you don't enable 'CTI Secure Connection' unless you have fully configured an actual secure connection
- The user is associated in the UCM admin with the phones that you want to monitor/control, these phones do not have 'Enable CTI control' disabled, and are phone types that support CTI control (see the wiki for a list)
If everything checks out, you can enable the detailed/all-types TSP logs,  restart the Telephony service (or the host), and attach the TSP logs here
 

Subject: RE: Basic CTI question
Replied by: John Edwards Duay on 15-01-2013 10:19:42 PM
Hi David what is meant by telephony service? Is this the CM or the machine where TSP is installed? thanks!

Subject: RE: Basic CTI question
Replied by: David Staudt on 16-01-2013 09:00:34 AM
Referring to the Windows service called 'Telephony' on the application server host.  This process provides the system's TAPI services and is what loads the TSP plugin DLL.  You can restart it from the Control Panel, however sometimes other services dependent on Telephony (e.g. RAS) prevent it from being restarted without stopping them first - sometimes it's easier to just restart the system.
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