Job / Praca

    Hack na hylafax i faksy w png (lub innym formacie graficznym)

    Na pocz?tku by?a euforia. B?dziemy mieli firmowy wirtualny faks z pi?cioma numerami! Notabene „paczk?” dziesi?ciu kolejnych numerów od Netii dostali?my za darmo, a my?la?em, ?e za darmo nikt ju? nic nie daje. Zatem, serwer faksów stan?? na nogi do?? szybko i co równie? wa?ne, pierwszy numer uda?o si? uruchomi? bez wi?kszych problemów. Serwer to hylafax 4.4.7.

    $ faxstat
    HylaFAX scheduler on nidhog.***.pl: Running
    Modem tty00 (+48616******): Running and idle

    Po pocz?tkowym (moim) zachwycie jak to dobrze dzia?a i jak stabilnie, zacz??y nap?ywa? pytania i pro?by o zmian? formatu dostarczania faksów. Tutaj ma?e wtr?cenie jak wygl?da u nas dostarczanie faksów. Na jeden numer do ksi?gowo?ci kontrahenci wysy?aj? faks, który nast?pnie jest dystrybuowany do wszystkich osób którym mo?e by? to przydatne. Te kilkadziesi?t osób patrzy sobie w swoje Thunderbirdy a niektóre wybitnie oporne jednostki w Outlooki i im szybciej po ?ypni?ciu okiem mo?na stwierdzi?, ?e ten faks jest potrzebny lub nie tym lepiej.

    I tu w?a?nie zaczynaj? si? schody bowiem hylafax po odebraniu faksu umie go dostarczy? jako postscript (domy?lnie) lub wielostronicowy tiff lub pdf. Niby mamy wszystko co potrzeba, orygina?, obrazek, pdf. Niestety problem tkwi poniek?d w klientach pocztowych, które bez zag??biania si? w szczegó?y nie mog? wy?wietli? podgl?du za??cznika w pdf lub tiff.

    Domy?lnie hylafax nie ma tak?e opcji dla png, jpg czy gif poniewa? w/g twórców hylafax’a formaty te nie nadaj? si? do odwzorowywania czarno-bia?ych faksów oraz maj? problem z wielostronicowymi faksami.

    Po kilkudniowych (naprawd?) poszukiwaniach jakich? pluginów i patchy okaza?o si?, ?e s? co prawda jakie? patche na /var/spool/hylafax/bin/faxrcvd , który jest odpowiedzialny za przyjmowanie faksów istniej? na forum hylafax ale posty s? datowane mi?dzy 1999 a 2004 i teraz ten plik wygl?da zupe?nie inaczej. Oczywi?cie przy ka?dym po?cie akademicka dyskusja dlaczego nie u?ywa? png czy jpg…

    Jak ju? pisa?em, w modelu odbioru faksów, który u nas z powodzeniem funkcjonuje liczy si? szybko?? – dostajemy kilkana?cie/kilkadziesi?t faksów dziennie, który to faks mo?e dotyczy? jednej lub kilku osób z kiludziesi?ciu. Musi by? obrazek dost?pny w podgl?dzie dla programów pocztowych, koniec, kropka.

    Zamiast próbowa? zaimplementowa? obs?ug? png do faxrcvd, który dla mnie jest zbyt pokr?cony, poszed?em inn? drog?. Hylafax u?ywa pliku /var/spool/hylafax/etc/FaxDispatch do dostosowywania dostarczania faksów. Mo?na tam oprócz predefiniowanych pól dokonywa? modyfikacji np przy pomocy CASE (gdy numer taki, dostarcz gdzie?) itp. Mi natomiast rzuci? si? w oczy przedostatni przyk?ad z jakiego? FaxDispatcha w cvsie hylafaxa:

    ## To make each received fax saved outside hylafax
    ## ( Don't forget to chown uucp /some/place )

    /bin/cp $FILE /some/place

    Czysty skrypt shellowy w pliku konfiguracyjnym :)

    Po kilkunastu wys?anych faksach testowych i poprawieniu kilku b??dów oraz praw urodzi?o si? co? takiego:

    FILETYPE=pdf;
    SENDTO=fax@***.pl;
    TEMPLATE=pl;

    convert $FILE /tmp/fax/fax.png
    echo "To: fax@***.pl" > /tmp/fax/mail_fax
    echo "From: Serwer fax??w *** Sp. z o.o. " >> /tmp/fax/mail_fax
    echo "Subject: Odebrano fax od $SENDER" >> /tmp/fax/mail_fax
    echo "MIME-Version: 1.0" >> /tmp/fax/mail_fax
    echo "Content-Type: text" >> /tmp/fax/mail_fax
    echo "Content-Disposition: inline" >> /tmp/fax/mail_fax
    for D in /tmp/fax/*png
    do
    uuencode $D $D >> /tmp/zalaczniki
    done
    cat /tmp/zalaczniki >> /tmp/fax/mail_fax
    sendmail "fax@***.pl" < /tmp/fax/mail_fax rm -rf /tmp/fax/* rm -rf /tmp/zalaczniki

    Do dzia?ania potrzebny jest ImageMagic.

    Krótkie obja?nienie

    - pierwsze trzy linijki to najbardziej podstawowa konfiguracja, odbiorca, format i szablon wiadomo?ci. Zostawi?em podczas testowania jak przychodzi? faks aby przez wadliwy skrypt poni?ej nie zosta? pozbawionym faksów :)

    - nast?pnie konwertujemy plik tiff który tworzy hylafax w /var/spool/hylafax/recvq na png. Konkretny plik hylafax przechowuje w zmiennej $FILE wi?c nie musimy nawet szuka? tego o którego nam chodzi. Wielostronicowy tiff konwertowany jest na wiele plików png w/g schematu - je?li dajemy nazw? fax.png jako pliku wyj?ciowego dostajemy fax-1.png, fax-2.png itd.

    - kolejne 6 linijek tworzy nag?ówek maila, bez tego te? zadzia?a, ale odbiorca dostanie fax bez tematu od UNIX-to-UNIX Copy (uucp@domena), za?o?? si?, ?e to si? nie spodoba ludziom z poza IT :) Mamy zatem ?adnie od kogo dla kogo, z numerem telefonu który do nas wysy?a? w temacie.

    - nast?pne 4 linijki to p?tla dzia?aj?ca na katalogu gdzie s? nasze skonwertowane pliki png. Ka?dy plik png trzeba zakodowa? do ascii i doklei? do wcze?niej stworzonego pliku z nag?ówkiem.

    - ostatecznie wysy?amy mail sendmailem do??czaj?c nag?ówki i za??czniki z pliku.

    - ostatnie dwie linijki - sprz?tamy oczekuj?c nast?pnego faksu :)

    Trzeba pami?ta?, aby wszystkie polecenia i katalogi u?yte w tym skrypcie mog?y by? wykonane przez u?ytkownika uucp.

    Je?li wszystko gra, adresat maila powinien otrzyma? mniej wi?cej tak? wiadomo??:

    Related Posts with Thumbnails

    Comment

    Leave a Reply

    Add your widget here