「Fax for Asterisk」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(新しいページ: '{{Template:書きかけ}} Fax for Asterisk<br> Digium純正のAsterisk用FAXチャネル。<br> :http://www.digium.com/en/products/software/faxforasterisk.php<br> 価格: Digiu...')
 
 
(2人の利用者による、間の12版が非表示)
3行目: 3行目:
 
Digium純正のAsterisk用FAXチャネル。<br>
 
Digium純正のAsterisk用FAXチャネル。<br>
 
:http://www.digium.com/en/products/software/faxforasterisk.php<br>
 
:http://www.digium.com/en/products/software/faxforasterisk.php<br>
価格: Digium オンラインショップで $39/チャネル
+
価格: Digium オンラインショップで $39/チャネル。ただし1chは無料。<br>
 +
<br>
 +
'''注意:サポートされるのはAsterisk 12まで。Asterisk 13以降はspandspとres_fax_spandspを使用するようにとのこと。'''<br>
 
==要件==
 
==要件==
 
Asterisk 1.4<br>
 
Asterisk 1.4<br>
 
Asterisk 1.6.(0,1,2)<br>
 
Asterisk 1.6.(0,1,2)<br>
 
Asterisk 1.8<br>
 
Asterisk 1.8<br>
 +
Asterisk 10<br>
 +
Asterisk 11<br>
 +
Asterisk 12<br>
 +
:Asterisk 1.8.4以降はそれまでのモジュールは使えないので、1.8.4以降用のモジュールをインストールしてください。Asterisk本体を1.8.4以前のバージョンからアップグレードする場合には要注意です。
 +
 +
==購入==
 +
エンドユーザの場合には、Digiumのオンラインショップで購入します。<br>
 +
:http://store.digium.com/<br>
 +
購入すると、ダウンロードURLと登録キーが送られてきます。1chのみならば無料なので無料版を利用する場合には、無料版を「購入」します。価格は$0なので、そのままチェックアウトすればライセンスキーが送られてきますので、そのキーを使って登録します。<br>
 +
なお、Digiumの他のチャネル系プロダクトと同様に、このチャネル数は回線数ではなく同一のAsterisk内で同時に使用するチャネル数のことです。<br>
 +
==インストール==
 +
===プロダクトの登録===
 +
まず、登録用のソフトregisterをダウンロードします。登録は使用するマシンのNICに基づいて行われるため、使用するAsteriskをインストールしたマシン上で行います。Linuxの場合には、wgetなどで入手するかと思いますが、その際にはchmod +x registerして./registerを実行してください。この時に、購入時に送られてきたキーが必要となります。<br>
 +
Digiumの他のプロダクトもそうですが、ライセンスキーは /var/lib/asterisk/licenses/ に保存されます。このファイルは<br>
 +
:F4A-xxxxxxxxxxxx.lic
 +
のようなファイル名で、F4Aがプロダクト(Fax4Asterisk)です。<br>
 +
このファイルは'''大切な'''ライセンスファイルなので、バックアップしておくことをお勧めします。<br>
 +
===インストール===
 +
まず最初にベンチマーク・ソフトをダウンロードし実行します。これにより、そのシステムに最適な選択肢が表示されますので、結果にしたがって本体のダウンロードを行います。<br>
 +
ドキュメントを注意深く読み、必要なモジュールをダウンロードします。32/64bit版の他、CPUのアーキテクチャによってもモジュールが異なるので注意してください。一般的にはres_fax.soかres_fax_digium.soのどちらかのファイル名になります。バイナリ配布ですので32/64bit版またはアーキテクチャを間違えると正しく動作しないので注意してください。<br>
 +
インストールは基本的にこのモジュールを/usr/lib/asterisk/modulesへコピーするだけです。<br>
 +
コピーしたならばAsteriskを再起動するか、module load res_fax.so(またはres_fax_digium.so)を実行することでFAXが使用可能になります。<br>
 +
====エラーが出る場合の対処====
 +
loader.c: Error loading module 'res_fax_digium.so': /usr/lib/asterisk/modules/res_fax_digium.so: undefined symbol: ast_fax_tech_register
 +
このエラーが出て、FAXモジュールが起動できない場合には、モジュールをインストールした後に、make clean、make でコンパイルしなおすとなおります。
 +
 +
==使用例==
 +
===受信したFAXをメールで送る===
 +
Fax for Asteriskは基本的にSendFAX()とReceiveFAX()のアプリケーションが提供されるだけなので、あとはexten内で記述します。ここではAsteriskでFAXを受信し、そのFAXをメールで送る例を記述してみます。<br>
 +
受信したFAXはTIFFで保存されますので、これをPDF化してメールで送付するスクリプトを記述します。
 +
*受信処理
 +
ひかり電話ホーム(RT-200NEの場合)で、複数番号を契約しており、FAX番号を専用で持っている場合には着信番号別に処理を分岐します。
 +
[hikari-in]
 +
 +
exten => s,1,Set(DESTNUM=${SIP_HEADER(To)})
 +
exten => s,n,NoOp(${DESTNUM})
 +
exten => s,n,Set(DESTNUM=${DESTNUM:1:10})
 +
exten => s,n,NoOp(${DESTNUM})
 +
exten => s,n,Goto(${DESTNUM},1)
 +
 +
exten => _03xxxxyyya,1,Dial(SIP/201)  <--音声の着信の場合普通にSIP端末を呼びます
 +
 +
exten => _03xxxxyyyb,1,Goto(faxrec,receive,1)  <--FAXの着信の場合受信処理に飛びます
 +
 +
受信処理は以下のようなコンテキストを記述します
 +
 +
[faxrec]
 +
exten => receive,1,NoOp(**** SETTING FAXOPT ****)
 +
exten => receive,n,Set(FAXOPT(ecm)=yes)
 +
exten => receive,n,Set(FAXOPT(headerinfo)=NAME HERE)
 +
exten => receive,n,Set(FAXOPT(localstationid)=813xxxxyyyb)
 +
exten => receive,n,Set(FAXOPT(maxrate)=14400)
 +
exten => receive,n,Set(FAXOPT(minrate)=2400)
 +
exten => receive,n,Set(FAXFILE=${EPOCH}.tif)                        <--ファイル名はUNIXTIME
 +
exten => receive,n,NoOp(**** RECEIVING FAX : ${FAXFILE} ****)
 +
exten => receive,n,ReceiveFAX(/var/spool/asterisk/faxin/${FAXFILE})  <--受信処理
 +
 +
exten => h,1,System(/var/lib/asterisk/fax2mail.sh ${FAXFILE})        <--FAXをメールにするスクリプト
 +
exten => h,n,Hangup
 +
 +
シェルスクリプトは以下のように記述します
 +
 +
#!/bin/sh
 +
 +
SENDTO="someone@somedomain.tld"
 +
FROMADDR="asterisk@somedomain.tld"
 +
DATE=`date`
 +
SUBJECT="Fax recieved at $DATE"
 +
SENDMAIL="sendmail -t"
 +
 +
FAXDIR=/var/spool/asterisk/faxin
 +
PDFDIR=/var/spool/asterisk/faxpdf
 +
UUE=uuencode
 +
TIF=$FAXDIR/$1
 +
PDF=`echo $1|sed s/\.tif/\.pdf/`
 +
PDF=$PDFDIR/$PDF
 +
TMP=`echo $1|sed s/\.tif/\.tmp/`
 +
TMP=$FAXDIR/$TMP
 +
 +
if [ -f $TIF ] ; then
 +
  #Convert tif to pdf
 +
  tiff2pdf -o$PDF $TIF
 +
 +
  #build envelop
 +
  echo "From: $FROMADDR" > $TMP
 +
  echo "To: $SENDTO" >> $TMP
 +
  echo "Subject: $SUBJECT" >> $TMP
 +
  echo "" >> $TMP
 +
 +
  #Encode pdf and send it to recipent
 +
  uuencode $PDF < $PDF >> $TMP
 +
  cat $TMP | $SENDMAIL
 +
 +
  rm -f $TMP
 +
else
 +
  exit
 +
fi
 +
 +
このような感じで処理すればFAX(TIFF)をPDF化してメールで送ることができます。
 +
 +
===FAXを送る===
 +
 +
FAX送信はDigiumのPDFマニュアルに従って、extensions.confに[fax-tx]のコンテクストを作って、以下のようなコマンドをCLIで打てば予め作っておいたTIFFファイルを送信できます。
 +
 +
CLI> originate DAHDI/4/03xxxxxxx extension send@fax-tx

2016年3月13日 (日) 23:25時点における最新版

Fax for Asterisk
Digium純正のAsterisk用FAXチャネル。

http://www.digium.com/en/products/software/faxforasterisk.php

価格: Digium オンラインショップで $39/チャネル。ただし1chは無料。

注意:サポートされるのはAsterisk 12まで。Asterisk 13以降はspandspとres_fax_spandspを使用するようにとのこと。

要件

Asterisk 1.4
Asterisk 1.6.(0,1,2)
Asterisk 1.8
Asterisk 10
Asterisk 11
Asterisk 12

Asterisk 1.8.4以降はそれまでのモジュールは使えないので、1.8.4以降用のモジュールをインストールしてください。Asterisk本体を1.8.4以前のバージョンからアップグレードする場合には要注意です。

購入

エンドユーザの場合には、Digiumのオンラインショップで購入します。

http://store.digium.com/

購入すると、ダウンロードURLと登録キーが送られてきます。1chのみならば無料なので無料版を利用する場合には、無料版を「購入」します。価格は$0なので、そのままチェックアウトすればライセンスキーが送られてきますので、そのキーを使って登録します。
なお、Digiumの他のチャネル系プロダクトと同様に、このチャネル数は回線数ではなく同一のAsterisk内で同時に使用するチャネル数のことです。

インストール

プロダクトの登録

まず、登録用のソフトregisterをダウンロードします。登録は使用するマシンのNICに基づいて行われるため、使用するAsteriskをインストールしたマシン上で行います。Linuxの場合には、wgetなどで入手するかと思いますが、その際にはchmod +x registerして./registerを実行してください。この時に、購入時に送られてきたキーが必要となります。
Digiumの他のプロダクトもそうですが、ライセンスキーは /var/lib/asterisk/licenses/ に保存されます。このファイルは

F4A-xxxxxxxxxxxx.lic

のようなファイル名で、F4Aがプロダクト(Fax4Asterisk)です。
このファイルは大切なライセンスファイルなので、バックアップしておくことをお勧めします。

インストール

まず最初にベンチマーク・ソフトをダウンロードし実行します。これにより、そのシステムに最適な選択肢が表示されますので、結果にしたがって本体のダウンロードを行います。
ドキュメントを注意深く読み、必要なモジュールをダウンロードします。32/64bit版の他、CPUのアーキテクチャによってもモジュールが異なるので注意してください。一般的にはres_fax.soかres_fax_digium.soのどちらかのファイル名になります。バイナリ配布ですので32/64bit版またはアーキテクチャを間違えると正しく動作しないので注意してください。
インストールは基本的にこのモジュールを/usr/lib/asterisk/modulesへコピーするだけです。
コピーしたならばAsteriskを再起動するか、module load res_fax.so(またはres_fax_digium.so)を実行することでFAXが使用可能になります。

エラーが出る場合の対処

loader.c: Error loading module 'res_fax_digium.so': /usr/lib/asterisk/modules/res_fax_digium.so: undefined symbol: ast_fax_tech_register

このエラーが出て、FAXモジュールが起動できない場合には、モジュールをインストールした後に、make clean、make でコンパイルしなおすとなおります。

使用例

受信したFAXをメールで送る

Fax for Asteriskは基本的にSendFAX()とReceiveFAX()のアプリケーションが提供されるだけなので、あとはexten内で記述します。ここではAsteriskでFAXを受信し、そのFAXをメールで送る例を記述してみます。
受信したFAXはTIFFで保存されますので、これをPDF化してメールで送付するスクリプトを記述します。

  • 受信処理

ひかり電話ホーム(RT-200NEの場合)で、複数番号を契約しており、FAX番号を専用で持っている場合には着信番号別に処理を分岐します。

[hikari-in]

exten => s,1,Set(DESTNUM=${SIP_HEADER(To)})
exten => s,n,NoOp(${DESTNUM})
exten => s,n,Set(DESTNUM=${DESTNUM:1:10})
exten => s,n,NoOp(${DESTNUM})
exten => s,n,Goto(${DESTNUM},1)

exten => _03xxxxyyya,1,Dial(SIP/201)  <--音声の着信の場合普通にSIP端末を呼びます

exten => _03xxxxyyyb,1,Goto(faxrec,receive,1)  <--FAXの着信の場合受信処理に飛びます

受信処理は以下のようなコンテキストを記述します

[faxrec]
exten => receive,1,NoOp(**** SETTING FAXOPT ****)
exten => receive,n,Set(FAXOPT(ecm)=yes)
exten => receive,n,Set(FAXOPT(headerinfo)=NAME HERE)
exten => receive,n,Set(FAXOPT(localstationid)=813xxxxyyyb)
exten => receive,n,Set(FAXOPT(maxrate)=14400)
exten => receive,n,Set(FAXOPT(minrate)=2400)
exten => receive,n,Set(FAXFILE=${EPOCH}.tif)                         <--ファイル名はUNIXTIME
exten => receive,n,NoOp(**** RECEIVING FAX : ${FAXFILE} ****)
exten => receive,n,ReceiveFAX(/var/spool/asterisk/faxin/${FAXFILE})  <--受信処理

exten => h,1,System(/var/lib/asterisk/fax2mail.sh ${FAXFILE})        <--FAXをメールにするスクリプト
exten => h,n,Hangup

シェルスクリプトは以下のように記述します

#!/bin/sh

SENDTO="someone@somedomain.tld"
FROMADDR="asterisk@somedomain.tld"
DATE=`date`
SUBJECT="Fax recieved at $DATE"
SENDMAIL="sendmail -t"

FAXDIR=/var/spool/asterisk/faxin
PDFDIR=/var/spool/asterisk/faxpdf
UUE=uuencode
TIF=$FAXDIR/$1
PDF=`echo $1|sed s/\.tif/\.pdf/`
PDF=$PDFDIR/$PDF
TMP=`echo $1|sed s/\.tif/\.tmp/`
TMP=$FAXDIR/$TMP 

if [ -f $TIF ] ; then
  #Convert tif to pdf
  tiff2pdf -o$PDF $TIF

  #build envelop
  echo "From: $FROMADDR" > $TMP
  echo "To: $SENDTO" >> $TMP
  echo "Subject: $SUBJECT" >> $TMP
  echo "" >> $TMP

  #Encode pdf and send it to recipent
  uuencode $PDF < $PDF >> $TMP
  cat $TMP | $SENDMAIL

  rm -f $TMP
else
  exit
fi

このような感じで処理すればFAX(TIFF)をPDF化してメールで送ることができます。

FAXを送る

FAX送信はDigiumのPDFマニュアルに従って、extensions.confに[fax-tx]のコンテクストを作って、以下のようなコマンドをCLIで打てば予め作っておいたTIFFファイルを送信できます。

CLI> originate DAHDI/4/03xxxxxxx extension send@fax-tx