Sipgate-CLI/fax.sh

43 lines
1.5 KiB
Bash
Executable file

#! /bin/bash
#Check if I have enough parameters:
if [ -z $2 ]
then
echo "Usage:
$ ./fax.sh <letter.pdf> <recipient>
where <recipient> has to be a german faxline number"
exit 1
fi
BASEPATH=$(dirname $(realpath $0))
. $BASEPATH/authorization.sh
#Prepare fax credentials:
FILE=$1
echo -n "Sending file ${FILE} "
REC=$(echo $2 | sed -e 's:[^+0-9]::g' -e 's:^0\([1-9]\):+49\1:')
echo "to $REC"
#Needs to be base64 encoded:
CONTENT=$(base64 $FILE -w 0)
if [ -z "$CONTENT" ];
then
echo "Encoding failed"
exit 2
fi
#save payload to tempfile to prevent curl from throwing 'argument list too long' error.
echo '{"faxlineId":"f0", "recipient":"'${REC}'", "filename":"fax.pdf", "base64Content":"'${CONTENT}'"}' > /tmp/sipgatedata.txt
#Send fax
FAXID=$(curl --request POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header "Authorization: Bearer $AUTH_TOKEN" --data @/tmp/sipgatedata.txt "https://api.sipgate.com/v2/sessions/fax" -s | jq '.sessionId' | sed -e 's:"::g' )
#remove tempfile
rm /tmp/sipgatedata.txt
if [ -z $FAXID ]
then
echo "Something went wrong, I didn't receive some fax id back."
exit 2
else
echo "Sipgate took your fax as sessionID $FAXID"
echo "$FAXID" >> $BASEPATH/.fax_history
fi
#Check if fax request was accepted by sipgate
curl --request GET --header 'Content-Type: application/json' --header 'Accept: application/json' --header "Authorization: Bearer $AUTH_TOKEN" "https://api.sipgate.com/v2/history/$FAXID" -s | jq '.faxStatusType'
#And show the account balance
. $BASEPATH/getbalance.sh