
Description | Example | Errors
Name: |
long ATFX_PHDCMD(dev) | |
Inputs: |
int dev |
fax channel device handle |
Returns: |
Phase D command after TFX_PHASED event if successful | |
|
AT_FAILURE if error | |
Includes: |
srllib.h | |
|
dxxxlib.h | |
|
faxlib.h | |
Category: |
extended attribute | |
Mode: |
synchronous | |
|
||
The ATFX_PHDCMD( ) function returns the Phase D command. The following are valid Phase D command values:
DFS_EOP |
End of Procedure -- Terminate fax session. Progress to Phase E and disconnect fax call. |
DFS_MPS |
Multi-Page Signal -- End of current fax document page, more fax data to follow. Next fax document page is in the same format as the current page, so proceed directly to Phase C. |
DFS_EOM |
End of Message -- End of current fax document page, more fax data to follow. Return to Phase B and negotiate parameters for next fax document page. |
DFS_POLL |
A poll request was sent |
DFS_PRI_EOP |
Request for operator intervention sent (PRI_EOP) |
DFS_PRI_MPS |
Request for operator intervention sent (PRI_MPS) |
DFS_PRI_EOM |
Request for operator intervention sent (PRI_EOM) |
See Appendix B for Phase D command details.
|
|
Parameter |
Description |
|
dev |
Specifies the channel device handle for the fax channel obtained when the channel was opened. |
The data provided by this function is updated each time the fax transfer completes Phase D of the T.30 protocol.
To monitor the Phase D commands, you must enable Phase D events and issue ATFX_PHDCMD( ) when the TFX_PHASED event occurs. Note that since Phase D also occurs at the end of a send or receive when a Phase D event is not generated, you can also issue this function after a TFX_FAXSEND or TFX_FAXRECV event.
The final Phase D command value returned by ATFX_PHDCMD( ) at the end of a fax session remains available to the application until a new send or receive is initiated on that channel.
#include <stdio.h>
#include <windows.h>
#include <srllib.h>
#include <dxxxlib.h>
#include <faxlib.h>
int dev;
/* Handler for Phase D events. */
int phd_hdlr( );
main( )
{
/*
* Open the channel using fx_open( ) and obtain the Dialogic
* FAX device handle in dev.
*/
.
.
/*
* Install handler (phd_hdlr( )) using sr_enbhdlr( ) to service
* TFX_PHASED events.
*/
if (sr_enbhdlr(dev, TFX_PHASED, phd_hdlr) == -1) {
printf("Failed to install Phase D handler \n");
return;
}
/*
* Call fx_rcvfax( ) in synchronous mode to receive
* TIFF/F file. Set DF_PHASED bit in mode field
* to enable generation of Phase D events.
*/
if (fx_rcvfax(dev,"fax.tif", EV_SYNC|DF_PHASED) == -1) {
printf("Error - %s (error code %d)\n",
ATDV_ERRMSGP(dev),ATDV_LASTERR(dev));
if (ATDV_LASTERR(dev)==EDX_SYSTEM) {
/* Perform system error processing */
}
}
/*
* Examine Phase D command for last page.
*/
printf("Phase D command: %ld\n", ATFX_PHDCMD(dev));
.
.
}
/*
* Handler registered with SRL to handle TFX_PHASED events.
*/
int phd_hdlr( )
{
int dev = sr_getevtdev( );
/*
* Examine Phase D command - e.g., DFS_MPS, DFS_EOM,
* DFS_EOP.
*/
phdcmd = ATFX_PHDCMD(dev);
printf("Phase D command: %ld\n", phdcmd);
.
.
return(0);
}
If one of the following conditions is present, this function fails and returns AT_FAILURE:
Click here to contact Dialogic Customer Engineering
Copyright 2002, Intel Corporation