![]() |
Thanks for the reply. What do you use for your egetty program? David Vyacheslav Frolov writes: > > > David Ronis wrote: > > > I'm trying to get hylafax to work with a ZYXEL omni 56K modem on an > > i686-linux-gnu box. I can get vgetty to answer the modem by itself, > > but would prefer to stick with hylafax. So far I fax and data calls > > work fine, but I've been completely unsuccessful getting faxgetty to > > answer/recognize voice calls. I always start with a data connection. > > I use agetty for data and want to use vgetty for voice. > > > > My configuration file is appended. > > > > I've played around with the ModemSetupAACmd, AdaptiveAnswer, and > > AnswerRotary parameters, but so far, without success. > > > > Has anybody gotten any voice modem to work? If so, could you send me > > a copy of your configuration file? > > Yes, I use ZYXEL U1496+. > > Configuration is > ----------- > AnswerRotary: extern > EGettyArgs: "...<args>..." > ----------- > > My egetty program plays voice promt and exits with code 2 if detected fax tone. > If fax tone was not detected it records voice message. > > The typical sessiоns for egetty program are: > > ----------- voice call sessiоn > >>> 'AT\r' > <<< '\r\nOK\r\n' > >>> 'AT+FCLASS=?\r' > <<< '\r\n0,2,2.0,6,8\r\nOK\r\n' > >>> 'AT+FCLASS?\r' > <<< '\r\n2.0\r\nOK\r\n' > >>> 'AT+FCLASS=8\r' # voice class > <<< '\r\nOK\r\n' > >>> 'ATS39.6=1\r' # enable receiving DLE codes > <<< '\r\nOK\r\n' > >>> 'AT+VLS=2\r' # voice connection > <<< '\r\nVCON\r\n' > >>> 'AT+VTX\r' # start sending voice > <<< '\r\nCONNECT\r\n' > >>> [RMD file] # sending voice prompt > >>> <NUL><DLE><ETX> # stop sending voice > <<< '\r\nVCON\r\n' > >>> 'AT+VTS=[1200,0,15]\r' # beep > <<< '\r\nOK\r\n' > >>> 'AT+VRX\r' # start receiving voice > <<< '\r\nCONNECT\r\n' > <<< [RMD file] # receiving/recording voice message > <<< '<DLE>b' # busy signal detected > >>> 'AT\r' # stop receiving voice > <<< '\r\nVCON\r\n' > >>> 'ATS39.6=0\r' # restore > <<< '\r\nOK\r\n' > >>> 'AT+FCLASS=2.0\r' # restore > <<< '\r\nOK\r\n' > >>> 'AT+VLS=0\r' # on hook > <<< '\r\nOK\r\n' > exit 5 # return to faxgetty with CALLTYPE_DONE > ----------- > > ----------- fax call sessiоn > >>> 'AT\r' > <<< '\r\nOK\r\n' > >>> 'AT+FCLASS=?\r' > <<< '\r\n0,2,2.0,6,8\r\nOK\r\n' > >>> 'AT+FCLASS?\r' > <<< '\r\n2.0\r\nOK\r\n' > >>> 'AT+FCLASS=8\r' > <<< '\r\nOK\r\n' > >>> 'ATS39.6=1\r' > <<< '\r\nOK\r\n' > >>> 'AT+VLS=2\r' > <<< '\r\nVCON\r\n' > >>> 'AT+VTX\r' > <<< '\r\nCONNECT\r\n' > >>> [RMD file] # sending voice prompt > <<< '<DLE>c' # fax tone detected > >>> <NUL><DLE><ETX> # interrupt sending voice > <<< '\r\nVCON\r\n' > >>> 'ATS39.6=0\r' > <<< '\r\nOK\r\n' > >>> 'AT+FCLASS=2.0\r' > <<< '\r\nOK\r\n' > >>> 'ATA\r' # answer fax > <<< '\r\nCONNECT FAX\r\n' > exit 2 # return to faxgetty with CALLTYPE_FAX > ----------- > > I'm not using the mgetty+sendfax's vgetty but it seems that it can be used instead egetty. > > NOTE: It seems there is a bug in HylaFax on Linux (see below). > If so you can try to patch HylaFax or use egetty script that runs vgetty > (replace "print "ATA\r"; exit 2;" to "exec '/sbin/vgetty...';"). > > Vyacheslav Frolov wrote: > > > Dmitry Bely wrote: > > > > > [---cut---] > > > #!/usr/bin/perl > > > print "ATA\r"; # always answer as a fax > > > exit 2; > > > [---cut---] > > > > > > The problem is that after returning to Hylafax the modem file descriptor > > > becames broken and all commands to the modem fails with the write error :-( > > > > On Linux You can fix that two ways: in HylaFax source (cut1) or in egetty script (cut2). > > > > [---cut1---] > > --- ../org/hylafax-4.1beta2/faxd/GettySysV.c++ Sun Jun 13 11:41:03 1999 > > +++ ../hylafax-4.1beta2/faxd/GettySysV.c++ Fri Mar 17 17:40:00 2000 > > @@ -95,6 +95,7 @@ > > * the login process that follows. > > */ > > setsid(); > > +#define sco > > #ifndef sco > > fd = Sys::open(getLine(), O_RDWR|O_NONBLOCK); > > #else > > [---cut1---] > > > > [---cut2---] > > #!/usr/bin/perl > > require 'asm/ioctls.ph'; > > require 'asm/termios.ph'; > > sub termios_t() { 'IIIICC32C3II'; } > > sub m_open() { > > local $SIG{'HUP'} = sub {}; > > ioctl(STDOUT, &TIOCNOTTY, 0); > > > > my $termios = ""; > > ioctl(STDOUT, &TCGETS, $termios); > > my @ar = unpack(termios_t, $termios); > > $ar[2] |= &CLOCAL; > > $termios = pack(termios_t, @ar); > > ioctl(STDOUT, &TCSETS, $termios); > > } > > m_open(); > > print "ATA\r"; > > exit 2; > > [---cut2---] > > > > Sorry, I had't test the example. It's only the cut from my working script. > > > > Regards, > > Vyacheslav. ____________________ HylaFAX(tm) Users Mailing List _______________________ To unsub: mail -s unsubscribe hylafax-users-request@hylafax.org < /dev/null