Faxen ontvangen met efax

ArticleCategory:

SystemAdministration

AuthorImage:

[Mark Nielsen]

TranslationInfo:

original in en Mark Nielsen

en to nl Hendrik-Jan Heins

AboutTheAuthor:

Mark Nielsen werkt bij AudioBoomerang.com; zij maken en leveren gepersonaliseerde multimedia email, web, en nieuwsbrief campagnes en volgen ze ook op. Hij werkt als consultant en levert het finale product aan AudioBoomerang.com's klanten, zoals geavanceerde aangepaste statistische rapporten die gebruikt worden voor demografische of psychologische profielen in toekomstige campagnes. In z'n vrije tijd schrijft hij artikelen die gerelateerd zijn aan Free Software (GPL) of Free Literature (FDL) en is hij betrokken bij een non-profit leercentrum eastmont.net.

Abstract:

Het configureren van Efax om faxen te kunnen verzenden en ontvangen op een RedHat 7.2 machine.

ArticleIllustration:[This is the title picture for your article]

[illustratie]

ArticleBody:

Het doel

Ik wilde een fax-server configureren. Ik wilde eerst HylaFax gebruiken, maar mgetty was al op mijn Red Hat systeem geïnstalleerd en dat werkt niet goed samen met HylaFax, dat merkte ik toen ik probeerde het HylaFax rpm pakket te installeren. Bovendien lijkt het er op dat als ik het goed wil doen, ik mgetty ook kan blijven gebruiken om in te loggen en zowel analoge sessies als fax-sessies te doen. Nu wil ik alleen maar faxen kunnen ontvangen in de standaard Red Hat installatie, zonder extra software te hoeven gebruiken.

Efax en fax zijn in feite hetzelfde. 'fax' is gewoon een script dat efax aanroept.

Configuratiebestanden

Er zijn twee bestanden die je kunt configureren om de boel aan de praat te krijgen: /usr/bin/fax en /etc/inittab.

Kopieer /usr/bin/fax naar /usr/bin/fax_custom, waar ik de volgende regels heb veranderd:

FAXDIR=/var/spool/fax/incoming
NAME="AudioBoomerang.com Computer Fax Server"
FROM="+1 111 222 3333"
ANSFNAME="fax_%Y%m%d_%H%M%S"

In /etc/inittab heb ik het volgende veranderd:

S0:2345:respawn:/bin/sh /usr/bin/fax_custom answer

Efax en fax -- single receive

Om een enkele fax te ontvangen als je weet dat iemand je een fax wil sturen, voer je dit commando uit:
efax -d /dev/ttyS0 -l "268 1162"  -c 1,5 -r reply
of
fax answer

Als je niet wilt dat fax in de achtergrond start en wacht op de volgende fax, moet je de veranderingen die ik in de "Configuratiebestanden" sectie aangaf voor /etc/inittab niet aanbrengen.

Efax en fax -- in meervoud met inttab

Als je het bestand /etc/inittab hebt veranderd zoals ik aan heb gegeven in de "Configuratiebestanden" sectie, hoef je alleen je computer nog maar te herstarten en je modem ontvangt faxen en stuurt die naar de /var/spool/fax/incoming directory.

Als je de volgende opdracht geeft:

ps auxw | grep efax
krijg je te zien dat efax in de achtergrond draait, dat ziet er zo ongeveer uit:
root 1698 0.0 0.4 1576 616 ? S< 21:47 0:00 /usr/bin/efax -v -v chewmainrxtf -d/dev/modem -iZ -i&FE&D2S7=120 -i&

Het mooie is dat als je proces "1698" doodt, het opnieuw wordt opgestart en ik denk dat het opnieuw het bestand /usr/bin/fax_custom inleest. Dus, als je iets verandert aan dat bestand, hoef je alleen maar het draaiende efax te doden voor je opnieuw probeert een fax te sturen als je je configuratie test.

Wat doe je nadat je faxen hebt ontvangen?

Je kunt een cron taak draaien die de bestanden in /var/spool/fax/incoming sorteert, een lock bestand voor alle groepen faxen maakt en ze dan ofwel converteert naar pdf om ze te kunnen bekijken op een webpagina, of ze direct uitprint.

Als je ze wilt afdrukken, doe dat dan met efix:

efix -ops fax_20020606_014847.001 | lpr

Ik zou aanraden om eerst af te drukken en daarna het bestand te bewaren in een backup directory.

Faxen Sturen

Het instellen van de print service was veel lastiger dan ik had gedacht. Allereerst moet je doen wat de man pagina's zeggen (maar met enkele wijzigingen):
  1. ln /usr/bin/fax /usr/bin/faxlpr
    
  2. In /etc/printcap.local
       fax:lp=/dev/null:sd=/var/spool/fax:if=/usr/bin/faxlpr_perl:
    
  3.     mkdir /var/spool/lpd/fax
        touch /var/spool/lpd/fax/lock
    
  4. /etc/rc.d/init.d/lpd restart
    

Nu heb ik de volgende veranderingen aangebracht:

  1. In /usr/bin/faxlpr veranderde ik
    l=`$FAX send "$num" fax$$`
    in
    
    `gs -q -sDEVICE=tiffg3 -dNOPAUSE -sOutputFile=fax_out fax$$ </dev/null`
    l=`efax -t $num fax_out`
    `rm fax_out`
    
    en ik veranderde ook deze drie regels in de faxlpr sectie:
      num=` echo "$cfile" | sed -e /^[^J]/d -e s/..//`
      host=`echo "$cfile" | sed -e /^[^H]/d -e s/..//`
      user=`echo "$cfile" | sed -e /^[^P]/d -e s/..//`
    
  2. Ik heb een perl script bewaard op /usr/bin/faxlpr_perl en heb een chmod 755 /usr/bin/faxlpr_perl uitgevoerd:
    #!/usr/bin/perl
    
    my $String = "";
    foreach my $Arg (@ARGV)
      {
      if ($Arg =~ /\-j/)
        {
        my $Copy = $Arg;
        $Copy =~ s/\-j//;
        open(FILE,">lock"); print FILE "hfA$Copy"; close FILE;
        }
      }
    my $Command = "/usr/bin/faxlpr";
    system ($Command, @ARGV);
    print 1;
    
  3. Dit is het deel dat ik echt verschrikkelijk vind, maar ik moest een "chmod 666 /dev/ttyS1" uitvoeren, zodat de lpr gebruiker die de jobs beheert het modem kan gebruiken.

Het perl script zorgt ervoor dat faxlpr het procesnummer kan vinden en het veranderen van het "fax" commando naar "efax" was nodig omdat het lock-bestanden probeerde aan te maken die ik niet wilde hebben.

Ik denk wel dat mijn methode om faxen te sturen een fout maakt met de lock-bestanden, dus het zou wel eens mis kunnen gaan als je probeert tegelijk een fax te sturen en een andere te ontvangen.

Na al deze pijnlijke ingrepen en al dit lijden, moet je printprogramma ook de optie "-J" kennen, zodat het een commando als 'lpr -P fax -J "555 1212" file.ps' kan geven. Anders moet je afdrukken naar een bestand en het daarna afdrukken met een opdracht op de commandoregel.

Je kunt ook gewoon het efax commando gebruiken om een fax te sturen en dit niet via de print service laten lopen. Je moet dan wel gebruik maken van 'gs' om het te converteren voordat je het kan opsturen, dus het is nog steeds onhandig.

Conclusies

Wanneer ik de kans heb, zal ik proberen om:

Efax is slechts een tijdelijke oplossing totdat ik doorheb hoe ik mgetty aan de praat kan krijgen (ik heb het al geprobeerd, maar tot nu toe zonder succes). De enige reden dat ik geen hylafax gebruik, is dat het niet samenwerkt met mgetty en dat ik geïnteresseerd ben in mgetty, en daarom doorgegaan ben met efax. Ik ga proberen om mgetty in de toekomst te gebruiken, omdat ik meer diensten via dat modem wil instellen. Het moet mogelijk zijn om telefoon, login en fax allemaal op hetzelfde modem te zetten-- maar het geeft misschien problemen om de modem correct het verschil tussen die sessies te laten detecteren. Ik wil eigenlijk geen faxen versturen via efax en de print service. Ik hoop dat mgetty de oplossing is voor mijn problemen.

Referenties

  1. De Easy Fax Server!
  2. Een Linux Fax Server voor een Windows Network
  3. Linux Fax voor Dummies
  4. Hylafax

Article Versie 1.2 : Laatst aangepast Thu Jun 13 04:17:31 2002