+1 408 475 7752 info@sftpl.com

Send Fax from Salesforce.com via InterFax.net

Interfax Integration

About InterFax
The InterFAX Fax Web Service allows developers easy access to sending faxes from within applications. The service may be accessed directly from within Java development environments or through industry-standard SOAP interfaces which are readily available for a variety of scripting languages, such as Java, ASP, PHP, etc.

In this blog, I will show you how to use InterFax web service to send Fax from
your Force.com custom application.Learn More About InterFax

Prepare your self first….
1. Create Force.com developer account from developerforce.com
2. Create Developer Account on Interfax developer site. Save username and password, you will need them to send fax.
3. Download Outbound Fax WSDL.

Generate Apex Class from WSDL
As with most development platforms , Force.com provides a tool called WSDL2APEX to generate Apex class from WSDL file.
To connect with InterFax we will use Outbound Fax WSDL you have just downloaded.

Tweaking Interfax WSDL
At this point I assume you are well aware of WSDL. If not please read resources here
WSLD2APEX tool wont generate Apex class for you if your WSDL file has more than one wsdl:portType and/or more than one wsdl:binding ( Life is not easy man…!)

InterFax WSDL has 4 different port types and 4 corresponding bindings.

  • InterFaxSoap
  • InterFaxSoap12
  • InterFaxHttpGet
  • InterFaxHttpPost

To send fax using InterFax, we will only need InterFaxSoap. So, remove all other 3 port definition and corresponding bindings. Save modified WSDL file on your file system.

  1. Login to your Force.com developer account.
  2. Go to SetupDevelopApex Classes
  3. Click on Generate from WSDL button
  4. Select Outbound Fax WSDL you have just tweaked.
  5. Leave default Apex class names as it is and click on Generate Apex code button.

The step 5 should have generated 2 classes for you,

  1. wwwInterfaxCc
  2. wwwInterfaxCcAbstracttypes

Add Remote Site
Also you will need to add
1.http://ws.interfax.net
2.http://www.interfax.net
Urls in remote site setting in your Force.com org. To add remote sites Go to
Setup | Security ControlsRemote Site
Settings
and click New to create new remote site
This is to let Force.com know that you may call this site for data access and you trust this site.

Now let’s send Fax
When and to Whom your application will send fax depends on your design.
But in all case you will need

1. Destination Fax#
InterFax requires [] format. i.e 912624002989
2. Document to Fax ( Of course Soft copy in this case…. )
Force.com provides means of rendering Visual Force page as PDF and getting PDF document in BLOB format.
See code snippet below

Blob b = null;
Pagereference page = new Pagereference('URL to VF which has renderAs=PDF attribute ');
b = page.getContent();

Use generated Apex class to send Fax

String s = EncodingUtil.base64Encode(b);
wwwInterfaxCc.InterFaxSoap interfax = new wwwInterfaxCc.InterFaxSoap ();
interfax.SendFax('InterFax Username','InterFax Password' , 'Destination Fax Number ',s, 'PDF' );

As we are using InterFax developer account to send Fax, we can only send fax to the Fax# which is registered with our Interfax developer account.With this web service you can even send fax in batches, you can cancel fax and you can even send character fax too. Study generated Apex class to find all the possibilities.

Alok Khandelwal

Alok is Technology Head at Sailfin with primary focus on Salesforce.com services ecosystem along with other cloud technologies. He has over 13 years of dynamic experience in designing and spearheading the development of various enterprise products and solutions.

He has conceptualized and designed several products and implementations in his current and past roles and has vast experience in domains like Financial Risk Assessment, Medical Alarms, Healthcare Services, Publishing, Energy Trading and Risk Management (ETRM), Audio Conferencing/Telecom and IT Consolidation.

This Post Has 2 Comments

  1. I blog frequently and I seriously appreciate
    your information. This article has truly peaked my interest.
    I’m going to take a note of your blog and keep checking for new information about once a week.
    I subscribed to your RSS feed too.

Leave a Reply

Your email address will not be published. Required fields are marked *