CopiaFacts includes a feature which can be optionally enabled to report real-time status information to an external process. The current implementation uses MSMQ messages sent to a specified local or remote queue. The trigger conditions for sending a message are customizable and can include:
•reaching any specified processing state in the CopiaFacts state machine
•handling any specified event signaled by the board or port API in use
The first category of triggers allow monitoring of the top-level flow of a transaction, such as starting to dial a call, starting to send a fax, or hanging up a call. The triggers of most interest are likely to be common to all channel types in use, but there are a few small variations in how the call is processed on different boards.
The second category of triggers have more differences between channel types, but this would only affect a system with multiple types of channel in use. These triggers can be used to monitor the completion of each page sent or received. In the case of a faxmodem device, lower-level monitoring of fax negotiation is also possible.
The content of the MSMQ message is also customizable: you would normally specify a delimited string of multiple CopiaFacts variables which can include any of those reporting details of a sent or received fax. The content is currently the same for all triggers, so early in a call some of the values may be empty.
Documentation Links
Processing states: Appendix B and Appendix C
Configuration command: $monitor_qname
Variables with outcomes for sent faxes: OC_...
Variable values available post-receive: PR_...