Developing a Fax Application

BT_ZERO(args_fax);

args_fax.local_id = "Id_string"; BfvFaxSetLocalID(lp,&args_fax);

Sets the local ID to transmit to the sending machine.

BT_ZERO(args_fax);

BfvFaxBeginReceive(lp, &args_fax);

Begins the Phase B handshaking procedure.

BfvFaxGetRemoteInfo (lp, &args_fax);

Waits for the remote to send its ID and capabilities.

Note: The previous phone call is terminated by the application if the remote fax machine's ID does not match the expected value.

BfvFaxWaitForTraining (lp, &args_fax);

Waits for the completion of the Phase B handshaking process.

do

{

BT_ZERO(args_fax); args_fax.buf = buf; args_fax.size = size;

/* receive data into buffer */

if (BfvFaxReceiveData(lp,&args_fax) <= 0) break;

/* Process buffer contents */ Process(buf);

}

Keeping track of the resolution of each page is the application's responsibility.

When the function returns a 0 at exit from the loop, the application must determine, from the value of args_fax.expect_another, if there is another page to receive.

BfvFaxEndReception(lp, &args_fax);

Call this function when there are no more pages to receive.

BT_ZERO(args_admin);

BfvLineDetach (lp, &args_admin);

Frees all the memory for the attached line and closes the device.

November 2009

74

Page 74
Image 74
Dialogic 6.2 manual Call this function when there are no more pages to receive