Cube QuickCall Client API PDF
Cube QuickCall Client API PDF
Cube QuickCall Client API PDF
Integration Document
Table of Contents
1. Introduction..................................................................................................................... 3
2. Dialer Client Messaging Structure................................................................................4
2.1 Login Message:........................................................................................................... 4
2.2 LogOut Message:........................................................................................................ 5
2.3 Break Start Message:.................................................................................................. 6
2.4 Break End Message:................................................................................................... 7
2.5 New Call Message...................................................................................................... 8
2.6 Close Call Message.....................................................................................................9
2.7 IVRSDATA.............................................................................................................. 10
2.8 Agent Popup Status...................................................................................................11
2.9 Server DateTime....................................................................................................... 12
2.10 Agent Soft Phone Commands................................................................................ 13
2.11 Extension Status......................................................................................................14
2.12 Manual pass............................................................................................................ 15
2.13 Agent Phone............................................................................................................16
2.14 VoiceFile Information............................................................................................ 17
3. Clink Overview.............................................................................................................. 18
3.1 Methods.....................................................................................................................18
3.1.1 Initialize Method............................................................................................... 18
3.1.2 Request Method.................................................................................................19
3.1.3 Send Method......................................................................................................20
3.2 Clink Property........................................................................................................... 22
3.2.1 ClearSendData Property.................................................................................... 22
3.2.2 NodeDescription................................................................................................22
3.2.3 NodeDescriptionList() Property........................................................................22
3.2.4 NodeName Property.......................................................................................... 23
3.2.5 NodeNameList() Property................................................................................. 23
3.2.6 NodeTotal Property........................................................................................... 23
3.2.7 ReceivedData() Property................................................................................... 24
3.2.8 ReceivedDataTotal Property............................................................................. 24
3.2.9 SendData() Property.......................................................................................... 24
3.2.10 SendDataTotal Property.................................................................................. 25
3.2.11 Timeout Property.............................................................................................25
3.3 CLink Events.............................................................................................................26
3.3.1 DataReceived.....................................................................................................26
3.3.2 RequestReceived Event.....................................................................................27
Page 2
1. Introduction
This document defines the messaging structure used between dialer client application and
external third party application. The message structure can be transmitted via TCP socket
or text file or CubeLink.dll file. In all the cases the structure remains the same. The
format of the message as defined below.
<Message type>;<Parameter 1>;<Parameter 2>;<Parameter 3>;..;<Parameter n>;<03>
Page 3
External
Third Party
Application
Login;[Agentid];[AgentName];[CampaignId];[LoggedinDateTime]
Sl
No
1
2
Message
Data Type
Possible Values
Description
Login
AgentID
String
String
Login
As defined in dialer database
AgentName
String
CampaignID
String
LoggedinDateTime
String
Message Identifier
Agent ID of the agent who is
logged in as defined in PDManager
Name of the agent as defined in
PDManager
Campaign ID in which the agent
logs in
Server Login Date and Time
Page 4
Logoff
LogOff;Loggedoff
LogOff;Error: .......
Sl No
1
Message
Logoff
Data Type
String
Possible Values
Logoff
Description
Message Identifier
Sl No
1
2
3
Message
LogOff
LoggedOff
Error:
Data Type
String
String
String
Possible Values
LogOff
LoggedOff
Error:<Err description>
Description
Message Identifier
Logoff successful
Logoff failure followed by
reason
Page 5
Break
Break;OK
Break;Error: .....
Sl No
1
Message
Break
Data Type
String
Possible Values
Break
Description
.Message Identifier. Request
for Break from External
Application
Sl No
1
Message
Break
Data Type
String
Possible Values
Break
2
3
OK
Error:
String
String
OK
Error:<Err Description>
Description
Message Identifier. Response
to Break Request
Request successful
Request failure followed by
reason
Page 6
BreakEnd;OK
BreakEnd;OK
BreakEnd;Error ..
Sl No
1
Message
BreakEnd
Data Type
String
Possible Values
Description
.Message Identifier. Request to
End Break from External
Application
Sl No
1
Message
BreakEnd
Data Type
String
Possible Values
2
3
OK
Error:
String
String
Description
Message Identifier. Response
to BreakEnd Request
Request successful
Request failure followed by
reason
Page 7
Sl
No
1
2
Message
Data Type
NewCall
PhoneID
String
String
PhoneNo
String
4
5
DateTime
Identifier
String
String
Attempt
String
ForCampaignID
String
StatusID
String
AreaTimeGap
String
10
SmdrRunning
String
11
Priority
String
Possible Values
string (length=12) as
defined in dialer
database
Phone number of the
caller / called party
Unique number to
phoneid
for
a
campaign
Current
attempt
count
Call
for
which
campaignid. In case
of
overflow
campaign
the
campaigned
will
change
True / False. No
action to be done on
this value
0 / 1 / 2.
Priority for normal /
urgent and call backs
call
Description
Message Identifier.
PhoneID as in the database.
It is always unique to this
number.
Phone Number of the caller
on which the call is
connected.
Date Time of Call
Page 8
FreeMe;[Empty|Break|Logout|Manual];[DispositionCode];[CallBackDateT
ime];[MustbeTransferedToMe];[Remarks];[Follow up Number]
FreeMe;OK
FreeMe;Error: ....
Sl
No
1
Message
FreeMe
Data
Type
String
Possible Values
Empty
FreeMe
Break
Logout
Manual
Empty|Break|Logout|Freeme|
Manual
String
DispositionCode
String
CallBackDateTime
String
MustbeTransferedToMe
String
Remarks
String
Follow up Number
String
Description
Message Identifier.
Empty or Freeme to
close the call and wait
for next call
Break close the
current call and go on
break
Logout Close the call
and Logout
Manual only sets the
value. Does not free the
agent for next call.
Call Disposition code
as
defined
in
PDManager
Call back preference
time for current number
1 if call is to be
transferred to same
agent else 0
Any remakes entered
by agent.
Follow up Number if
any. This feature is
used
only
when
CallBackDateTime (# 4)
Page 9
2.7 IVRSDATA
The message will be sent from dialer client to external interface just after the new call
message. This packet will inform the third party application if any ivrs input had been
received including the CLIP and DNIS.
IVRSDATA;param1;param2;param3,..
Sl
No
1
2
Message
Data Type
IVRSDATA
Param1,Param2,P
aram3,..Param
N
String
String
Possible Values
CLI=<CLIP Obtained>
DNI=<DNIS Obtained>
INOUT=<INBOUND or
OUTBOUND CALL>
ClientID=<Client ID value in
Phonemst table in CubeDialer
Database>
Description
Message Identifier.
Param1, Param2 etc.
can be any variable
that
had
been
initialized in the IVR
Flow for a campaign.
This packet will also
include CLIP and
DNIS information.
Example:
IVRSDATA;CLI=991
0062020;DNI=120405
7100;INOUT=OUTBO
UND;Clientid=<String
Value>
Page 10
BusyCallState;[Duration];[DIAL|TALK|HOLD|WRAP]
Sl
No
1
2
3
Message
Data Type
BusyCallState
Duration
DIAL|TALK|HOLD|WRAP
String
String
String
Possible Values
Description
Message Identifier.
Duration since last state
TALK when the agent is
connected
HOLD- when the agent
had put the called number
on HOLD.
WRAP- when is in wrap
up state and is about to
close the call.
Page 11
SerVerDateTime
SerVerDateTime;[DateTime]
Sl
No
1
Message
Data Type
SerVerDateTime
String
Sl
No
1
Message
Data Type
SerVerDateTime
String
DateTime
String
Possible Values
Description
.Message Identifier. Request for
ServerDateTime from External
Application
Possible Values
DD MMM YYYY
HH:MM:SS
Description
Message Identifier. Response to
ServerDateTime Request
Date Time in DD MMM YYYY
HH:MM:SS (24 hours) Format.
Example 26 JUN 2014 14:00:00
Page 12
Sl
No
1
Message
Data Type
AnswerCall
String
BlindTransfer;[DialString]
String
CompleteTransfer;Conference
String
CompleteTransfer;Transfer
String
MakeCall;[DialString]
String
DropCall;
String
1
1
HoldCall;
Redirect;[DialString]
String
String
SetupTransfer;[DialString]
String
UnHoldCall;
String
Possible Values
Description
To answer a call from soft
phone
To transfer call call blindly
to some number or
campaign
or
agent.
Destination is defined by
DialString
To conference a call from
soft phone
To
have
supervised
transfer in a call
To request a number to be
dialed out. Destination is
defined in DialString
To drop or disconnect the
current call
To put the caller on Hold.
To transfer the call along
with popup information to
a agent or campaign.
Destination is defined by
DialString
Initiate supervised transfer
of a call. Destination is
defined by DialString
Unhold the call if the call
is put on Hold.
Page 13
PortStatus;[AgentExtnState]
Sl
No
1
2
Message
Data Type
PortStatus
AgentExtnState
String
String
Possible Values
Description
Message Identifier.
Page 14
ManualPass
Sl
No
1
Message
Data Type
ManualPass
String
Possible Values
Description
Message Identifier.
Page 15
AgentPhone
Sl
No
1
Message
Data Type
AgentPhone
String
Possible Values
Description
Message Identifier.
Page 16
VoiceFile;[FileName]
Sl
No
1
Message
Data Type
VoiceFile
String
Possible Values
Description
Name of Voice File without
Format. External Application
needs to suffix .mp3 with the
name of file received so that
it can be accessed over
predefined HTTP path.
Page 17
3. Clink Overview
The CLink control provides a powerful and easy-to-use communications link between
Windows applications. Using the CLink control, you can send and receive data between
different applications running on the same machine or between threads within a single
application. The CLink control also allows you to process all data requests through one
central location to minimize database or other data connections.
Note that the CManager control should be used to monitor the status of Visual Voice
activity on one or more phone lines. The CManager control replaces the need to use the
CLink control for monitoring and controlling CubeGlobalCall applications (that is,
applications that contain the Voice control). You should use the CLink control to send
data or requests between applications, or to monitor and control applications that do not
contain a Voice control, such as the Order Status Server sample application.
3.1
Methods
Description
Required. String
value to initialize the
application.
Returns
Remarks
None
If you created the Clink control in code (i.e., Dim CLink1 as New
CLink), use the Initialize method to bring the Link control to a runtime
state. If you created the CLink control by dropping it on a form, the
control is automatically initialized when the form is loaded, unless the
AutoInitialize property is set to FALSE.
Example
Page 18
Page 19
This method can be used to send data to another node, either in the
same application or in a different application. The method sends the
data and returns immediately. The target node receives a DataReceived
event when the transfer of data is complete. If it refers to a node on the
local machine, only the node name is used (e.g. SERVER1). If the
Page 20
Page 21
3.2
Clink Property
3.2.2 NodeDescription
Description
A string that describes the node. The default is null.
Syntax
object.NodeDescription[ = string$]
Data Type
String
Remarks
Use the NodeDescription property to describe the node for
informational purposes. The NodeName property contains the name of
the node. The NodeDescription property string is limited to 129
characters, and will be truncated at that length if you attempt to set it to
a longer value.
Link1.NodeDescription = "Server node to process database requests"
Example
3.2.3 NodeDescriptionList() Property
Description
Returns the descriptions of all active nodes.
Syntax
object.NodeDescriptionList(index%)
Data Type
String
Remarks
Use this property to retrieve a description of other active nodes. The
starting index is 0, and the number of entries is equal to the NodeTotal
property.The name of each node described in the NodeDescription()
Cube Software Pvt Ltd
Page 22
For I = 0 To Link1.NodeTotal 1
List1.AddItem Link1.NodeNameList(I) & " " & Link1.NodeDescriptionList(I)
Next I
Next I
Next I
Page 23
Next I
Page 24
the ToNode argument. The data will appear in the target node's
ReceivedData() property array. In a RequestReceived event, if the
ReturnData Parameter is set to True, the SendData() property array will
also be sent to the requesting node.If the ClearSendData property is set
to True, this array is automatically cleared after every Send or Request
method..
Example
'send 3 items
'send data with subject Customer to target
'node CLIENT1
'send 2 items
'send data to CLIENT1 target node
Page 25
3.3
CLink Events
3.3.1 DataReceived
Description
This event is triggered when another node has sent data via the Send
method and the data is now available at this node.
Syntax
Sub object_DataReceived(FromNode As String, Subject As String)
Data Type
Integer
Remarks
The data is returned via the ReceivedData() property array. The
ReceivedDataTotal property returns the numbers of elements in the
ReceivedData() property array.If multiple nodes send data to the same
server node (or one node sends multiple consecutive data items), this
event will trigger once for the first request, and the second request will
be queued behind the first request. However, if the code you place in
this event yields control to another process (e.g., when you execute a
Visual Basic DoEvents statement or a Visual Voice PlayFile method),
then the events are not queued behind each other. As a result, the first
lines of code in the DataReceived event should copy the contents of the
ReceivedData() property array to a locally declared variable array,
because the ReceivedData() property will be overwritten when the
second DataReceived event is triggered. In this event, you should not
execute any code that would result in Visual Basic yielding control of
the processor. For example, you should not execute any functions such
as Visual Basic's DoEvents()or any Visual Voice methods, unless you
first save any information (e.g., FromNode, Subject, ReceivedData,
ReceivedDataTotal) you might need after the function completes.
The following table is a listing of the DataReceived event parameters:
Parameter
Description
FromNode
The name of the node that sent the data
Subject
The subject of the received data. The source node
specified this via its SendSubject property.
Sub Link1_DataReceived (FromNode As String, Subject As String)
Example
Text1.Text = FromNode
'display where the
Select Case Subject
'data came from
Case "Customer"
'display data
For I = 0 to Link1.ReceivedDataTotal - 1
'number of items
List1.AddItem Link1.ReceivedData(I)
'display each item
Next I
Case "Update"
'update data
Customers.Edit
Customer("Name") = Link1.ReceivedData(0)
Customers.Update
End Select
End Sub
Page 26
Page 27
indicating success.
Example
Page 28