596 Chapter 22 CTI Developer Toolkit
SELECT node.Name AS [Node],
node.IPAddress AS [IP Address],
'Agent' AS [Type],
device.FirstName AS [First Name],
device.LastName AS [Last Name],
device.Reporting AS [Reporting Number]
FROM tblConfig_Agent device INNER JOIN tblEnterpriseConfig_Node node
ON device.FKNode = node.Pkey INNER JOIN tblLookup_NodeType NodeType
ON node.FKNodeType = NodeType.Pkey
WHERE FKNodeFamily = 1
UNION
SELECT
node.Name AS [Node],
node.IPAddress AS [IP Address],
'Extension' AS [Type],
'' AS [First Name], -- No first name on extensions
'' AS [Last Name], -- No last name on extensions
device.Reporting AS [Reporting Number]
FROM tblConfig_Extension device INNER JOIN tblEnterpriseConfig_Node node
ON device.FKNode = node.Pkey INNER JOIN tblLookup_NodeType NodeType
ON node.FKNodeType = NodeType.Pkey
WHERE FKNodeFamily = 1
ORDER BY [Node], [Type]
The [IP Address] values in the query results should contain the IP address of the telephone system that is
associated with the voice media server. If this value is incorrect or blank, use YourSite Explorer to set the IP
address to the correct value.
GetDevice method fails or returns null unexpectedly
If a custom applications calls the GetDevice method and returns null even though the device is valid and
programmed in Contact Center Management, there may be a timing issue with the Connect operation. When
a custom application calls the Connect method in the CTI Developer Toolkit, the operation returns as soon as
an authenticated connection has been established with the Enterprise Server. However, there may still be
some basic configuration loading occurring in the background, which must complete before calls to GetDevice
can be successful.
In Version 5.6 and Version 5.7 SP1, a new event named ConfigurationLoaded is provided, which is used to
notify custom applications that background configuration loading has completed. In previous versions, the
Device Monitor sample application used a workaround method of issuing a Sleep method call on the active
thread to give background configuration loading time to complete.
Agent control actions succeed while call control actions fail
In this scenario, agent control actions (for example, login, logout, and set/remove Make Busy) succeed, while
call control actions (for example, make call, answer call, and clear call) fail. The key difference between these
two types of operations is that call control actions require a MiTAI monitor set on the device and agent control
actions do not. Your investigation should start with an analysis of MiTAI related configuration, including:
• Verifying that the MitaiEnabled flag set properly for devices in the database
• Checking telephone system (for example, HCI Options enabled)
• Confirming the telephone system version is supported