Skip to content

Instantly share code, notes, and snippets.

@junichim
Last active January 22, 2019 15:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save junichim/aee376eab528a9dd963630d0c0279d41 to your computer and use it in GitHub Desktop.
Save junichim/aee376eab528a9dd963630d0c0279d41 to your computer and use it in GitHub Desktop.
コマンドラインで Twilio の FAX 送信を行うスクリプトのサンプル
#!/bin/bash
#
# Twilio FAX Sending
#
# さくらインターネットにアップロードしたファイルを Twilio により FAX 送信する
#
# Junichi MORI, 2019/1/9
SAKURA_USER="basic認証ユーザー"
SAKURA_PASSWD="basic認証パスワード"
PDF_URL_BASE="MediaUrl=https://"${SAKURA_USER}:${SAKURA_PASSWD}"@サーバー名/アップロード先/"
FROM_TEL="From=+8150xxxxxxxx"
TO_TEL_PRFX="To=+81"
TO_TEL=
ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AUTH_TOKEN=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
function usage() {
echo "さくらインターネットのFAX領域にアップロードした FAX を送信します。"
echo "Usage: "$0" tel_to filename"
echo " tel_to : 送信先FAX番号(市外局番から記述)"
echo " filename : 送信したいアップロード済みPDFファイル名"
}
# 引数処理
if [ $# != 2 ]
then
usage
exit 1
fi
TO_TEL=$1
if [ ${TO_TEL:0:1} != "0" ]
then
echo "エラー:電話番号は 0 始まりである必要があります"
usage
exit 1
fi
TO_TEL=`echo ${TO_TEL} | sed 's/^0//'`
TO_TEL=${TO_TEL_PRFX}${TO_TEL}
#echo $TO_TEL
shift
PDF=$1
# 送信処理
RES_JSON=`curl -s -X POST https://fax.twilio.com/v1/Faxes --data-urlencode ${FROM_TEL} --data-urlencode ${TO_TEL} --data-urlencode ${PDF_URL_BASE}${PDF} -u ${ACCOUNT_SID}:${AUTH_TOKEN}`
STATUS=`echo ${RES_JSON} | jq -r .status`
FAXSID=`echo ${RES_JSON} | jq -r .sid`
echo "status: " ${STATUS}
echo "fax_sid: " ${FAXSID}
#!/bin/bash
#
# Twilio FAX data Upload
#
# Twilio FAX 送信が参照するために、pdfファイルをさくらインターネットのサーバーにアップロードする
#
# Junichi MORI, 2019/1/22
SAKURA_USER="user"
SAKURA_HOST="servername"
SAKURA_PRIVATE_KEY="~/.ssh/id_rsa"
function usage() {
echo "さくらインターネットのFAX領域に PDF ファイルをアップロードします。"
echo "Usage: "$0" filename"
echo " filename : 送信したい PDF ファイル名(同名ファイルは上書きされます)"
}
# 引数処理
if [ $# != 1 ]
then
usage
exit 1
fi
PDF=$1
# アップロード処理
REMOTE_FAX_DIR="targetdir"
scp -i ${SAKURA_PRIVATE_KEY} ${PDF} ${SAKURA_USER}@${SAKURA_HOST}:${REMOTE_FAX_DIR}
#!/bin/bash
#
# Twilio FAX Sending
#
# ローカルの PDF ファイルを Twilio により FAX 送信する
#
# Junichi MORI, 2019/1/22
BINDIR="ホームディレクトリのbin"
UPLOAD="${BINDIR}/faxRawUpload"
SEND="${BINDIR}/faxRawSend"
function usage() {
echo "ローカルの PDF ファイルを Twilio により FAX 送信します。"
echo "Usage: "$0" tel_to filename"
echo " tel_to : 送信先FAX番号(市外局番から記述)"
echo " filename : 送信したい PDF ファイル名"
}
# 引数処理
if [ $# != 2 ]
then
usage
exit 1
fi
TO_TEL=$1
if [ ${TO_TEL:0:1} != "0" ]
then
echo "エラー:電話番号は 0 始まりである必要があります"
usage
exit 1
fi
shift
PDF=$1
# アップロード
${UPLOAD} ${PDF}
if [[ $? != 0 ]]
then
echo "FAX送信に失敗しました(アップロード失敗)"
exit 1
fi
# 送信
TARGET_PDF=`basename ${PDF}`
${SEND} ${TO_TEL} ${TARGET_PDF}
if [[ $? != 0 ]]
then
echo "FAX送信に失敗しました(送信失敗)"
exit 1
else
echo "FAX送信成功"
fi
#!/bin/bash
#
# Twilio FAX Statu
#
# Junichi MORI, 2019/1/22
ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AUTH_TOKEN=yyyyyyyyyyyyyyyyyyyyyyyyyyyy
function usage() {
echo "送信したFAXのステータスを表示します"
echo "Usage: "$0" faxSid"
echo " faxSid : 送信したFAXのSID"
}
# 引数処理
if [ $# != 1 ]
then
usage
exit 1
fi
FAXSID=$1
# ステータス取得
RES_JSON=`curl -s -X GET https://fax.twilio.com/v1/Faxes/${FAXSID} -u ${ACCOUNT_SID}:${AUTH_TOKEN}`
STATUS=`echo ${RES_JSON} | jq -r .status`
TO=`echo ${RES_JSON} | jq -r .to`
DATE=`echo ${RES_JSON} | jq -r .date_created`
echo "status: " ${STATUS}
echo "to: " ${TO}
echo "date: " ${DATE}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment