News & Announcements User Community Developer Community

Welcome to the RingCentral Community

Please note the community is currently under maintenance and is read-only.

Search
Make sure to review our Terms of Use and Community Guidelines.
  Please note the community is currently under maintenance and is read-only.
Home » Developers
Sending Faxes API Integration
Tags: fax, rest api
May 9, 2021 at 9:12am   •   1 replies  •  0 likes
Adrian S

Hello,

I am trying to integrate OSCAR EMR (electronic medical records software) with RingCentral Fax API, so that prescriptions/etc can be faxed. The system currently has an existing integration for sending faxes with SRFax (a Canadian eFax provider), but I want to integrate it with RingCentral to send faxes with RingCentral.

Here is the current script that is setup to send faxes with SRFax integration, what would I change for it to work with RingCentral fax?

I would be super grateful if someone could help me with this. Thank you.

Here is the documentation on how this works currently with SRFax (e.g. how the files get picked up to be sent): https://worldoscar.org/?page_id=1264

#!/bin/bash
#
# SRFax Gateway cron
# (c) 2020 Peter Hutten-Czapski released on GPL 2+
#
# Picks up the files dropped by OSCAR
# and POSTs it to the SRFax API
# and it clears the files dropped by OSCAR
# Adjust the constants at the top of the page to match actual
#

ID=***** # this is your SRfax account number
PWD=****** # Escape any special characters with non quoted \
CID=******** # this is your SRfax fax number, just numbers
EMAIL=******** # use the same email registered with SRfax for access to their web interface
FROM=******* # this one is whatever you like
FAXLOG=fax2.log

SCRIPT_FILE=$(basename "$0")
LOCKDIR=/tmp/${SCRIPT_FILE}.lock
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SCRIPT_PATH="${SCRIPT_DIR}/${SCRIPT_FILE}"
FAXLOG=${SCRIPT_DIR}/fax2.log
echo "Calling  ${SCRIPT_FILE} on ${SCRIPT_PATH} with logging on ${FAXLOG}"

# --- select the running Tomcat or the highest installed version
TOMCAT=$(ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $1 }')
if [ -z "$TOMCAT" ]; then
    #Tomcat is not running, find the highest installed version
    if [ -f /usr/share/tomcat9/bin/version.sh ] ; then
            TOMCAT=tomcat9
        else
        if [ -f /usr/share/tomcat8/bin/version.sh ] ; then
            TOMCAT=tomcat8
            else
            if [ -f /usr/share/tomcat7/bin/version.sh ] ; then
                TOMCAT=tomcat7
            fi
        fi
    fi
fi

TMP=/tmp/${TOMCAT}-${TOMCAT}-tmp
echo "Searching ${TMP} for faxes...."
if test -n "$(find ${TMP} -maxdepth 1 -name '*.txt' -print -quit)"; then
        echo "Faxes found to be sent"
        for f in `ls $TMP/*.txt`; do
                faxto=`sed s"/ *//g" $f|tr -d "\n"`
                # allow for a second or so for the pdf to be generated
                sleep 4
                bfile=`echo $f | sed s"/txt/pdf/"`
                openssl base64 -e -A -in $bfile -out temp.b64
                echo -n `date` "fax to 1$faxto " >> $FAXLOG
                json=$(curl \
                -F "action=Queue_Fax" \
                -F "access_id=$ID" \
                -F "access_pwd=$PWD" \
                -F "sCallerID=$CID" \
                -F "sSenderEmail=$EMAIL" \
                -F "sFaxFromHeader=$FROM" \
                -F "sFaxType=SINGLE" \
                -F "sToFaxNumber=1$faxto" \
                -F "sCPSubject=Oscar Fax" \
                -F "sRetries=3" \
                -F "sFileName_x=$bfile" \
                -F "sFileContent_x=<temp.b64" \
https://www.srfax.com/SRF_SecWebSvc.php)
                if [ -n "$json" ]; then
                    success=$(echo "${json}" | grep -Po "Success")
                    if [ -z "$success" ]; then
                        echo "#### ERROR: ${json} for ${f} " >> $FAXLOG
                        echo "exiting but renaming source file"
                        cp $f $f.fail
                    else
                        echo "${json} for" `basename ${f}`  >> $FAXLOG
                        rm $bfile;
                    fi
                else
                        echo "### ERROR: \$json is empty for ${f} " >> $FAXLOG
                        cp $f $f.fail
                fi
                rm $f;
                rm temp.b64
        done
else
        echo "No faxes found"
fi
1 Answer
answered on May 10, 2021 at 9:03am  

I am not familiar with PowerShell script to do such a complicated stuff. Here is what we have for sending Faxes using RingCentral API. The quick start provide sample code in different programming languages, unfortunately, no code for PowerShell.


 0



A new Community is coming to RingCentral!

Posts are currently read-only as we transition into our new platform.

We thank you for your patience
during this downtime.

Try Workflow Builder

Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!

Try RingCentral Workflow Builder

PRODUCTS
RingEX
Message
Video
Phone
OPEN ECOSYSTEM
Developer Platform
APIs
Integrated Apps
App Gallery
Developer support
Games and rewards

RESOURCES
Resource center
Blog
Product Releases
Accessibility
QUICK LINKS
App Download
RingCentral App login
Admin Portal Login
Contact Sales
© 1999-2024 RingCentral, Inc. All rights reserved. Legal Privacy Notice Site Map Contact Us