LoginSignup
4
5

More than 3 years have passed since last update.

(途中)TwilioでFAX送信 2020年6月時点

Last updated at Posted at 2020-06-12

追記

2020年7月・・・その後の実装・動作確認を経て不採用としました。ご参考までに。

TwilioのFAX送信機能の評価結果=不可 - Qiita

2020年12月・・・Twilio社から2021年12月でFAX API機能の提供打ち切りというアナウンスがありました。採用していたら開発投資が無駄になるところでした…。良かった。

Image from Gyazo

関連URL

料金(FAX送信)

公式サイトには記載されていないので問い合わせが必要です。
以下は2019年11月(消費税造成後)に問い合わせた時の回答です。
更新されている可能性があるので各自お問い合わせください。

050番号であればFAX送受信ともに約7円/枚です。これは現状では国内最安だと思います。

初期費用

無料

電話番号の維持費用

050番号維持費用  110円/月
0120/0800番号維持費用 1,650円/月

FAX送信費用

送信料 1.52778円/ページ ※毎月100枚まで無料
通信料 5.5円/分

FAX受信費用

受信料 1.52778円/ページ
通信料 0.61円/分(050の場合)
通信料 22円/分(0210/0800の場合)
※毎月送受信合計100枚までは送信料/受信料が無料です。(通信料は必要)

TwilioのFAX送信の特徴

  • 安い。7円/枚は国内最安。
    • 維持費110円が必要だが実質無料。(枚数100枚まで送信料金約1.52円は無料なので72枚送信すれば元をとれる)
  • プログラマブル(RestAPIに対応)で送信できる
  • PDFファイルのみ送信できる
    • メール送信するだけでFAX送信に変換してくれる他サービス(例えば秒速FAX送信)に比べると面倒ではある。
      • API実装したくない場合は「秒速FAX送信」がおすすめ。維持費ゼロで。10円/枚
  • PDFファイルの格納先は自前で用意する必要がある
  • PDFファイルは、Twilioサーバからアクセス可能なURLを持つ必要がある
  • 支払いはクレジットカード登録が必要

実装

実装上の考慮事項

  • PDFファイルアクセス時にBasic認証を必要とするか
    • 送信内容に個人情報が含まれるので「機密度」は高い
    • したがって必要
    • 特定のパスに対してだけ設定する
  • Twilio側にデータを残すかどうか?
    • デフォルトでは180日保管される
    • 保管要否はリクエスト時にStoreMediaパラメタで指定できる。False指定すれば保管させない。既定はTrue
    • 保管期間指定は不可?
  • PDFファイルの保管と削除
    • 保管期間
    • ファイル削除のバッチ実装
  • PDFファイルの格納先
    • Webアプリケーションサーバのローカルか?S3か?
      • Webアプリケーションサーバローカルの場合
        • PDFファイルがディスク消費するので定期的に削除する処理が必要
        • 実装は容易。すでにある実装にパスを追加するだけ。
    • S3にPDFアップロードしてそれをトリガとしてLambda関数から実行という仕組みだと
      • メリット
        • データ失われない
        • データ保持期間をS3機能で指定できる? ※バッチ削除処理の実装不要
        • Webアプリケーションサーバの負荷が低い(S3にアップロードするだけ)
      • デメリット
        • TwilioからPDFが参照されるので「データ転送料金」が発生する。
        • Lambda関数
        • PDFにベーシック認証かける実装がやや面倒(CloudFront+S3で実現可能)
      • この場合、PDFファイルアップロードで

設計

  • サブドメインを追加する.
    • 例えばtwilio_faxdata.sample.com
    • ディレクトリ/var/www/html/fax-data/に割り当てる
    • 当該サブドメインにベーシック認証を設定する。
    • https設定にする
  • PDFファイルを当該ディレクトリに出力する
  • サブドメイン+pdfファイル名をTwilioに渡す
  • 定期的に削除する。
    • 保管期間はサイト設定で指定できるように。デフォルト7日

開発言語

  • java
  • 既存アプリケーションに組み込む

設定

Apache設定

httpd.conf
<VirtualHost *:443>
  ServerName faxdata.sample.com
  DocumentRoot /var/www/html/faxdata
  <Location /var/www/html/faxdata>
    AuthType Basic
    AuthName "Basic Auth"
    AuthUserFile /etc/httpd/conf/.htpasswd
    Require valid-user
  </Location>

  SSL設定とか

</VirtualHost>
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5