Programmable Voice

  1. Home
  2. Docs
  3. Programmable Voice
  4. Tutorials
  5. Faxing
  6. Tips and Tricks

Tips and Tricks

The following information is helpful when using the powerful fax engine within your Voice Elements application.

Selecting a Fax Mode

When using fax, you are able to select between two modes: Normal and T.38.

In Normal mode, the fax information is sent or received using tones sent within in the audio stream. This mode is recommended only for networks that are managed by the user (such as within a local lan). Normal mode is extremely suceptible to packet loss. As the audio stream is packetized, losing a few packets can wreck havoc on a fax transmission. In T.38 mode, the facimile data is tranported in a more reliable way that was designed to account for some limited packet loss. Some packets are sent redundantly. Recovery from packet loss is also more reliable. When using fax over the internet, T.38 is the preferred mode of transmission.

To select the mode use the following:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName);

fr.FaxMode = FaxMode.Normal;
//or
//fr.FaxMode = FaxMode.T38;

 

Specifying the Called Subscriber Identificaion (CSID)

The called subscriber identificaion is a string of information received from the far side’s fax machine. It typically has the phone number of the receiving fax machine and perhaps a username. It is limited to 20 bytes of data.

To view the CSID use the following:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName);
 
// Code to receive or send a fax here...  (omitted for brevity)
 
Log.WriteWithId(m_ChannelResource.DeviceName, "Far side CSID: {0}", fr.CalledSubscriberId);

 

Specifying the Transmitting Subscriber Identificaion (TSID)

The transmitting subscriber identificaion is a string of information sent to the far side’s fax machine. It typically has the phone number of the your fax machine and perhaps a username. It is limited to 20 bytes of data.

Be aware that many areas require that you specify a TSID. It is your responsibility to know and follow all applicable laws in your locale and/or country.

To set the TSID use the following:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName);
fr.TransmittingSubscriberId = "800-555-1212"
 
// Code to receive or send a fax here...  (omitted for brevity)

 

Specifying Page Header Information

In addition to the CSID and TSID that are printed at the top of the page of each fax, you can optionally specify a header to be included. It is limited to 50 bytes of data. You may also leave this blank, or null.

To set the page header use the following:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName);
fr.HeaderText= "My Company Info Here"
 
// Code to send a fax here...  (omitted for brevity)

 

All page header information may be supressed by passing the value “<NOHEADER>” as the header text. For example, the following code snippet will supress the usage of any header information along the top of the faxed document:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName
fr.HeaderText= "<NOHEADER>"
 
// Code to send a fax here...  (omitted for brevity

 

Information about using fax with InventiveLabs’ Server Banks

When using one of our server banks, we recommend that you always use T.38 for increased reliablily.

All of our server banks have access to multiple carriers. Some of those carriers, however, do not support T.38. To properly use T.38 on a server bank, you must add a special header to the call setup information to tell the server bank that you require a T.38 carrier. When doing so, the server bank will not attempt to place the call on any of the carriers that do not support T.38.

To inform our server bank of your T.38 request, use the following:

     
FaxResource fr = m_ChannelResource.GetFaxResource();
Log.WriteWithId(m_ChannelResource.DeviceName, "Fax Resource: {0}", fr.DeviceName);
fr.TransmittingSubscriberId= "800-555-1212"
fr.HeaderText= "My Company Info Here"
 
// Prepare to Dial...
 
SipChannel sc = m_ChannelResource as SipChannel;
sc.OutgoingSipHeaders = new string[] { "IBC-T38FaxCarrier: True" };
 
// Code to Dial out here...  (omitted for brevity)
 
// Code to send a fax here...  (omitted for brevity)

 

Was this article helpful to you? Yes 2 No

How can we help?