beautypg.com

Dialogic 6.2 User Manual

Page 74

background image

Developing a Fax Application

November 2009

74

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.