- Preface
- Introduction
- CTI OS Client Interface Library Architecture
- CIL Coding Conventions
- Building Your Custom CTI Application
- CTI OS ActiveX Controls
- Event Interfaces and Events
- CtiOs Object
- Session Object
- Agent Object
- Call Object
- SkillGroup Object
- Helper Classes
- SilentMonitorManager Object
- CTI OS Keywords and Enumerated Types
- CTI OS Logging
Contents
- Call Object
- Current Call
- ECC Variables
- Passing Call Variables
- ECC Variable Value Retrieval
- ECC Values
- Properties
- Methods
- Argument Parameters
- Alternate
- Answer
- Clear
- ClearConnection
- Conference
- GetCallContext
- GetCallData
- Hold
- MakeConsultCall
- Reconnect
- Retrieve
- SendDTMFSignal
- SetCallData
- SingleStepConference
- SingleStepTransfer
- Snapshot
- StartRecord
- StopRecord
- Transfer
Call Object
The Call object provides developers using the CTI OS Client Interface Library with an interface to Call behavior and control. The Call object enables you to perform all call behaviors, such as answering, hanging up, or transferring a call. The Call object represents one call connection of a call. For a call between two parties there are two call connections, and thus there are two distinct CIL Call objects.
The object stores specific call information as properties, including the ICMEnterpriseUniqueID, ANI, DNIS, Call variables, and ExpandedCallContext variables. The Call object is created in response to call events received at the CIL. The Call object properties and state are updated throughout the lifetime of the call connection.
For more information about accessing Call and ECC variables via the GetValue mechanism, see CIL Coding Conventions.
- Current Call
- ECC Variables
- Passing Call Variables
- ECC Variable Value Retrieval
- ECC Values
- Properties
- Methods
Current Call
The Client Interface Library uses the concept of a Current Call. The CTI OS Toolkit uses the Current Call concept as a way for the controls and the application to communicate with each other regarding which call is currently selected and is the one to act on. For example, if an agent has a call and receives a new Ringing call, they might select the Talking call on the grid. At this click, CallAppearanceMgr control calls SetCurrentCall() to make this call the Current Call. When the agent clicks the Hold control, this control calls GetCurrentCall() to obtain a call pointer through which to call the Hold() method. The agent can then select the Ringing call, which again causes the CallAppearanceMgr control to call SetCurrentCall() to make this new call the current call. Then, when the agent clicks the Answer control, this control again calls GetCurrentCall() to obtain a call pointer through which to call the Answer() method.
If your application uses Cisco's out-of-the-box button controls (for more information, see CTI OS ActiveX Controls), but not the CallAppearanceMgr grid control, you need to use SetCurrentCall() and GetCurrentCall() for the button controls to enable and disable correctly when switching between multiple calls.
Note | The CurrentCall concept does not place any limitations on call control of non-current calls. All of the call behaviors implemented by method calls on the Call object work on any Call object that is available at the CIL, even if it is not the CurrentCall. |
ECC Variables
The Unified ICM provides a customer-defined data layout for sending call context data with a call. This mechanism is called Expanded Call Context, or ECC. ECC variables are defined in the Unified ICM Configuration Manager and are sent between Unified ICM servers as a key-value structure. The mechanism for accessing ECC variables from CTI OS is similar to accessing all other call variables.
To simplify the organization of properties on the Call object, the ECC variables are stored in their own Arguments structure which is nested in the Call object Arguments structure.
Passing Call Variables
- A consultative transfer is one in which the transferring or forwarding party either connects the caller to a ringing phone or speaks with the third party before connecting the caller to the third party. In a consultative transfer on the same peripheral gateway, if a variable is updated with data during the primary call, and the same variable is then updated with data during the transferred call, the call data from the initial call takes precedence and replaces the call data from the transferred call.
- For calls that are transferred between peripheral gateways, update call variables on the primary call before transferring the call. Only call variable information from the primary call is included in the route request to the other peripheral gateway. Any call variable information that you change after the call is transferred is lost because the call variable information was not included in the route request when the call was transferred.
- The Unified ICM call control variable map is a string that describes the mappings of a peripheral's call control variables to Unified ICM call control variables. You can edit this string to identify the call variables that an agent can change.
ECC Variable Value Retrieval
To retrieve an ECC variable from the Call object, first retrieve the ECC (Arguments) structure from the Call object using GetValueArray with keyword ECC. Then, retrieve the specific ECC variable required by using its name as the keyword to GetValueInt, GetValueArray, or GetValueString, depending on its type. The following is some sample code for C++ without COM:
Arguments * pECCData = NULL;string sMyECCVariable; int nMyECCArrayVariable; if (pCall->IsValid(CTIOS_ECC)) { pCall->GetValueArray(CTIOS_ECC, &pECCData); if (pECCData) { if (pECCData->IsValid("user.MyECC")) pECCData->GetValueString->("user.MyECC", &sMyECCVariable); if(pECCData->IsValid("user.MyArray[2]")) pECCData->GetValueInt("user.MyArray[2]", &nMyECCArrayVariable); pECCData->Release(); pECCData = NULL; } }
Sample code for VB without COM:
Dim MyECCData As CTIOSARGUMENTSLib.Arguments Dim MyECCVariable As String Dim MyECCArrayVariable As Integer If MyCall.IsValid(CTIOS_ECC) = True Then Set MyECCData = MyCall.GetValueArray(CTIOS_ECC) If MyECCData.IsValid("user.MyECC") Then MyECCVariable = MyECCData.GetValueString("user.MyECC") End If If MyECCData.IsValid("user.MyArray[2]") Then MyECCArrayVariable = MyECCData.GetValueInt("user.MyArray[2]") End If End If
The same thing in Java is as follows:
if(Call != null){ Arguments rArgEcc = new Arguments(); rArgEcc = Call.GetValueArray(CTIOS_ECC); if(null != rArgEcc) { rArgEcc.NumElements(); Integer intVal = rArgEcc.GetValueIntObj("user.MyECC"); String strVal = rArgEcc.GetValueString("userMyArray[2]"); } }
ECC Values
If you want to add ECC values to a call without deleting ones that are already set in the call, retrieve the ECC variables and then add the new ones as shown in C++ without COM:
Arguments & RequestArgs = Arguments::CreateInstance(); Arguments * pECCData = NULL; // presumes that we have a Call object pointer in pCall if (pCall->IsValid (CTIOS_ECC)) pCall->GetValueArray(CTIOS_ECC, &pECCData); else Arguments::CreateInstance(&pECCData); pECCData->AddItem("user.MyECC", "FirstECCVariable"); pECCData->AddItem("user.MyArray[2]", 2222); RequestArgs.AddItem(CTIOS_ECC, *pECCData); pCall->SetCallData(RequestArgs); RequestArgs.Release(); pECCData->Release();
The same thing in VB is as follows:
Dim MyRequestArgs As New CTIOSARGUMENTSLib.Arguments Dim MyECCData As CTIOSARGUMENTSLib.Arguments If MyCall.IsValid(CTIOS_ECC) Then Set MyECCData = MyCall.GetValueArray(CTIOS_ECC) Else Set MyECCData = New CTIOSARGUMENTSLib.Arguments End If MyECCData.AddItem("user.MyECC", "FirstECCVariable") MyECCData.AddItem("user.MyArray[2]", 2222) MyRequestArgs.AddItem("ECC", MyECCData) MyCall.SetCallData(MyRequestArgs)
The same thing in Java is as follows:
Arguments rRequestArgs = new Arguments(); if(Call != null) { Arguments rArgEcc = Call.GetValueArray(CTIOS_ECC); if(null == rArgEcc) { rArgEcc = new Arguments(); } rArgEcc.SetValue("user.MyEcc", 22222); rArgEcc.SetValue("user.MyArray[3]", "new data"); rRequestArgs.SetValue(CTIOS_ECC, rArgEcc); Call.SetCallData(rRequestArgs); }
Properties
The following table lists the available Call object properties.
Note | The data type listed for each keyword is the standardized data type discussed in CTI OS CIL Data Types. For more information, see Table 1 for the appropriate language specific types for these keywords. |
Keyword |
Type |
Description |
---|---|---|
ANI |
STRING |
The calling line ID of the caller. |
CallerEnteredDigits |
STRING |
The digits entered by the caller in response to IVR prompting. |
CallStatus |
SHORT |
The current status of the call. |
CallType |
SHORT |
The general classification of the call type. |
CallVariable1 |
STRING |
Call-related variable data. |
CallVariable2 |
STRING |
Call-related variable data. |
CallVariable3 |
STRING |
Call-related variable data. |
CallVariable4 |
STRING |
Call-related variable data. |
CallVariable5 |
STRING |
Call-related variable data. |
CallVariable6 |
STRING |
Call-related variable data. |
CallVariable7 |
STRING |
Call-related variable data. |
CallVariable8 |
STRING |
Call-related variable data. |
CallVariable9 |
STRING |
Call-related variable data. |
CallVariable10 |
STRING |
Call-related variable data. |
CallWrapupData |
STRING |
Call-related variable data. |
ClassIdentifier |
INT |
Private; for internal use only. |
DialedNumber |
STRING |
The number dialed. |
DNIS |
STRING |
The DNIS provided with the call. |
ECC |
ARGUMENTS |
Arguments structure of key-value pairs of ECC variables. |
ICMEnterpriseUniqueID |
STRING |
Required only when the call is pre-routed. |
LineType |
SHORT |
Indicates the type of the teleset line. |
MeasuredCallQTime |
INT |
Number of seconds this call was in a local queue before being delivered to the agent. |
PeripheralID |
INT |
The Unified ICM PeripheralID of the ACD where the call activity occurred. |
RouterCallKeyCallID |
INT |
The call key created by the Unified ICM. The Unified ICM resets this counter at midnight . |
Router CallKeyDay |
INT |
Together with the RouterCall KeyCallID field forms the unique 64-bit key for locating this call's records in the Unified ICM database . Only provided for Post-routed and Translation-routed calls. |
ServiceID |
INT |
The Unified ICM ServiceID of the service that the call is attributed to. May contain the special value NULL_SERVICE when not applicable or not available. |
ServiceNumber |
INT |
The service that the call is attributed to, as known to the peripheral. May contain the special value NULL_SERVICE when not applicable or not available. |
SkillGroupID |
INT |
The system-assigned identifier of the agent SkillGroup the call is attributed to. May contain the special value NULL_SKILL_ GROUP when not applicable or not available. |
SkillGroupNumber |
INT |
The optional, user-defined number of the agent SkillGroup the call is attributed to, as known to the peripheral. May contain the special value NULL_ SKILL_GROUP when not applicable or not available. |
UniqueObjectID |
STRING |
An object ID that uniquely identifies the Call object. |
UserToUserInfo |
STRING |
The ISDN user-to-user information element. |
Methods
The following table lists the available Call object methods.
Method |
Description |
---|---|
Alternate |
Places the current call on hold and retrieves a previously held call. |
Answer |
Answers a call that is in the alerting or ringing state. |
Clear |
Clears a call, dropping all parties to the call. |
ClearConnection |
Hangs up a call, leaving other parties in a conference call. If there are only two parties on the call it clears the call. |
Conference |
Either establishes a three party conference call or adds a new party to an existing conference call. |
DumpProperties |
For more information, see CtiOs Object |
GetAllProperties |
For more information, see CtiOs Object |
GetCallContext |
Gets data associated with the call other than call and expanded call context (ECC) variables. |
GetCallData |
Obtains call and expanded call context (ECC) variables. |
GetElement |
For more information, see CtiOs Object |
GetLastError (.NET only) |
Returns the last error that occurred on the calling thread. |
GetNumProperties |
For more information, see CtiOs Object |
GetPropertyName |
For more information, see CtiOs Object |
GetPropertyType |
For more information, see CtiOs Object |
GetValue methods |
Retrieve a property from the Call object based on the property's name key. |
Hold |
Places a current call on hold. |
IsValid |
For more information, see CtiOs Object |
MakeConsultCall |
Places a current call on hold and makes a new call. |
Reconnect |
Clears the current call and then retrieves a held call. |
Retrieve |
Retrieves a held call. |
SetCallData |
Sets call and expanded call context (ECC) variables. |
SendDTMFSignal |
Requests the ACD to send a sequence of DTMF tones. |
SingleStepConference |
Performs a single step conference. |
SingleStepTransfer |
Performs a single step transfer. |
Snapshot |
Issues a server request to get the current call information, including call data and a list of associated devices and the connection state for the call of each device. |
StartRecord |
Starts recording of a call. |
StopRecord |
Stops recording of a call. |
Transfer |
Transfers a call to a third party. |
- Argument Parameters
- Alternate
- Answer
- Clear
- ClearConnection
- Conference
- GetCallContext
- GetCallData
- Hold
- MakeConsultCall
- Reconnect
- Retrieve
- SendDTMFSignal
- SetCallData
- SingleStepConference
- SingleStepTransfer
- Snapshot
- StartRecord
- StopRecord
- Transfer
Argument Parameters
The following rules apply to the optional_args and reserved_args parameters in Call object methods:
Alternate
The Alternate method combines the action of placing a talking call on hold and then retrieving a previously held call at the same device. If there are only two calls at the device, this method can be called via either the current or the held call.
Syntax
- C++
-
int Alternate() int Alternate(Arguments & reserved_args);
- COM
- HRESULT Alternate (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode );
- VB
- Alternate([reserved_args As IArguments]) As Long
- Java
- int Alternate(Arguments rArgs);
- .NET
- CilError Alternate(Arguments args)
Parameters
A valid Arguments object, which can be empty. Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
For switches that allow more than two calls at a device (for example G3), make this request only through the desired held call, because of the ambiguity caused by multiple held calls at the device.
You must make the Alternate request via a call whose status is either LCS_CONNECT or LCS_HELD or it fails.
The following events are received if this request is successful.
For the call making the Alternate request:
For the originally current call:
The following events are received by the call making the Alternate request if this request fails:
Answer
The Answer method answers a call that is in the alerting or ringing state (i.e., call status of LCS_ALERTING).
Syntax
- C++
int Answer() int Answer(Arguments & reserved_args)
- COM
- HRESULT Answer (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- Answer([reserved_args As IArguments]) As Long
- Java
- int Answer(Arguments rArgs)
- .NET
- CilError Answer(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
You can answer a call after the OnCallDelivered event is received. You must make the Answer request via a call whose call status LCS_ALERTING or it fails.
The following events are received if this request is successful:
The following events are received if this request fails:
Clear
The Clear method clears the call and drops all parties to the call.
Syntax
- C++
- int Clear()int Clear(Arguments & reserved_args);
- COM
- HRESULT Clear (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- Clear([reserved_args As IArguments]) As Long
- Java
- int Clear(Arguments rArgs);
- .NET
- CilError Clear(Arguments args);
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
In the case of a multi-party Conference call, calling Clear() results in all of the parties to the call being hung up. (If this is not the desired behavior, see the ClearConnection method.) Under certain switches the Clear request is made via a call whose status is LCS_CONNECT or LCS_INITIATE or it fails. Many other switches allow the Clear method to be called via a call whose status is LCS_ALERTING or LCS_HOLD. It can never be made via a call whose status is LCS_NULL indicating that it is already cleared.
The following events are received if this request is successful:
The following events are received if this request fails:
Note | The Clear method is not supported on Unified CCE. Use of the Clear method with Unified CCE results in loss of third-party call control. To avoid this error, applications should use the ClearConnection method instead of Clear to hang up a call. |
ClearConnection
If there are only two parties to the call, ClearConnection clears the call. However, for a multi-party conference call, only one connection is dropped, which is its own connection.
Syntax
- C++
int ClearConnection() int ClearConnection(Arguments & reserved_args);
- COM
- HRESULT ClearConnection (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode)
- VB
- ClearConnection([reserved_args As IArguments]) As Long
- Java
- int ClearConnection(Arguments rArgs);
- .NET
- CilError ClearConnection(Arguments args);
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
As with the Clear method, under certain switches you must make the ClearConnection request via a call whose status is LCS_CONNECT or LCS_INITIATE or it fails. Many other switches allow the Clear method to be called via a call whose status is LCS_ALERTING or LCS_HOLD. It can never be made via a call whose status is LCS_NULL indicating that it is already cleared.
The following events are received if this request is successful:
If this is a two party call, these events are followed by:
The following events are received if this request fails:
Conference
The Conference method either begins a new conference call or adds an additional call to an existing conference call. When it begins a new conference call, it combines an original two-party call with a two-party consult call (where the two calls have a common party) into a single three party call. Only the common party (which is called the "Conference Controller") can call this method to make the new conference call. You can call this method on either of the Conference Controller's calls.
Syntax
- C++
int Conference(); int Conference(Arguments& optional_args)
- COM
- HRESULT Conference ( /*[in, optional]*/ IArguments *optional_args, (/*[out, retval]*/ int * errorcode )
- VB
- Conference([optional_args As IArguments]) As Long
- Java
- int Conference(Arguments optional_args)
- .NET
- CilError Conference(Arguments optional_args)
Parameters
An optional input parameter, which is a pointer or reference to an Arguments array that contains a member with the string value that is the UniqueObjectID of the call to which this call is conferenced. If this argument is used, add it to the Arguments parameter with the keyword of "CallReferenceObjectID". This is only necessary in an environment where there are multiple held calls and the request is made through the talking call. If the request is made through a specific held call in this scenario, or if there are only two calls at the device, this parameter is unnecessary.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
Before making this request, the original call must be in the held state and the consult call in the talking state or the request fails. Therefore, if the calls are alternated (see Alternate), they must be alternated again to return the two calls to their appropriate states.
If there are only two calls at the device, you can call this method using either the current or held call. For switches which allow more than two calls at a device (for example G3), make this request through the desired held call to avoid the ambiguity caused by multiple held calls at the device. Otherwise, indicate the desired held call using the optional parameter.
You must make the Conference request via a call whose call status is LCS_CONNECT or LCS_HELD or it fails.
On certain switches (notably Unified CCE), only the Conference Controller (the party that first initiated the conference call) can add additional parties to an existing conference call.
The following events are received if this request is successful:
The following events are received if this request fails:
GetCallContext
The GetCallContext method returns an Arguments array containing the values for call properties other than CallVariables and ECC Variables, such as ANI, DNIS, and the other properties listed in the following table.
Syntax
- C++
- int GetCallContext(Arguments& args)
- COM
- HRESULT GetCallContext (/*[out,retval]*/ IArguments ** args)
- VB
- GetCallContext (CTIOSCLIENTLib.IArguments args)
- Java
- Arguments GetCallContext()
- .NET
- Arguments GetCallContext()
Parameters
C++, COM, and VB: An output parameter containing a reference or a pointer to an Arguments array containing any of the members in the following table that are present in the call.
Return Value
C++, COM, and VB: Default HRESULT return values. For more information, see CIL Coding Conventions.
Java/.NET: A reference to an Arguments array that, on return, holds name/value pairs from the following table. You can access any of these parameters included from the Arguments array using the associated keyword.
Keyword |
Type |
Description |
---|---|---|
ANI |
STRING |
The calling line ID of the caller. |
CallerEnteredDigits |
STRING |
The digits entered by the caller in response to IVR prompting. |
CallType |
SHORT |
The general classification of the call type. |
CallWrapupData |
STRING |
Call-related wrapup data. |
ConnectionCallID |
UINT |
The Call ID value assigned to this call by the peripheral or the Unified ICM. |
DialedNumber |
STRING |
The number dialed. |
DNIS |
STRING |
The DNIS provided with the call. |
ICMEnterpriseUniqueID |
STRING |
A unique identifier for this contact throughout the enterprise. This can track a single customer contact across multiple sites, for example, when a call is transferred between agents. |
ServiceID |
INT |
The Unified ICM identifier for the Service to which this call was routed. |
ServiceNumber |
INT |
The ACD number of the Service to which this call was routed. |
SkillGroupID |
INT |
The system-assigned identifier for the SkillGroup to which this call was routed. |
SkillGroupNumber |
INT |
An optional, user-defined number of the SkillGroup at the ACD to which this call was routed. |
UniqueObjectID |
STRING |
A unique object ID for the call. |
UserToUserInfo |
STRING |
The ISDN user-to-user information element. |
Remarks
This is a convenience method to call and get all of a call's non-CallVariable data at one time. If only certain data members are desired, call the appropriate GetValue method for each instead.
GetCallData
The GetCallData method returns the values ofCallVariable1 through CallVariable10 and all of the ECC (Extended CallContext) variables.
Syntax
- C++
- int GetCallData(Arguments& args)
- COM
- HRESULT GetCallData (/*[out,retval]*/ IArguments ** args)
- VB
- GetCallData (CTIOSCLIENTLib.IArguments args)
- Java
- Arguments GetCallData()
- .NET
- Arguments GetCallData()
Parameters
C++, COM, and VB: An output parameter containing a reference or a pointer to an Arguments array containing the call data, as described under Remarks.
Return Value
C++, COM, and VB: Default HRESULT return values. For more information, see CIL Coding Conventions.
Java/.NET: A reference to an Arguments array that, on return, holds parameters described under Remarks.
Remarks
This is a convenience method to call and get all of a call's CallVariables (1 through 10) and ECC Call Variables at one time. If only certain call variables are desired, call the appropriate GetValue method for each instead.
Access the data in the following way:
- To access the values for individual CallVariables from the arguments parameter, use GetValueString with either the keywords of "CallVariable1" through "CallVariable10".
To access ECC call data, use the following procedure:
- First, get the ECC variables as a whole from the arguments parameter, using GetValueArray with the keyword "ECC". This returns another Arguments array that is nested in the Arguments array returned from GetCallData.
- To access an individual ECC scalar variable from this Arguments array, use the appropriate GetValueString, GetValueInt, etc. depending on the variable's type, using the string keyword "user.VariableName".
- To access an individual ECC array variable from this Arguments array, use the appropriate GetValueString, GetValueInt, etc. depending on the variable's type, using the string keyword "user.ArrayName[n]", where n is a zero based integer that notes the offset in the array.
Hold
Syntax
- C++
int Hold() int Hold(Arguments & reserved_args);
- COM
- HRESULT Hold (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- Hold([reserved_args As IArguments]) As Long
- Java
- Arguments Hold(Arguments rArgs)
- .NET
- Arguments Hold(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
You must make the Hold request via a call whose call status is LCS_CONNECT or it fails.
The following events are received if this request is successful:
The following events are received if this request fails:
MakeConsultCall
The MakeConsultCall method initiates the combined action of placing the associated current call on hold and then making a new call. By default, the call context data (including call variables) of the current call is used to initialize the context data of the new consultation call. The application can override some or all of the original call context in the consultation call by providing the desired values in this request.
The simplest form of the request only requires a dialed number and a consult type. The request can also include optional parameters, as listed in the following table.
Syntax
- C++
- int MakeConsultCall (Arguments& args))
- COM
- HRESULT MakeConsultCall (/*[in]*/ IArguments *args, /*[out, retval]*/ int * errorcode)
- VB
- MakeConsultCall (args As CTIOSCLIENTLib.IArguments) As Long
- Java
- int MakeConsultCall(Arguments args)
- .NET
- CilError MakeConsultCall(Arguments args)
Parameters
An output parameter of either a reference or a pointer to an Arguments array that contains parameters from the following table. Any of these parameters included are added to the Arguments array using the associated key word.
Parameter |
Type |
Description |
---|---|---|
DialedNumber (required) |
STRING, maximum length 40 |
Dialed number; the number to be dialed to establish the new call. |
ConsultType (required) |
INT |
A value specifying whether this consult call is in preparation for either a transfer or a conference, as specified in the ConsultType Table. |
CallPlacementType (optional) |
STRING, maximum length 40 |
A value specifying how the call is to be placed identified in Table 2. |
CallMannerType (optional) |
INT |
A value specifying additional call processing options identified in Table 3. |
AlertRings (optional) |
INT |
The maximum amount of time that the call's destination will remain alerting, specified as an approximate number of rings. A zero value indicates that the peripheral default (typically 10 rings) should be used. |
CallOption (optional) |
INT |
A value from Table 4 specifying additional peripheral-specific call options. |
FacilityType (optional) |
INT |
A value from Table 5 indicating the type of facility to be used. |
AnsweringMachine (optional) |
INT |
A value from Table 6 specifying the action to be taken if the call is answered by an answering machine. |
Priority (optional) |
BOOL |
Set this field to TRUE if the call should receive priority handling. |
PostRoute (optional) |
BOOL |
When this field is set to TRUE, the Post-Routing capabilities of the Unified ICM determine the new call destination. |
UserToUserInfo (optional) |
STRING, maximum length 40 |
The ISDN user-to-user information. |
CallVariable1 (optional) |
STRING, maximum length 40 |
Call variable data that is set in the new call in place of the corresponding data in the current call. |
... |
... |
... |
CallVariable10 (optional) |
||
ECC |
ARGUMENTS |
ECC data that is set in the new call in place of the corresponding data in the current call. |
CallWrapupData (optional) |
STRING, maximum length 40 |
Call-related wrapup data. |
FacilityCode (optional) |
STRING, maximum length 40 |
A trunk access code, split extension, or other data needed to access the chosen facility. |
AuthorizationCode (optional) |
STRING, maximum length 40 |
An authorization code needed to access the resources required to initiate the call. |
AccountCode (optional) |
STRING, maximum length 40 |
A cost-accounting or client number used by the peripheral for charge-back purposes. |
CallPlacementType |
Description |
Value |
---|---|---|
CPT_UNSPECIFIED |
Use default call placement. |
0 |
CPT_LINE_CALL |
An inside line call. |
1 |
CPT_OUTBOUND |
An outbound call. |
2 |
CPT_OUTBOUND_NO_ ACCESS_CODE |
An outbound call that does not require an access code. |
3 |
CPT_DIRECT_POSITION |
A call placed directly to a specific position. |
4 |
CPT_DIRECT_AGENT |
A call placed directly to a specific agent. |
5 |
CPT_SUPERVISOR_ASSIST |
A call placed to a supervisor for call handling assistance. |
6 |
CallMannerType |
Description |
Value |
---|---|---|
CMT_UNSPECIFIED |
Use default call manner. |
0 |
CMT_POLITE |
Attempt the call only if the originating device is idle. |
1 |
CMT_BELLIGERENT |
Always attempt the call, disconnecting any currently active call. |
2 |
CMT_SEMI_POLITE |
Attempt the call only if the originating device is idle or is receiving dial tone. |
3 |
CallOption |
Description |
Value |
---|---|---|
COPT_UNSPECIFIED |
No call options specified, use defaults. |
0 |
COPT_CALLING_ AGENT_ONLINE |
Attempt the call only if the calling agent is "online" (available to interact with the destination party). |
1 |
COPT_CALLING_ AGENT_RESERVED |
Attempt the call only if ACDNR on the calling agent's set is activated (DMS-100). |
2 |
COPT_CALLING_ AGENT_NOT_ RESERVED |
Attempt the call only if ACDNR on the calling agent's set is not activated (DMS-100). |
3 |
COPT_CALLING_ AGENT_BUZZ_BASE |
Applies a buzz to the base of the telephone set as the call is initiated (DMS-100). |
4 |
COPT_CALLING_ AGENT_BEEP_HSET |
Applies a tone to the agent headset as the call is initiated (DMS-100). |
5 |
COPT_SERVICE_ CIRCUIT_ON |
Applies a call classifier to the call (ACM ECS) |
6 |
FacilityType |
Description |
Value |
---|---|---|
FT_UNSPECIFIED |
Use default facility type. |
0 |
FT_TRUNK_GROUP |
Facility is a trunk group. |
1 |
FT_SKILL_GROUP |
Facility is a skill group or split. |
2 |
AnsweringMachine |
Description |
Value |
---|---|---|
AM_UNSPECIFIED |
Use default behavior. |
0 |
AM_CONNECT |
Connect call to agent when call is answered by an answering machine. |
1 |
AM_DISCONNECT |
Disconnect call when call is answered by an answering machine. |
2 |
AM_NONE |
Do not use answering machine detection. |
3 |
AM_NONE_NO_ MODEM |
Do not use answering machine detection, but disconnect call if answered by a modem. |
4 |
AM_CONNECT_NO_MODEM |
Connect call when call is answered by an answering machine, disconnect call if answered by a modem. |
5 |
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
You must make the MakeConsultCall request via a call whose call status is LCS_CONNECT or it fails. Calling MakeConsultCall successfully results in the same events as a successful MakeCall called on the agent.
The following events are received if this request is successful:
For the call making the MakeConsultCallRequest:
For the newly created outgoing consult call:
For the new connection that is ringing as a result of the consult call:
The following events are received if this request fails:
Reconnect
The Reconnect method combines the action of releasing a current call and then retrieving a previously held call at the same device. If there are only two calls at the device, this method can be called via either the talking or the held call.
Syntax
- C++
-
int Reconnect() int Reconnect(Arguments & reserved_args)
- COM
- HRESULT Reconnect (/*[in,optional]*/ IArguments * reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- Reconnect([reserved_args As IArguments]) As Long
- Java
- int Reconnect(Arguments rArgs)
- .NET
- CilError Reconnect(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
For switches that allow more than two calls at a device (for example G3), make this request only through the desired held call because of the ambiguity caused by multiple held calls at the device.
You must make the Alternate request via a call whose status is either LCS_CONNECT or LCS_HELD or it fails.
The following events are received if this request is successful:
For the call making the Reconnect request:
For the originally current call:
The following events are received by the call making the Alternate request if this request fails:
Retrieve
Syntax
- C++
int Retrieve() int Retrieve(Arguments & reserved_args)
- COM
- HRESULT Retrieve (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- Retrieve([reserved_args As IArguments]) As Long
- Java
- int Retrieve(Arguments rArgs)
- .NET
- CilError Retrieve(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
You must make the Retrieve request via a call whose call status is LCS_HELD or it fails.
The following events are received if this request is successful:
The following events are received if this request fails:
SendDTMFSignal
The SendDTMFSignal method requests that the ACD send a sequence of DTMF tones.
Syntax
- C++
- int SendDTMFSignal(Arguments& args)
- COM
- HRESULT SendDTMFSignal (/*[in]*/ args *arguments, /*[out, retval]*/ int * errorcode)
- VB
- SendDTMFSignal (args As CTIOSCLIENTLib.IArguments, errorcode As Long)
- Java
- int SendDTMFSignal(Arguments rArgs)
- .NET
- CilError SendDTMFSignal(Arguments args)
Parameters
An input parameter of either a reference or a pointer to an Arguments array containing parameters from following table. You can add any of these parameters included to the Arguments array using the associated key word.
Parameter |
Type |
Description |
---|---|---|
DTMFString (required) |
STRING. maximum length 32 |
The sequence of tones to be generated. |
ToneDuration (optional) |
INT |
Specifies the duration in milliseconds of DTMF digit tones. Use 0 to take the default. Can be ignored if the peripheral is unable to alter the DTMF tone timing. |
PauseDuration (optional) |
INT |
Specifies the duration in milliseconds of DTMF inter-digit spacing. Use 0 to take the default. Can be ignored if the peripheral is unable to alter the DTMF tone timing. |
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
SetCallData
The SetCallData method sets any or all of a call's CallVariables (1 through 10) and ECC data at one time.
Syntax
- C++
- int SetCallData(Arguments& args)
- COM
- HRESULT SetCallData (/*[in]*/ args *arguments, /*[out]*/ int * errorcode)
- VB
- SetCallData (args As CTIOSCLIENTLib.IArguments, errorcode As Long)
- Java
- int SetCallData(Arguments rArgs)
- .NET
- CilError SetCallData(Arguments args)
Parameters
- args
An input parameter of either a reference or a pointer to an Arguments array containing parameters described under Remarks for GetCallData.
- errorcode
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
You must specify the data for all elements in the Arguments array, not just those elements that you want to change. Failure to do so causes the unchanged elements to disappear.
The following events are sent if this request succeeds:
The OnControlFailureConf event is sent if this request fails.
SingleStepConference
The SingleStepConference method initiates a one-step conference without the intermediate consultative call so that when the called party answers, they are joined in the current call. This method requires a DialedNumber argument. This method is not supported under all switches.
Note | The SingleStepConference method is not supported for the Unified CCE . |
Syntax
- C++
- int SingleStepConference(Arguments& args)
- COM
- HRESULT SingleStepConference (IArguments *args, int * errorcode)
- VB
- SingleStepConference (args As CTIOSCLIENTLib.IArguments, errorcode As Long)
- Java
- int SingleStepConference(Arguments rArgs)
- .NET
- CilError SingleStepConference(Arguments args)
Parameters
An output parameter of either a reference or a pointer to an Arguments array containing parameters from the following table. You can add any of these parameters included to the Arguments array using the associated keyword.
Parameter |
Type |
Description |
---|---|---|
DialedNumber (required) |
STRING, maximum length 40 |
Dialed number; the number to be dialed to establish the new call. |
CallPlacementType (optional) |
STRING, maximum length 40 |
A value specifying how the call is to be placed identified in Table 2. |
CallMannerType (optional) |
INT |
A value specifying additional call processing options identified in Table 3. |
AlertRings (optional) |
INT |
The maximum amount of time that the call's destination will remain alerting, specified as an approximate number of rings. A zero value indicates that the peripheral default (typically 10 rings) should be used. |
CallOption (optional) |
INT |
A value from Table 4 specifying additional peripheral-specific call options. |
FacilityType (optional) |
INT |
A value from Table 5 indicating the type of facility to be used. |
AnsweringMachine (optional) |
INT |
A value from Table 6 specifying the action to be taken if the call is answered by an answering machine. |
Priority (optional) |
BOOL |
Set this field to TRUE if the call should receive priority handling. |
PostRoute (optional) |
BOOL |
When this field is set to TRUE, the Post-Routing capabilities of the Unified ICM determines the new call destination. |
UserToUserInfo (optional) |
STRING, maximum length 40 |
The ISDN user-to-user information. |
CallVariable1 (optional) |
STRING, maximum length 40 |
Set call variable data in the new call in place of the corresponding data in the current call. |
... |
... |
... |
CallVariable10 (optional) |
||
ECC |
ARGUMENTS |
Set ECC data in the new call in place of the corresponding data in the current call. |
FacilityCode (optional) |
STRING, maximum length 40 |
A trunk access code, split extension, or other data needed to access the chosen facility. |
AuthorizationCode (optional) |
STRING, maximum length 40 |
An authorization code needed to access the resources required to initiate the call. |
AccountCode (optional) |
STRING, maximum length 40 |
A cost-accounting or client number used by the peripheral for charge-back purposes. |
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
The DialedNumber is the only required member necessary in the Arguments parameter. A SingleStepConference request fails if the call's status is not LCS_CONNECT.
The following events are received if this request is successful:
- OnAgentStateChange event (Hold)
- OnCallHeld event
- OnAgentStateChange event (Talking)
- OnBeginCall event
- OnServiceInitiated event
- OnCallOriginated event
- OnCallDelivered event
- OnCallConferenced event
- OnCallEnd event
- ConferenceCallConf event
The OnControlFailureConf event is received if this request fails.
SingleStepTransfer
The SingleStepTransfer method initiates a one-step transfer without the intermediate consultative call. When the called party answers the call, the called party is talking to the party to be transferred and the transferring party drops out of the call. The method requires a DialedNumber argument.
Syntax
- C++
- int SingleStepTransfer(Arguments& args)
- COM
- HRESULT SingleStepTransfer (/*[in]*/ IArguments * args, /*[out, retval]*/ int * errorcode)
- VB
- SingleStepTransfer (args As CTIOSCLIENTLib.IArguments, errorcode As Long)
- Java
- int SingleStepTransfer(Arguments rASrgs)
- .NET
- CilError SingleStepTransfer(Arguments args)
Parameters
An output parameter of either a reference or a pointer to an Arguments array containing parameters from Table 1. You can add any of these parameters included to the Arguments array using the associated keyword.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Snapshot
The Snapshot method issues a server request to retrieve the current call information. If values are passed in the optional args parameter, the snapshot request returns the server's current call values for only the requested arguments. Otherwise all call information is returned, including the fields described under GetCallContext and GetCallData. For more information about OnCallDataUpdate, see OnCallDataUpdate in Event Interfaces and Events.
Syntax
- C++
int Snapshot() int Snapshot(Arguments & optional_args)
- COM
- HRESULT Snapshot (/*[in,optional]*/ IArguments * optional_args, (/*[out, retval]*/ int * errorcode )
- VB
- Snapshot([optional_args As IArguments]) As Long
- Java
- int Snapshot(Arguments rArgs)
- .NET
- CilError Snapshot(Arguments Args)
Parameters
An input parameter of either a pointer or a reference to an Arguments array.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
The current information about the call is received in the OnCallDataUpdate event.
StartRecord
Syntax
- C++
int StartRecord() int StartRecord(Arguments & reserved_args);
- COM
- HRESULT StartRecord (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- StartRecord([reserved_args As IArguments]) As Long
- Java
- int StartRecord(Arguments rArgs)
- .NET
- CilError StartRecord(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
Calling this method causes the CTI Server to forward the request to one or more server applications that have registered the "Cisco:CallRecording" service as described in the CTI Server Message Reference Guide (Protocol Version 14) for Cisco Unified ICM/Contact Center Enterprise & Hosted (Protocol Version 14) for Cisco Unified ICM/Contact Center Enterprise & Hosted. It fails if there is no recording server available to CTIServer.
StopRecord
Syntax
- C++
int StopRecord() int StopRecord(Arguments & reserved_args);
- COM
- HRESULT StopRecord (/*[in,optional]*/ IArguments *reserved_args, (/*[out, retval]*/ int * errorcode )
- VB
- StopRecord([reserved_args As IArguments]) As Long
- Java
- int StopRecord(Arguments rArgs)
- .NET
- CilError StopRecord(Arguments args)
Parameters
Not currently used, reserved for future use.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Value
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
Calling this method causes the CTIServer to forward the request to the server application with the SessionID received in the OnStartRecordingConf event if non-zero, or if that SessionID is zero, to one or more server applications that have registered the "Cisco:CallRecording" service as described in the CTI Server Message Reference Guide (Protocol Version 14) for Cisco Unified ICM/Contact Center Enterprise & Hosted. It fails if there is no recording server available to CTIServer.
Transfer
The Transfer method transfers a call to a third party. You can call this method on either the held original call or the current consult call. If the device has only these two calls, the optional parameter is not necessary. At the end of a successful transfer, both of these calls are gone from the device. For more information, see the Conference method.
Syntax
- C++
int Transfer(); int Transfer(Arguments& optional_args)
- COM
- HRESULT Transfer ( [in, optional] IArguments *optional_args, (/*[out, retval]*/ int * errorcode )
- VB
- Transfer([optional_args As IArguments]) As Long
- Java
- int Transfer(Arguments rArgs)
- .NET
- CilError Transfer(Arguments args)
Parameters
An optional input parameter containing a member with a string value that is the UniqueObjectID of the call that is participating in the transfer. If this argument is used, add it to the Arguments parameter with the keyword of "CallReferenceObjectID". This is only necessary in an environment where there are multiple held calls and the request is made through the current call. If the request is made through a specific held call in this scenario, or if there are only two calls at the device, this parameter is unnecessary.
An output parameter (return parameter in VB) that contains an error code from Table 1.
Return Values
Default CTI OS return values. For more information, see CIL Coding Conventions.
Remarks
Before making this request, the original call must be in the held state and the consult call in the talking state or the request fails. Therefore, if the calls are alternated (for more information, see Alternate), they must be alternated again to return the two calls into their appropriate states.
If there are only two calls at the device, call this method using either the current or held call. For switches that allow more than two calls at a device (for example G3), make this request only through the desired held call to avoid the ambiguity caused by multiple held calls at the device. Otherwise, indicate the desired held call by using the optional parameter.
You must make the Transfer request via a call whose call status is LCS_CONNECT or LCS_HELD or it fails.
The following events are received by the transfer initiator if this request is successful:
- OnCallTransferred event
- OnCallEnd event
- OnCallEnd event
- OnAgentStateChange event
- OnTransferCallConf event
The OnControlFailureConf event is received if this request fails.