Please enable JavaScript to view this site.

CopiaFacts™ Reference Manual

Navigation: Customizing CopiaFacts

Application Program Interfaces (APIs)

Scroll Prev Top Next More

CopiaFacts has a rich set of application program interfaces, which allow you easily to integrate your own applications with CopiaFacts' operations.

File-based API

If your application can drop a simple text file into a folder, you can send a fax, e-mail or voice message with CopiaFacts.  This API is described in the CopiaFacts Fax Send (FS) API topic.

For e-mail and SMS transactions we also provide an MSMQ interface which allows FS file images to be sent to CopiaFacts as MSMQ messages. This is not currently offered for fax transactions because the queue mechanism is not compatible with timed initiation of smart retries, which fax delivery more often involves.

For inbound fax, CopiaFacts provides a Call Control DLL interface to allow a user application to decide whether to accept an inbound call (based on DNIS and ANI, the called and calling numbers).  The DLL can be written as Win32 or .Net. Once the receive has started, you can use the MSMQ interfaces described below to monitor progress and get notification of the saved filename and its properties; or you can simply enable the provided standard scripts to process, forward to e-mail, or send notifications of the received fax.

Print-based API

If your application can print, then by printing to the Fax Save or FFMERGE print drivers, you can create a tif file and have it faxed.  For the fax save driver (FFSAVE) you have to provide an application which will for example use the File-based API to create an FS file for sending the fax. On the other hand with FFMERGE the process of faxing (or e-mailing) your document is fully automatic, controlled by a header line you write into the document in a special font.

E-Mail to Fax API

Applications which can send e-mails can also send faxes using your CopiaFacts E-Mail to Fax Gateway. For example you can create a domain such as fax.mycompany.com and send e-mails to a virtual mailbox consisting of any fax number at this domain (for example 6417416000@fax.copia.com).  On receipt, the Gateway will automatically send a fax to the specified number, converting Office and PDF attachments to fax format before transmission.  A DLL interface is also available to customize the validation of incoming e-mails.

Queue-based APIs

If your applications can read MSMQ messages, there are two ways you can collect information from CopiaFacts directly into your applications:

•You can specify a 'Notify Queue' using $notify_qname.  This can receive a message from COPIAFACTS after every completed transmission operation, outbound or inbound.  You have complete control over the data placed in the label and message body using the NQ... variables to specify the content.

•You can specify a 'Monitor Queue' using $monitor_qname. This queue can receive real-time messages from COPIAFACTS at every stage of a fax transmission or any other operation.  You have control over the call states or fax stages to be monitored.  For more information, see the Real-Time Status Monitoring topic.

CopiaFacts Scripting API

You can write complete and complex applications, as well as simple tasks, using the CopiaFacts Scripting API.  Running in the main COPIAFACTS engine, this API offers multiple hooks and full access to all active CopiaFacts variables as faxes, e-mails and voice messages are transmitted, and as faxes as received and IVR interaction occurs.  From scripting you can also:

•run programs, pass parameters, collect results

•call user-written DLLs using built-in DLL interfaces

•call utility functions in the CopiaFacts application support DLL

•directly access Database files using the Extended Database Interface

Job Administration API

Control of all aspects of the CopiaFacts Broadcast Job Administration system is exposed through a published DLL interface, which is also used by all CopiaFacts job applications.  The interface allows job setup, job launch and all aspects of the control of jobs to be performed by user-provided server, desktop or web applications.  The DLL can be called from unmanaged or .NET managed applications.  For details, see the Job Administration topics, and Appendix J.