Using Dynamic Link Libraries

The powerful features of CopiaFacts can be further extended by the use of calls to dynamic link libraries which you can write to implement custom features. Such DLLs can be written in any language which can build DLL files matching the calling conventions below.

Dynamic link libraries which you write must be capable of being called successfully from multiple threads at the same time. They must currently be true DLLs, not ActiveX components nor COM objects. These two conditions have been found to rule out Microsoft Visual Basic as a suitable language for creating DLLs to be called by CopiaFacts.  It is also not currently possible to call .NET managed code using this feature.

There are two types DLLs that can be called by the COPIAFACTS program. The first type is a general-purpose DLL which can be called from any infobox. You can have up to eight of these DLLs and you can define your own entry-point names, although the entry-point arguments are fixed. Among the uses for such DLLs are:

making custom database look-up or update calls

counting or recording specific IVR actions

logging incoming IVR calls

logging outgoing e-mail or faxes (using the infobox post-process type)

The second type of DLL is a 'call control DLL' which is invoked before CopiaFacts answers a call. This is used on ISDN systems to validate an incoming call based on DNIS and/or ANI, so that you can direct CopiaFacts to decline to accept an offered call (normally before the calling party is charged for the call). One call control DLL can be defined, with pre-defined entry-points. You can also include additional entry points in such a DLL and designate it as the active DLL for general-purpose use.

Details of the use of dynamic link libraries appear in the following sections:

General-Purpose DLL calls
Access to CopiaFacts Variables
The Call Control DLL
SMTP Gateway Custom Template DLL
Calling Conventions
DLL startup and Termination
Alternate Parameter Encoding