X

An Oracle blog about BI Publisher

Now fax your documents through RightFax server!!

Good news for all EBS BI Publisher enthusiasts! Now you can deliver faxes directly from the BI Publisher Delivery
Manager to any fax destination through RightFax 9.3 or above. To learn more about RightFax you can visit their
website - http://www.captaris.com/rightfax.



Oracle Collections team has implemented BI Publisher - RightFax integration for Strategy Dunning Program. You can find the details of this implementation and patch download option in metalink (patch details at the end).



BI Publisher Delivery Manager can now make use of RightFax XML interface to submit a fax job and to query the
status of the job. These XML requests and responses are transmitted over HTTP/S. RightFax can convert the XML request into FCL (Facsimile Command Language) on the server side. So we do not have to worry about embedding FCL code on client (BI Publisher) side anymore. RightFax supports PDF, Postscript and PCL documents and may also support Microsoft Office documents depending on its Server configuration. The Delivery Manager supports a single fax destination per delivery request; therefore, to send fax to multiple destinations, you will have to submit multiple delivery jobs.



Here are the steps to set up the RightFax Delivery Channel in BI Publisher Delivery Manager



  1. Create a Delivery Manager instance
  2. Create a Delivery Request instance
  3. Add the request properties
  4. Set your document to the DeliveryRequest instance
  5. Submit the delivery request


And here is a sample code.....

  // create delivery manager instance

DeliveryManager dm = new DeliveryManager();

  // create a delivery request

DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);

  // required host information (hostname / IP address / reference name from config file)

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_HOST,"myhost");

  // required sender information

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_RFUSER,"Administrator");

  // Optional properties

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_FROM_NAME,"Dave Taylor");

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_FROM_COMPANY,"ABC, Ltd.");

  // required destination

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_NUMBER,"555-1111");

  // Optional properties

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_NAME,"Fred Flintstone");

req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_COMPANY,"Acme, Inc.");

  // set the document

req.setDocument("/document/invoice.pdf");

  // submit the request

req.submit();

  // close the request

req.close();



Did you say what all RightFax Delivery Properties?

Ok, so here goes a long list of delivery properties supported for RightFax delivery

channel. It shows the corresponding RightFax XML interface element for submitting a

fax job. Here RIGHTFAX_HTTP_HOST, RIGHTFAX_SENDER_RFUSER, RIGHTFAX_FAX_TO_NUMBER

are the only required properties, rest are optional.





















































































































































































Delivery Property

Description

Rightfax XML
interface element
for submitting
a fax job

RIGHTFAX_HTTP_HOST

Required.
HTTP host of the RightFax server.

 

RIGHTFAX_HTTP_PORT

Optional.
HTTP port of the RightFax server.
Default=80.

 

RIGHTFAX_HTTP_REMOTE_DIRECTORY

Optional.
Enter the remote directory name.
Default value is “/rfxml”.

RIGHTFAX_HTTP_REMOTE_FILENAME

Optional.
Enter the remote filename.
Default is “/RFWebCon.dll".

RIGHTFAX_HTTP_AUTHTYPE

Optional.
HTTP authentication type of the
RightFax server url. Valid values are
RIGHTFAX_HTTP_AUTHTYPE_NONE,
RIGHTFAX_HTTP_AUTHTYPE_BASIC,
RIGHTFAX_HTTP_AUTHTYPE_DIGEST.
Default value is
RIGHTFAX_AUTHTYPE_NONE.

RIGHTFAX_HTTP_USERNAME

Optional.
HTTP username for the RightFax
server url. Required when
RIGHTFAX_HTTP_AUTH_TYPE is set to
values other than
RIGHTFAX_HTTP_AUTHTYPE_NONE.

RIGHTFAX_HTTP_PASSWORD

Optional.
HTTP password for the RightFax server
url. Required when
RIGHTFAX_HTTP_AUTH_TYPE is set to
values other than
RIGHTFAX_HTTP_AUTHTYPE_NONE.

RIGHTFAX_HTTP_ENCTYPE

Optional.
The encryption type can be set to
either of the following:
RIGHTFAX_HTTP_ENCTYPE_NONE
– no encryption (default)
RIGHTFAX_HTTP_ENCTYPE_SSL
– use Secure Socket Layer

RIGHTFAX_HTTP_USE_FULL_URL

Optional.
Set to “true” to send the full URL
for the HTTP request header. Valid
values are “true” or “false” (default).

RIGHTFAX_HTTP_TIMEOUT

Optional.
Enter a length of time in milli-
seconds after which to terminate the
request if a connection is not made
to the HTTP server.
The default is 60000 (1 minute).

RIGHTFAX_HTTP_PROXY_HOST

Optional.
Enter the proxy server host name.

RIGHTFAX_HTTP_PROXY_PORT

Optional.
Enter the proxy server port number.
Default=80.

RIGHTFAX_HTTP_PROXY_AUTHTYPE

Optional.
Valid value is either of the following.
RIGHTFAX_HTTP_PROXY_AUTHTYPE_NONE
– no authentication
RIGHTFAX_HTTP_PROXY_AUTHTYPE_BASIC
– Use HTTP basic authentication
RIGHTFAX_HTTP_PROXY_AUTHTYPE_DIGEST
– Use HTTP digest authentication.

RIGHTFAX_HTTP_PROXY_USERNAME

Optional.
Enter the username for proxy
authentication.

RIGHTFAX_HTTP_PROXY_PASSWORD

Optional.
Enter the password for HTTP proxy
authentication.

RIGHTFAX_SENDER_FROM_NAME

Optional.
Enter the name of the sender.

SENDER/FROM_NAME

RIGHTFAX_SENDER_EMPID

Optional.
Enter the employee id of the sender.

SENDER/EMP_ID

RIGHTFAX_SENDER_FROM_COMPANY

Optional.
Enter the name of the sender’s company.

SENDER/FROM_COMPANY

RIGHTFAX_SENDER_FROM_DEPARTMENT

Optional.
Enter the name of the sender’s
department.

SENDER/FROM_DEPARTMENT

RIGHTFAX_SENDER_FROM_PHONE

Optional.
Enter sender’s phone number.

SENDER/FROM_PHONE

RIGHTFAX_SENDER_RETURN_EMAIL

Optional.
Enter sender’s return email address.

SENDER/RETURN_EMAIL

RIGHTFAX_SENDER_BILLINFO1

Optional.
Enter the billing code of the fax
owner.

SENDER/BILLINFO1

RIGHTFAX_SENDER_BILLINFO2

Optional.
Enter the secondary billing code
of the fax owner.

SENDER/BILLINFO2

RIGHTFAX_SENDER_RFUSER

Required.
Enter the name of the sender’s
RightFax user name.

SENDER/RF_USER

RIGHTFAX_FAX_TO_NUMBER

Required.
Enter the fax number where the
document will be sent.

DESTINATIONS/FAX/TO_FAXNUM

RIGHTFAX_FAX_TO_NAME

Optional.
Enter the recipient’s name.

DESTINATIONS/FAX/TO_NAME

RIGHTFAX_FAX_TO_COMPANY

Optional.
Enter the recipient’s company name.

DESTINATIONS/FAX/TO_COMPANY

RIGHTFAX_FAX_TO_ALTNUMBER

Optional.
Enter the alternative fax number.

DESTINATIONS/FAX/ALT_FAX_
NUM

RIGHTFAX_FAX_TO_CONTACTNUMBER

Optional.
Enter the contact phone number of
the recipient.

DESTINATIONS/FAX/TO_
CONTACTNUM

RIGHTFAX_FAX_COVERSHEET

Optional.
Enter the coversheet template for
the current document. The file name
can be either a full path on the
RightFax server machine or a path
relative to RightFax\Production\Covers.

DESTINATIONS/FAX/COVERSHEET

RIGHTFAX_COVERTEXT

Optional.
Enter the text that should appear on
the coversheet.

COVERTEXT

RIGHTFAX_COVERTEXT_TYPE

Optional.
Enter the type of the coversheet
text. TXT (default) or RTF

COVERTEXT/type

RIGHTFAX_COVERTEXT_ENCODING

Optional.
Enter the encoding of the coversheet
text. NONE (default) BASE64
QUOTEDPRINTABLE

COVERTEXT/encoding

RIGHTFAX_CONTENT_TYPE

Optional.
Enter the MIME content type of
the document. Default value
“application/octetstream”.

Set to Content-Type field
of file attachment.

Note: In addition to the above listed RightFax specific properties, all delivery manager

common properties, including BUFFERING_MODE (for document redelivery) and FILTER (for

document conversion), are supported.


You want to set the RightFax Server in a configuration file?

I am sure you already know that BI Publisher supports a delivery configuration file to

manage delivery servers, delivery properties and custom delivery channels. Now RightFax

server has been added to this list with server type as 'rightfax'


<server name="myhost" type=”rightfax”>


This server type expects values for Host, port, uri, username, password, authType,

encType, proxyPort, proxyUsername, proxyPassword, proxyAuthType, filter and

filterOutputContentType.


Please check the BI Publisher ‘Administrator’s and Developer’s Guide’ to know more

about the delivery configuration file.


Sample Delivery Configuration file (xdodelivery.cfg) -


<?xml version='1.0' encoding='UTF-8'?>

<config xmlns="http://xmlns.oracle.com/oxp/delivery/config">

<!-- ======================================================== -->

<!-- servers section -->

<!-- List your pre-defined servers here. -->

<!-- ======================================================== -->

<servers>

<server name="myhost" type="rightfax" default="true" >

<host>myrightfax1.companyname.com</host>

<port>80</port>

<uri/>

<username/>

<password/>

<authType/>

<encType/>

<proxyHost/>

<proxyPort/>

<proxyUsername/>

<proxyAuthType/>

<filter/>

<filterOutputContentType/>

</server>

</servers>

<!-- ======================================================== -->

<!-- properties section -->

<!-- List the system properties here. -->

<!-- ======================================================== -->

<properties>

<property name="ds-temp-dir">/tmp</property>

<property name="ds-buffering">true</property>

</properties>

<!-- ======================================================== -->

<!-- channels section -->

<!-- List the custom delivery channels here. -->

<!-- ======================================================== -->

<channels/>

</config>

Can we monitor the Job Status?


When the BI Publisher Delivery Manager submits a job, it receives an XML response from

RightFax server. This response includes the unique id for the fax job, which can be used to

check status of the job by submitting a separate request to RightFax server. However, BI

Publisher Delivery Manager is not using this unique fax job id approach. Instead, we

recommend the standard approach used by all delivery channels to get the job status.


In this approach, after a job is submitted the client program can make ‘asynchronous’

call using delivery manager APIs. You can create your own callback logic by implementing

DeliveryResponseListener interface. You must implement the responseReceived() method.

This method should be called when the delivery request completes. You can pass this

callback when you invoke the submit() method of the DeliveryRequest. This will initiate

the delivery process in the background and the submit() method will immediately return

the control to DeliveryResponseListener to get the delivery status. Sample code follows:

static class MyListener implements DeliveryResponseListener{

public void responseReceived(DeliveryResponse pResponse){

System.out.println("Request done!");

int status = pResponse.getStatus();

System.out.println("Request status id : " + status);

String msg = pResponse.getStatusMessage();

System.out.println("Request status message : " + msg);

// Update the status in database here...

}

}

public static void main(String[] args){

try

{

DeliveryManager dm = new DeliveryManager();

DeliveryRequest req =

dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);

req.setDocument("d:/tmp/test.ps");

req.submit(new MyListener());

}

catch (Exception e)

{

e.printStackTrace();

}

}

In asynchronous mode, server status is checked once per minute by default but you

can control this interval by setting ASYNCH_CHECK_INTERVAL delivery property before

submitting the request.

Check the status codes returned by the Delivery Manager and its corresponding status

codes/error codes on the RightFax server.

















































Delivery Manager Status/Error Code
RightFax Status/Error Code
STATUS_CLIENT_IN_PROCESS
 
STATUS_FAILED_BUSY
 
STATUS_FAILED_CLIENT_ERROR
 -1 (failure to load XML DOM – possibly XML
formatting error)

-4 (XSL info missing)

-5 (unknown XML operation type)
STATUS_FAILED_INVALID_RECIPIENT
 
STATUS_FAILED_INVALID_REQUEST
 
STATUS_FAILED_INVALID_USER
 
STATUS_FAILED_IO_ERROR
 
STATUS_FAILED_SERVER_ERROR
 -3 (failed to connect to RightFax Server)

-2 (failed to load XSL into DOM)

0 (submit/query failure)

9 (Too many errors)

10 (Duplicate)

11 (Error)

12 (Needs attention)

13 (Needs attention)

Any other status code
STATUS_FAILED_TIMEOUT
 
STATUS_NOT_DELIVERED
 
 

So I believe you are all set to try the document delivery to a RightFax Server..

Happy faxing !! Please note down the patch numbers -


The patch number for EBS 11i (for XML Publisher 5.6.3) is -
7665602 - RIGHT FAX CHANNEL SUPPORT WITH PROVISION FOR DELIVERY STATUS AT LATER TIME

The patch number for EBS 11i (for Collections) is -
8435600 - UNABLE TO SEE FAILURE REASON IN THE CONCURRENT PROGRAM LOG FILE

Join the discussion

Comments ( 26 )
  • Susan Tuesday, July 21, 2009
    I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
    Susan
    http://8080proxy.com
  • Nisha Monday, August 10, 2009
    Hi Tim,
    Is it possible to use this functionality for Purchase Orders . there is a standard program in EBS called 'PO Output for Communication: FAX '.
    Is it possible to integrate this program with Right Fax. ?if so can you please provide soem steps?
    Can you please ellaborate this blog on Fax delivery of documents or provide with some notes or documents?
    Thanks,
    Nisha from the Sunshine City (St Pete, FL)
  • Sreeni Wednesday, September 23, 2009
    Hi,
    Can we use the patch 7665602 - RIGHT FAX CHANNEL SUPPORT WITH PROVISION FOR DELIVERY STATUS AT LATER TIME to R12.1.1 version as well?
    Thanks,
    Sreeni
  • Draylla Friday, October 16, 2009
    If you have to do it, you might as well do it right.
  • Hebeth Friday, October 16, 2009
    I want to say - thank you for this!
  • Lothoa Friday, October 16, 2009
    I want to say - thank you for this!
  • Acerrac Friday, October 16, 2009
    If you have to do it, you might as well do it right.
  • Biarid Friday, October 16, 2009
    Great. Now i can say thank you!
  • Wicaomar Saturday, October 17, 2009
    I want to say - thank you for this!
  • Deagord Saturday, October 17, 2009
    If you have to do it, you might as well do it right.
  • Jayder Saturday, October 17, 2009
    I want to say - thank you for this!
  • Bob65 Thursday, October 22, 2009
    Trip is injected with 40mg of mirazine by Phlox to cut the decompression time in half to three hours. ,
  • Mark52 Friday, October 23, 2009
    Q4: What are the costs associated with each device? ,
  • &#1087;&#1086;&#1088;&#1085;&#1086; Sunday, November 1, 2009
    Спасибо за иформацию
  • amoxil Monday, November 30, 2009
    I want to say - thank you for this!
  • acyclovir Monday, November 30, 2009
    If you have to do it, you might as well do it right.
  • cheap abilify Monday, November 30, 2009
    If you have to do it, you might as well do it right.
  • Jaap-Jan Pepping Monday, December 28, 2009
    thanks for this Blog!
    Rightax Captaris is now owned by Open Text and the link is not correct anymore.
    this is the correct link for more information, or contact me directly.
    http://mimage.opentext.com/alt_content/binary/pdf/ReduceCostsandImproveEfficiencybyAutomatingOracleDocumentDelivery-wp.pdf
  • Viktor Doussaniouk Friday, January 8, 2010
    Hello Tim,
    Actually, one more excelent option to send faxes is to use GENIFAX server.
    It is working through SMTP and plays like mail box.
    I.e. if i send my pdf to email address like 21312312@some.genifax.instance , then it will try sending a fax to the number 21312312. More description is at http://www.omtool.com/products/genifax.cfm
    Unfortunately, the latest version of GENIFAX asks for PDF's implementing CID-Keyed fonts/mapping (Adobe's specification).
    If I'm correct, BIP uses embeded fonts, but not implements this specification, i.e. not supporting CID-Keyed fonts.
    Is there plans to implement supporting the CID-Keyed fonts/mapping in BIP API ?
    Thanks
    Viktor
  • Murugan Paulraj Wednesday, February 17, 2010
    Tim,
    Thank You for very good article.
    I have created java program with above wrappercode with Right fax elements and compiled the same in the path $JAVA_TOP/oracle/apps/xxdo/ebsdelivery/.
    Also created xdodelivery.cfg with necessary server information and kept the same in the path $XDO_TOP/resource.
    Created concurrent program with dummy printer driver for calling the shell script. When I am running the program I am getting below given error. Pls. help me to resolve this issue.
    java.net.ConnectException: Connection refused

    at java.net.PlainSocketImpl.socketConnect(Native Method)

    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)

    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)

    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)

    at java.net.Socket.connect(Socket.java:464)

    at java.net.Socket.connect(Socket.java:414)

    at java.net.Socket.(Socket.java:310)

    at java.net.Socket.(Socket.java:125)

    at oracle.apps.xdo.delivery.http.HTTPClient.createPlainSocket(HTTPClient.java:833)

    at oracle.apps.xdo.delivery.http.HTTPClient.openConnection(HTTPClient.java:180)

    at oracle.apps.xdo.delivery.http.HTTPClient.openRequest(HTTPClient.java:237)

    at oracle.apps.xdo.delivery.rightfax.RightFaxDeliveryRequestHandler.submitRequest(RightFaxDeliveryRequestHandler.java:135)

    at oracle.apps.xdo.delivery.AbstractDeliveryRequest.submit(AbstractDeliveryRequest.java:1270)

    at oracle.apps.xdo.ebsdelivery.EBSFaxDelivery.(EBSFaxDelivery.java:44)

    at oracle.apps.xdo.ebsdelivery.EBSFaxDelivery.main(EBSFaxDelivery.java:60)
  • Doug Olive Sunday, February 21, 2010
    There are many other satus codes in RightFax, inluding codes form the Brooktrout fax card, which are similar to the RightFax Satatus Codes listed above.
    If you pull the wrong fax status code, you may risk sending double faxes to the same number.
    We suggest that you read the RightFax Integration Module Guide, located here: http://www.ingeniumsw.com/downloads/RightFax_Integration_Module_Guide.pdf
    For expert RightFax and Oracle implementation, development and support, please contact us. http://www.ingeniumsw.com or 770-936-0600
  • Murugan Paulraj Tuesday, March 2, 2010
    Hi,
    Any idea how to fax test fax to Rightfax server from Lunix prompt command line ?
    Pls. Help.
    thanks
    Murugan.
  • Sundeep Dheer Wednesday, March 3, 2010
    How can we do the same from the Bursting Engine of Bi-publisher?
    Thanks,
    Sundeep
  • Sundeep Thursday, March 18, 2010
    Hello,
    I am getting a runtime error: oracle.xml.parser.v2.XMLParseException: '=' missing in attribute.

    at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:205)
    The error message doesn't tell me anything. Can anyone help?
    The code is
    try{
    DeliveryManager dm = new DeliveryManager();
    DeliveryRequest req = dm.createRequest(DeliveryManager.TYPE_RIGHTFAX);
    req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_HTTP_HOST, "10.121.2.110/HPFAX");
    req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_RFUSER, "Anonymous");
    req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_FAX_TO_NUMBER, "920-683-7839");
    req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_BILLINFO1, "123");
    req.addProperty(DeliveryPropertyDefinitions.RIGHTFAX_SENDER_BILLINFO2, "Dunning");
    req.setDocument("/ua2001/product/1159/tmwaciappl/xbol/11.5.0/xml/b.pdf");
    req.submit();
    req.close();
    }catch (Exception e){
    logMessage("Error in Rightfax", "Y");
    throw e;
    }
    Thanks.
  • first home buyers grant Sunday, July 25, 2010
    Priced at only $192000- loads of value here! *FIRST TIME HOME BUYERS GRANT MON Priced at only $192000- loads of value here! *FIRST TIME HOME BUYERS GRANT MONEY IS AVAILABLE SOON! ONLY 1% DOWN PAYMENT NEEDED- CALL LISTING AGENT FOR DETAILS. Spacious 2 bedrooms and 2 baths- Sunny living room with a cozy wood stove and en ....
  • guest Thursday, August 25, 2011

    FaxColo offers Oracle Fax, powered by RightFax as a service for US based companies. For more info visit http://www.faxcolo.com


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.

Recent Content