Thanks for the great answer Lee!
About my qestion 1) - The hylafax version I'm using is
hylafax-4.2.3-1rhel3 (got it as precompiled RPM). I assume this is
4.2.3.1 you are refering to, so DTMF timeout feature should be in (as
well as the voice - right?).
What happens when I try to send fax not entering the expected DTMF
sequence is - hylafax answers, fax tones are definitely heard (fax
request), but after about 30 seconds hylafax hangs up. Log file follows:
Jan 4 16:25:29 faxserver FaxGetty[2692]: ANSWER: Call ID 1 "4161111111"
Jan 4 16:25:29 faxserver FaxGetty[2692]: ANSWER: Call ID 2
"xxxxxxxxxxxx"
Jan 4 16:25:29 faxserver FaxGetty[2692]: ANSWER: Call ID 3 ""
Jan 4 16:25:48 faxserver FaxGetty[2692]: MODEM LT V.92 1.0
MT5634ZPX-PCI-U INTERNAL DATA/FAX/VOICE MODEM VERSION 1.32K LT V.92 1.0
MT5634ZPX-PCI-U Internal Data/Fax/Voice Modem Version 1.32k/
The config file I'm using is:
CountryCode: 1
AreaCode: 416
FAXNumber: +1.416.111.1111
LongDistancePrefix: 1
InternationalPrefix: 011
DialStringRules: etc/dialrules
ServerTracing: 1
SessionTracing: 11
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
SpeakerVolume: yes
GettyArgs: "-h %l dx_%s"
LocalIdentifier: FAX
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25
#
ModemType: Class1 # use this to supply a hint
ModemFlowControl: rtscts # many firmwares have broken
software flow control
Class1TMConnectDelay: 400 # counteract quick CONNECT
response
# If your line supports Caller-ID, you may want to uncomment this...
ModemResetCmds: AT+VCID=1
CallIDPattern: "NMBR="
CallIDPattern: "NAME="
RingsBeforeAnswer: 2
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
ModemRingResponse: AT+FCLASS=8;H1
ModemAnswerCmd: <delay:100>AT+FCLASS=1;A
Regards,
Ivan
----- Original Message -----
From: "Lee Howard" <faxguy@xxxxxxxxxxxxxxxx>
To: "Ivan Petrov" <ivanp@xxxxxxxxxxxxx>
Cc: <hylafax-users@xxxxxxxxxxx>
Sent: Wednesday, January 04, 2006 4:12 PM
Subject: Re: [hylafax-users] voice prompt playback before DTMF read?
Ivan Petrov wrote:
I am trying to implement DTMF recognition in order to better route
inbound faxes. So far I managed to get HylaFAX to wait and read the
DTMF response.
What happens is modem picks up, waits for the DTMF entry then receives
the fax, Notification email after fax is received contains CallID3
entry with the DTMF responce entered, which is exactly what should be
happening. This is great. However - if sending party does not enter the
necessary count of DTMF digits hylafax closes the connection without
receiving a fax.
Yes, I am very familiar with the situation.
I have two questions:
1) Is it possible after specific time-out fax to be received no matter
DTMF has not been entered?
Yes. (See below...)
2) Is it possible to playback a greeting uppon line is answered to
prompt sender to punch the x-digit code before submit?
Yes.
Both of these features were added to HylaFAX 4.2.3.1 (found at
http://hylafax.sourceforge.net) and are now also available in 4.2.4.1.
The time-out part is not currently configurable (it's hard-coded at like
10 seconds if I remember correctly), but it will automatically bypass
DTMF detection if fax tones are heard. In those cases the CallID for
SHIELDED_DTMF will be whitespace for however many number of digits the
answer-length is (i.e. " ").
The voice part is a bit more tricky. The man page says this about the
new "play" command-escape-string feature:
-----------------------------------------
The "<play:C>" escape can be used to play a raw audio file with a voice
modem. The files are named etc/playC.raw where "C" is any character.
This feature can be used, for example, to play a brief audio message
after picking up the line but before answering. A configuration example
may be:
ModemRingResponse:
"AT+FCLASS=8;H1\nAT+VSM=131\nAT+VLS=1\nAT+VTX\n<waitfor:CONNECT><play:1><waitfor:OK>AT+VTS=[933,,150]"
ModemAnswerCmd: "<delay:100>AT+FCLASS=1;A"
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
In this example using an IS-101 voice-compliant modem, a RING indication
from the modem will cause the modem to be placed in voice mode, set ulaw
audio compression, and via the connected phone line play back the
etc/play1.raw audio file, which may say, "After the tone enter a
four-digit extension, then start the fax." Following the message a tone
is played.
-----------------------------------------
The reason this is "tricky" is because you have to develop that
ModemRingResponse yourself based on your modem commands per your manual
and you have to generate that etc/play1.raw file yourself based on the
settings used in that ModemRingResponse.
I developed that example with a MultiTech MT5634ZBA-V92, so chances are
good that it will work for you also. However, I'd recommend first start
testing without the "<play:1>" part (which, when omitted, will work with
any version of HylaFAX). You'll not get any voice prompt, but you will
get a "beep" tone, and that will tell you that things are working up to
that point.
Generally, to generate the etc/playC.wav file you'd take any regular WAV
file that you want to be your voice prompt and then you would use
something like sox to convert it into raw digital audio, probably
slinear, uLaw, or aLaw at 8000KHz or something. The "format" of the raw
audio data in that file that you use will depend on the commands you use
in the ModemRingResponse. In this case the governing command is
"AT+VSM=131" which is explained by "AT+VSM=?" to be 8-bit uLaw at
8000KHz. So the sox command would be something like this:
sox your_file.wav -U -b -r 8000 -c 1 play1.raw
Then you copy that play1.raw file to /var/spool/hylafax/etc/, and then
you'd add the "<play:1>" part to the ModemAnswerCmd, restart faxgetty,
and then try it again.
Hope this helps,
Lee.
____________________ HylaFAX(tm) Users Mailing List
_______________________
To subscribe/unsubscribe, click
http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx <
/dev/null
*To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*
____________________ HylaFAX(tm) Users Mailing List
_______________________
To subscribe/unsubscribe, click
http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx <
/dev/null
*To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*