hylafax server 架設心得

os: ubuntu desktop 9.10
hylafax server: 6.0.4
modem: 伽利略 56k V.90 /DATA/FAX/VOICE MODEM (chipset is Topic) RS232的連接埠。
line: 電話線一條,用我自已的分機做測試

安裝套件和設定的部份網路上,已經有很多資料可以做參考了所以請上網搜尋。

遇到的問題:

主機板上並沒有做com1的接座,只有預留一個插槽讓我們插連接線用。
所以到電子材料行購買rs232 連接線,怎麼用都不能和電腦連線。
後來網路上發現有人有同樣的情形,這是由於接法不一致造成。
我們可以打開com連接座這一端,可以發現由排線紅色這一邊開始看去,可以看到
它是上下上下這樣的接法,所以就照著人家所說的接法去重新焊上。
接法:紅色的算第一條接pin1依此類推,這樣依序算過去將它們通通接上。

DB9 公頭 (Pin Side) DB9 母頭 (Pin Side)
——————- ——————
1 2 3 4 5 / 5 4 3 2 1 /
6 7 8 9 / 9 8 7 6 /
———– ———-

上圖看到的是外觀pin腳的位置,當我們接線時我們要將他們反過來看這樣接就不會錯了。
接好了,真的可以連到我的數據機了,此時真是非常高興。

使用分機做測試,在撥打外線的時後必需先按個0,才能正常的撥打外線。

但是使用了伽利略的數據機(topic), 在faxaddmodemh指令時,生成的config.ttyS0
的配置檔是使用topic的這一個檔案做為基礎的設定檔。
在網路上很多說明文件都有說到,如果要撥打外線的話需設定如下
通過修改數據機配置文件config.ttySx中的撥號設定

不要檢查撥號音
ModemDialCmd: ATDT%s >> ModemDialCmd: ATX3DT%s
外線撥0或9
ModemDialCmd: ATX3DT%s >> ModemDialCmd: ATX3D0T%s

但是檢查產生的配置檔時,我並沒有發現這一個設定項,於是我自已給它加了上面這一行真的還可成功運行。

faxgetty 指定 modem

當faxstat一切都看起來正常時,使用sendfax 來傳送一個明文的檔案時發現hylafax怎麼都不工作呢?
原來是起動hylafax之後,還必需要用faxgetty 指定 modem。

No font metric information found for “Courier-Bold"

這個錯誤是因為typerules使用Courier-Bold 當作ascii的檔案,轉檔時的預設字型,而這個字型在textfmt所指定的
預設目錄中沒有被找到可以用man看一下就知道了。
在系統中找到n022003l.afm的字型檔,並將它複製到textfmt搜尋字型檔的預設目錄下就可以了。

架設 samba server 使區網內的每台電腦都可以利用傳真資源
下面這個網址 提供了多種傳真印表機的設定方法

http://web.archive.org/web/20070305223445/http://www.purpel3.nl/sambafax/

利用上敘的說明來實作 設定samba印表機

[global]
workgroup = TOYOINK-CT
server string = Samba Server
interfaces = 192.168.0.189/24
security = SHARE #安全性設為共享
log file = /var/log/samba/log.%m
max log size = 50
printcap name = /etc/printcap #記載印表機的設定檔
dns proxy = No
hosts allow = 192.168.0., 127.
cups options = raw #使用cups 來管理列印 option 選項為 raw

[printers]
comment = All Printers
path = /var/spool/samba
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = No
browsable = No

sambafax 這個文件要放在/usr/lib/cups/backend/目錄下 (新增的印表機列印時會執行它)
當列印資料由管線過來時,它會帶來參數 記得有6個 $1~$6

#!/bin/sh
# constants
SENDMAIL="/usr/sbin/sendmail" #sendmail的路徑
PS2ASCII="/usr/bin/ps2ascii" #ps2ascii的路徑
SENDFAX="/usr/bin/sendfax" #sendfax的路徑
JAVA="/usr/bin/java" #java的路徑
# make up a temporary file #準備暫存檔
FAXFILE=/tmp/sambafax.$$
# retrieve the username and hostname from the paramaters #取得使用者名稱
Username=$2
# if the samba user is anonumous then send mails to the postmaster #設定要通知的電子郵件地址
if [ “$Username" = “nobody" ];
then
MailTo="sc.yang@toyoink-ct.com.tw"
else
MailTo="${Username}@toyoink-ct.com.tw"
fi
# now dump the to-be faxewd data (PS fdormat) to the temp file (把ps format的資料流傾印到暫存檔中)
cat >${FAXFILE} # this comes from the pipe (local mission) #本地端的任務使用
cat $6 >>${FAXFILE} # or this comes from samba as a file #經由samba傳送過來的資料流會變成$6帶入
# retrieve the client IP from the parm #從參數中取得是誰想要傳真取得ip address
ORGINATING_IP=`echo ${5}| /usr/bin/perl -ne ‘print $& if $_ =~ /192.168.0.d{1,3}/ ;’` #用perl取得 ip 位址
FAXNUM=`${JAVA} -jar /usr/lib/cups/backend/printfax-client.jar ${ORGINATING_IP}`
#執行java app 呼叫client端,並等待client輸入電話號碼並回傳
# if faxnumber is found fax the tempfile
# we donot check the validity of the faxnumber, let sendfax do this… 檢查是否有輸入傳真號碼
if [ “${FAXNUM}" = “" ] ; then #號碼是空白,發送通知傳真號碼空白
(echo “To: ${MailTo}"
echo “From: The HylaFAX Samba dancer "
echo “Subject: your facsimile request failed"
echo `date`
echo “The faxnumber is Empty !!"
echo “Please correct and retry"
) | 2>&1 ${SENDMAIL} -ffax -oi ${MailTo}
else
${SENDFAX} -n -D -f ${MailTo} -d ${FAXNUM} ${FAXFILE} #執行發送傳真
fi
# remove the temp file 移除暫存檔
rm -f ${FAXFILE}
# end of show

在cups下面新增一印表機

Add a new printer to cups with lpadmin -p SambaFax -E -v
sambafax:
在windowsd的系統下安裝sambaserver提供SambaFax的印表機,而driver就用apple 彩雷的驅動
在執行傳真之前要先執行printfax-server.jar用來監聽samba server的呼叫
這樣使用列印的方式來傳真文件時就會跳出一個視窗來要使用者輸入傳真號碼

在另一台centos server 上如何使用sendfax來傳真

編輯 hosts.hfaxd 將centos server的ip位址加到裏面去 這樣傳真時就不被詢問密碼了
還有就是要將centos server 上的iptables做修改,允許來至fax server新的連線請求加入下面這條規則
-A RH-Firewall-1-INPUT -s 192.168.0.189 -m state –state NEW -m tcp -p tcp -j ACCEPT
ps. 上面這條規則記得不要加在最後面,不然會沒有用。
這樣我們就可以利用 sendfax -h 192.168.0.189 -n -d 123456789 document_patch.pdf 來發送傳真了

使用faxadduser -a password username 建立好帳號後卻不能用

使用faxrm -a jobid 來移除工作序列怎樣打帳號密碼都不能登入
用su 切換使用者的帳戶接著執行faxrm -a jobid,這會要求輸入密碼只要打上正確的密碼就可以移除傳真工作
如果上面該做的都有做了,還是提示密碼不正確。有可能是hosts.hfaxd這個設定檔,當我們用faxadduser時將我們新加的條目加在最下面。
但是手冊有說到越是複雜的設定就要放在越上面。像是下面這樣:

oot@:::glw6VU231k1Gw
localhost
127.0.0.1
192.168.0.226
192.168.0.189

我就是犯了這樣的錯誤,密碼怎麼打都不對真是氣死我了。

ps.上面提到的 java app printfax-client-server 程式下載

2 thoughts on “hylafax server 架設心得

發表留言