43 lines
1.5 KiB
Bash
Executable file
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
|