Many SDMP messages (e.g. Agent Connect [AC], Transaction Complete [TC]) support data transfer using the Data (DT) parameter.
The Data (DT) parameter is associative, based on its use in Softdial Campaign Manager™ but also so that session data can be passed between different business processes during the session lifetime.
The Data (DT) parameter string may be in one of several formats:
The Softdial CallGem™ HTTP proxy re-presents SDMP as full-duplex server-to-server, half-duplex server-to-server and RESTful client APIs. Because of the prevalence of JavaScript in the integrator community, the HTTP proxy default response type is JSON.
Softdial CallGem™ parses the Data (DT) parameter on input and determines what type of framing the parameter has. If a set of key-value pairs of either form, it stores the data in a dictionary keyed by column name. Interactions with the session where the Data (DT) parameter value is changed result in the passed string being parsed and the dictionary entries being updated or added to.
Surely the Data (DT) parameter is application-specific?
The answer is that Softdial CallGem™ is a session manager and tracks session state and session data throughout its lifetime.
Let us consider a simple use case of an inbound call.
As you can see from this everyday real-world example, the need to keep a data dictionary associated with a session is fundamental to having joined-up workflows in the contact center.
Aficionados of programming languages like BASIC, PERL, Python and AWK will be familiar with associative behaviour when declaring variables. To declare a variable, just use it. If it does not exist it will be created and null-initialised.
With the Data (DT) parameter things are fairly similar.
If an IVR script gathers 3 pieces of data named foo, bar and qux and then transfers the session to a third party it will use the Data (DT) parameter to contain these 3 pieces of data (using legacy or XML framing).
Softdial CallGem™ now maintains a session data table looking like this:
Key | Value |
---|---|
foo | Hello |
bar | Everyone |
qux | 603.1769 |
The next application handling the call can use this data, and may add/ create data value of its own. Let us assume that the value for bar is set to “Everyone” and the value for norf is set to “Keys 1 to 5”
On passing this data back in to Softdial CallGem™ via one of the various APIs that handle the Data (DT) parameter, the session data would be updated to:
Key | Value |
---|---|
foo | Hello |
bar | Everyone |
qux | 603.1769 |
norf | Keys 1 to 5 |
At each stage where data is added to the data dictionary, Softdial CallGem™ does not discard previous data. This allows session data to be exchanged between potentially disparate contact center workflows.
Softdial Campaign Manager™ was first written as a console application in 2000 and the client-server version was released to production in 2002. XML did not have reliable library support until 2004.
Many early deployments have legacy integrations that use the pipe-delimited framing, therefore it is still supported. See the LegacyFraming registry key in Softdial CallGem™ Registry Settings and Softdial Campaign Manager™ Registry Settings.
Transmitting data using XML enables data that would otherwise corrupt an SQL statement to be escaped easily and consistently. Softdial Campaign Manager™ generates parameterised SQL which is dependent on XML data framing.
In addition, the rollforward recovery mechanism used by Softdial Campaign Manager™ is also based on parameterised SQL. For details, see Softdial Campaign Manager™ Database Issues.
Rollforward recovery on SQL database connections is an essential part of deploying Softdial Campaign Manager™ into large-scale installations and into the cloud. Rollforward recovery mitigates 3 key operational problems:
In addition, Softdial Campaign Manager™ has message APIs that support insertion into and update of the database table/ view associated with a campaign. These also deal with the data integrity issues related to updating records against an open snapshot-type cursor. The Insert Record [IR] and Update Record [UR] messages depend on XML data framing. See also Updating Campaign Tables .
For details of the XML format of a Data (DT) parameter, see XML Framing.
From V10.6.791 - data framing for applications that connect to Softdial Contact Center™ can be set per communication session. The Session Preferences [SP] message allows legacy integrations to specify that data is to be delivered using legacy framing. This allows legacy applications to continue to work without costly rework, but enables support for the rollforward recovery to be enabled independently.
When using DateTime type fields in a Softdial Campaign Manager™ table, the format of the date-time string used in the agent layer is tied to the Softdial Campaign Manager™ application data format.
yyyy-mm-dd[ hh:mm:ss[.9999999][ plus/minus hh:mm]]
For more information, please refer to:yyyy-mm-ddThh:mm:ss[.999]
This format is output by the Softdial Scripter™ 2 Current Date Time step.From V10.6.568 - a breaking change has been made to the format of the XML document used with the Data (DT) parameter. For details of this change, see the Softdial Campaign Manager™ XML Framing page.
Use of the Data (DT) parameter has evolved with Sytel’s ongoing development of Softdial Scripter™, Softdial Campaign Manager™, Workflow Server (for multimedia) and our core ACD. All of Sytel’s applications support use of the Data (DT) parameter in either legacy