Telephony functions: CTI capabilities invocation from your application
Pega Call provides an API of activities that you can use to invoke device capabilities such as call control and agent state management. For example, you can call an activity to answer a phone call or make a customer service representative (CSR) or agent available to receive phone calls from customers.
These activities are used by the telephony toolbars. You can also invoke the activities from within your application and business processes. The activities are in class ChannelServices-Device-Phone.
In most cases, call and agent state changes generate events from the CTI platform to Pega Call.
Attaching call data on telephony functions
You can associate data with a call when invoking call control requests that place, transfer, or conference calls. Pega Call provides data transform rule(s) in class ChannelServices-Request-CallOptions-Genesys for use with local and remote CTI links that use Genesys CTI. Copy the relevant data transform to your application ruleset and modify it to set the data you need to associate with the call. You can review the sample data transform ChannelServices-Request-CallOptions-Genesys.MakeCall.
Use the value group pyNamedVariables with the Genesys keys as the subscript. Source data includes references to pages on the user's clipboard.
Genesys variable types
By default, Pega Call variables are set as strings in Genesys call data. If you want to use a different type, use the value group pyNamedVariableDataType to map the variable-name to the required data type – "INTEGER", "UTF-16", or "BINARY".
Named variable aliases
Pega property names and the names of subscripts in value groups cannot use special characters – they must use Java variable naming conventions. If a Genesys key or variable name includes such a character (for example, cpm.customerName includes a period character), you can use an alias to represent the variable within Pega. You must then map the alias to the Genesys variable name using the value group pyNamedVariableAlias – these map the variable name used in pyNamedVariables (target) to the actual Genesys variable name (source).
Setting Genesys extensions and location
If you need to set Genesys extension parameters on call control requests that place, transfer, or conference calls, you can set them in the value group pyExtensions in the relevant data transform rules in class ChannelServices-Request-CallOptions-Genesys. If you need to set the Genesys location parameter, set the variable pyLocation in the relevant data transform rules.
Request and Response Events
In addition to the CTI events (agent state, call state) received from the CTI platform, the toolbars use two events for state change requests:
- SoftphoneRequest Event
- This event captures information related to a call control or agent state change request. The toolbar sends this event to invoke a corresponding call control or agent state change activity on the Pega server. These activities are described in the section Desktop Telephony Functions.
- SoftphoneResponse Event
- This event is a response to a SoftphoneRequest event. It indicates that the requested activity was invoked on the Pega server. The event includes the result or error returned by the activity. A “Good” result only indicates that the activity was run – it does not indicate that the call or agent state was changed as requested. A separate agent or call state event should follow, indicating the state change.
Extension point for the OFFERING activity
As a rule, do not override any of the activities used to process Pega Call events. If you need to perform any additional processing when a call arrives at a CSR’s phone (that is, as part of the event handling for OFFERING), you can override the activity pyPrefetch in your call class (for example, ChannelServices-Interaction-Call or PegaCA-CTI-Call).