FAX受信 -> PDF -> e-mailでペーパレス 爆速インストールHylaFAX

あるお客様が一日中ひっきりなしにFAXを受け、トナーを買いに行く手間も値段もバカにならないし紙も大量に消費して地球に優しくないとのこと。常時可動のサーバも無いので、そりゃHylaFAXの出番でっせ、と社に戻って記憶をたどってワークショップをあさると、ありました外付けモデムME5614D2 for まいと~く、そして非力ながらもまだまだ使えるWindows 2000 Professionalときらきら光るシールの張ってあるPC。これでナンバーディスプレイ対応FAX e-mail変換機が簡単にできるじゃありませんか。送信時は媒体が定まっていないので今までどおりFAXに挿すままでよさそう。受信だけが問題である、というわけでさらに簡単(後日 PDF -> e-mail添付 -> FAX送信でペーパレス もやりました)。他にも「HylaFAXでの送受信速度」も参考になるかもしれません。あとインターネットからサーバへのアクセスはフィルタするなり対処が必要です。IPv6でlistenしているからいいやとほっておくと、当たり前にIPv6になった日に大騒ぎになるかもしれません。

まずはFreeBSD RELEASEを最小インストール、そしてpowerd, ntp, ipfw, メール, syslog転送など必要な設定(ざくっと省略)。

デフォルト以外を選択したのは

  • [nn] Default page size: A4

だけ。 /dev/cuau0 (cf. http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/serialcomms.html)がモデムがつながっているやつであることをさくっと確認。ATI4とかATI3とか。そしてアプリケーションでの設定。USBモデムならば/dev/cuaU0とか。

デフォルト以外を選択したのは

  • Country Code: 81
  • Area Code: 3 (東京03から国内開放番号の0を除いた3)
  • Long distance dialing prefix: 0  (国内開放番号)
  • International dialing prefix: 010 (国際開放番号 cf. マイライン)

自動的にfaxaddmodemが起動され、そこでデフォルト以外を指定したのは

  • Serial port that modem is connected to: cuau0
  • Phone number of fax modem: +81.3.0000.0000 (FAXの番号)
  • Local identification string: HOGEHOGE (任意のFAXID。相手側のFAXに通知される。)
  • Long distance dialing prefix: 0  (国内開放番号)
  • International dialing prefix: 010 (国際開放番号 cf. マイライン)
  • Tracing during normal server operaton: 0x1a73f
  • Default tracing during send and receive sessions: 0x1a73f
  • Rings to wait before answering: 3  (早すぎると相手番号を取得し損ねる)

Windows用のinfファイルを見ながら適当にモデムに向かって電話をかけつつ、Caller IDを取得する方法(ここではAT+VCID=1)を見つけて /var/spool/hylafax/etc/config.cuau0 とか.cuaU0 などに追加。

CallIDPatternの後者は自機の番号。AT+GCI=00はAmazonなどで売っているConexant CX93001搭載の技適マークなんか付いてないど安いClass 1.0, Class 2 USB FAXモデムを構内回線につないでFAX受信時にATAでオフフックにならないような場合に付けてあげるともしかしたらつながるようになるかもしれません。Amazonの商品コメントでもFAXの送信ができても受信が安定してないとかできないと書いてありますが、料金からしてだめもとでいろいろ試して楽しめちゃう人向け商品ですね。IN/OUTがあるとかいう深い謎を持った商品もありましたがLINE/PHONEの間違いでしょうきっと。AT+GCI=で設定してATI5で返ってくる00の部分は、日本製でもITU-T.35のAnnex Aに基づいているものもあれば某携帯キャリアのように81とか電話の国番号だったり、某モデムでは64とかなんでかわからない値だったりするので、チップセットメーカによって違う場合があります。話を戻してその他のATI4とかはログで眺めてふーんとうなずくためのものです。ついでに下のこのME5614D2 for まいと~く用に書いた追加設定でMR560E5 for まいと~くも動作することも確認。

e-mail送り先などを指定するために /var/spool/hylafax/etc/FaxDispatch を作成。http://www.hylafax.org/content/Handbook:Server_Operation:Receiving_Faxesにも詳しく書いてありますが、/var/spool/hylafax/bin/faxrcvd を見ながら作成すると必要なものが一目瞭然。

他にも${CALLID1}が自社の番号の時には自社の名前を表示するようにしたりして遊んでみました。/var/spool/hylafax/etc/templates/ro(ちょっとしたボケ)/faxrcvd-succces.txtを自分の気に入った順番や必要な情報だけに整理(ftp://など必要ない)して、

/etc/ttysでは、TAで送信者の電話番号による振り分けを行って2つのfaxgettyで捌くように設定します。

を追加。

して、syslogでエラーが無いことを確認。FAXを送って動作していることを確認して、再起動。再起動後もFAXを送ってちゃんと動作していることを確認。ハードディスクの空きは十分すぎるほどあるのと、良く伺うお客様なので、キューはひたすら溜めて問題時対応用に。いずれフラッシュするようにしましょう。

さらに万が一のPCハングや保守時にも受信できないといけないので、ワークショップからCFカードにFAXを受信できるVE-GP62をひっぱりだしてきましたが、さすがに大量のファックスをいちいち確認するのは大変かもしれないので、冗長用には今のFAXの使い方の紙に印刷のまま使ってもらうのが良いでしょうか。そもそも送信用のFAXは今までのを使うのだから後者ですね。実際に運用して確認してもらいましょう。

ありがとう HylaFAX と portsシステム。あなた方のおかげで楽して世の中がまたまた少しエコになりました。多分。

PivotXで最新の記事のリストを表示したい

PivotX を使い始めて数ヶ月が経ち、記事も順調に増えてきました。そして、記事が増えることで新たに発見した使い方や、追加で欲しい機能が出てきて、日々楽しく試行錯誤をしています。

その一つが「最近の記事」のリストです。

一般的なブログには画面上のどこかに「最近の記事」セクションがあるものが多いですね。 PivotX では「最近のコメント」をリスト表示するタグはあるものの、記事に関してはありません。でも、 PivotX で避けては通れないタグのひとつ、 subweblog を使ってブログ内の記事リストの表示フォーマットを好みの形に指定できます。そして、複数の subweblog タグを使えば、メインの部分のリストにはタイトルと日付とイントロダクションを表示して、サイドバーには同じ記事のタイトルのリストだけを表示する、ということができ、「最近の記事」セクションを作ることができます。このやり方に関しては PivotX Support Forum でも取り上げられています(参照: “List of latest posts“)。

ただ、一つ注意しなくてはいけないのが、同じページの subweblog タグは、同じページングの影響を受ける、という点です。つまり上記の参照にあるような指定の仕方だと、トップページから「次のページへ」ボタンを押すと、もちろんメインの部分には次のx個の記事のリストが表示されますが、サイドバーのリストも次のx個の記事について表示されます。つまり「最近の記事」のつもりで作ったリストが全然最近ではなくなってしまうのです。

そこで上記の参照の例に追加して、最近のリストを表示するための subweblog タグに

ignorepaging="1"

というオプションを指定します。このオプションを指定することで、その subweblog タグの中身はページングの影響を受けず、常にリストの頭から表示されます。

2010年2月23日の時点で、PivotX のオンラインドキュメントでは ignoreoffset というオプションが掲載されていますが、このオプションは動作しません。PivotX Support Forum で確認したところ、どうやらこの記述は間違いのようですので、ignorepaging を使いましょう (参照: “How do you use the ignoreoffset option in subweblog?“)。

_sub_sidebar.htmlのお好みの場所に以下のコードを入れると、サイドバーに最近の記事のタイトルをリスト表示することができます。(*1)

注釈:

  1. recent という subweblog はデフォルトのテンプレートで指定されている standard とは別に定義しました。

文書に記述する際の説明用/例示用のドメイン名、IPアドレス、MACアドレス RFC6890,RFC5737,RFC3849,RFC2606,RFC6761,RFC7042 IANAなどなど

説明書などでドメイン名を例示するときに、 hoge とか foo とか bar とか chome などにを適当なTLDをつなげたり、最近ではTLDとして使ってしまうと自分のドメインでない場合や、自分のドメインでも更新しなかった場合などに問題になる可能性があります。IPアドレスもしかりです。そのままコピペされたり検索エンジンにインデックスされて他人に迷惑をかけないためにも、文書に記述するときに使ってよいドメイン名、IPアドレス、MACアドレス(EUI-48)が決まっています。

RFC6890によって RFC5735 はobsoleteにされました。(RFC5735によって RFC3330 はobsoleteにされました。参考: IPv4枯渇)

  • 2016-06-28 MACアドレス関連追記
  • 2013-10-11 RFC6890関連追記(Documentation用IPアドレスの変更はありません)
  • 2011-02-10 .lg.jp関連追記
  • 2011-01-26 .テスト などTLD関連追記
  • 2010-03-17 .jp関連追記
192.0.2.0/24192.0.2.0 – 192.0.2.255TEST-NET-1 (TEST-NET)RFC6890 RFC5737(RFC5735 RFC3330)
198.51.100.0/24198.51.100.0 – 198.51.100.255TEST-NET-2RFC6890 RFC5737(RFC5735 RFC3330)
203.0.113.0/24203.0.113.0 – 203.0.113.255TEST-NET-3RFC6890 RFC5737(RFC5735)
2001:db8::/322001:db8::0 –
2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
Documentation PrefixRFC6890 RFC3849(RFC5156)
00-00-5E-00-53-00-00-5E-00-53-00 –
00-00-5E-00-53-FF
EUI-48 (MAC addresses) Documentation ValuesRFC7042 2.1.2 (2.1.1)
00-00-5E-EF-10-00-00- 他00-00-5E-EF-10-00-00-00 –
00-00-5E-EF-10-00-00-FF
EUI-64 (unmodified 64-bit MAC addresses) Documentation ValuesRFC7042 2.2.3
.testrecommended for use in testingTLDs for Testing, & Documentation ExamplesRFC2606 RFC6761
.测试(.XN–0ZWM56D)
.परीक्षा(.XN–11B5BS3A9AJ6G)
.испытание(.XN–80AKHBYKNJ4F)
.테스트(.XN–9T4B11YI5A)
.測試(.XN–G6W251D)
.பரிட்சை(.XN–HLCJ6AYA9ESC7A)
.δοκιμή(.XN–JXALPDLP)
.テスト(.XN–ZCKZAH)
.טעסט
(.XN–DEBA0AD)
.آزمایشی
(.XN–HGBK6AJ7F53BBA)
.إختبار
(.XN–KGBECHTV)
e.g.
ほげ.テスト
(xn--18j4d.xn--zckzah)
Reserved for testing internationalised domain namesRoot Zone Database
.examplerecommended for use in documentation or as examples
e.g. hoge.example
TLDs for Testing, & Documentation ExamplesRFC2606 RFC6761
.invalidintended for use in online construction of domain names that are sure to be invalidTLDs for Testing, & Documentation ExamplesRFC2606 RFC6761
.localhosthaving an A record(DNS) pointing to the loop back IP address and is reserved for such useTLDs for Testing, & Documentation ExamplesRFC2606 RFC6761
example.come.g.
hoge.example.com, example.com
Reserved Example Second Level Domain NamesRFC2606 RFC6761
example.nete.g.
hoge.example.net, example.net
Reserved Example Second Level Domain NamesRFC2606 RFC6761
example.orge.g.
hoge.example.org, example.org
Reserved Example Second Level Domain NamesRFC2606 RFC6761
example.jp
example0.jp
example1.jp

example9.jp
ドメイン名例.jp
(xn--eckwd4c7cu47r2wf.jp)
e.g.
hoge.example.jp, example7.jp,
ほげ.ドメイン名例.jp
(xn--18j4d.xn--eckwd4c7cu47r2wf.jp)
 汎用 JP ドメイン名における予約ドメイン名の3 JPRS FAQ
example.<属性ラベル>.jp
example0.<属性ラベル>.jp

example9.<属性ラベル>.jp
example.<市区町村ラベル>.<都道府県ラベル>.jp

example.<都道府県属性ラベル>.<都道府県ラベル>.jp

example.<市区町村属性ラベル>.<市区町村ラベル>.<都道府県ラベル>.jp

など詳細は右記技術細則にて
e.g.
hoge.example3.ed.jp,
example7.city.shibuya.tokyo.jp
 属性型(組織種別型)・地域型JPドメイン名登録等に関する技術細則の4.4 JPRS FAQ
example.lg.jp
example0.lg.jp

example9.lg.jp
e.g.
city.example8.lg.jp
 LG ドメイン名登録等に関する技術細則の3.4 JPRS FAQ