HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] voice prompt playback before DTMF read?



Thanks Lee,

I just tried the patch - works like a charm! Perfect!!

Regards,
Ivan


----- Original Message ----- From: "Lee Howard" <faxguy@xxxxxxxxxxxxxxxx>
To: "Ivan Petrov" <ivanp@xxxxxxxxxxxxx>
Cc: <hylafax-users@xxxxxxxxxxx>
Sent: Thursday, January 05, 2006 12:54 AM
Subject: Re: [hylafax-users] voice prompt playback before DTMF read?



Ivan Petrov wrote:

Hi guys,

I found another issue - when I dial the numbers automatically (from my
fax machine and add pauses to bypass the voice greeting, then the
desired DTMF code - everything works great, but if I enter the code
manually (pressing the keys longer than instantaneous) code does not
get recorded properly but with repetitions - for example if I enter
1234,  I get 1123 or 1112. Is there a away to avoid "autorepeat" and
force the modem to read the digits no matter how long a single digit
DTMF is being received?
I found the modem extremely sensitive - if you don't press the keys as
quickly as possible you will usually get repetitions.

(OS -RHEL 3 U6, HylaFAX 4.2.4.1, modem LT V.92 1.0 MT5634ZPX-PCI-U
INTERNAL
DATA/FAX/VOICE MODEM VERSION 1.32K(MULTI-TECH SYSTEMS
MT5634ZPX-PCI-U/1.32k)


Ivan,

Please test the attached patch (if you used source tarball).  If you
used RPM, then I've uploaded a 4.2.4.1 RH7 RPM (that includes this
patch, which is not part of 4.2.4.1) to:

http://sourceforge.net/project/showfiles.php?group_id=148904

I forgot that IS-101 "book-ends" DTMF digits with a leading <DLE></> and
a trailing <DLE><~> and then repeats the digit every 70 ms while the
tone is present.

Let me know how it goes.

Thanks,

Lee.



--------------------------------------------------------------------------------


--- hylafax.orig/faxd/ClassModem.c++ 2005-12-22 09:24:30.000000000 -0800
+++ hylafax/faxd/ClassModem.c++ 2006-01-04 21:25:31.754091072 -0800
@@ -1376,13 +1376,25 @@
for (u_int j = 0 ; j < conf.idConfig.length(); j++) {
if (conf.idConfig[j].pattern == "SHIELDED_DTMF") { // retrieve DID, e.g. via voice DTMF
ringstart = Sys::now();
+ bool marked = false, gotdigit = false;
do {
int c = server.getModemChar(10000);
if (c == 0x10) c = server.getModemChar(10000);
if (c == 0x23 || c == 0x2A || (c >= 0x30 && c <= 0x39)) {
// a DTMF digit was received...
- protoTrace("MODEM HEARD DTMF: %c", c);
- callid[j].append(fxStr::format("%c", c));
+ if (!marked || (marked && !gotdigit)) {
+ protoTrace("MODEM HEARD DTMF: %c", c);
+ callid[j].append(fxStr::format("%c", c));
+ gotdigit = true;
+ }
+ } else if (c == 0x2F) {
+ // got IS-101 DTMF lead marker
+ marked = true;
+ gotdigit = false;
+ } else if (c == 0x7E) {
+ // got IS-101 DTMF end marker
+ marked = false;
+ gotdigit = false;
} else if (c == 0x73) {
// got silence, keep waiting
protoTrace("MODEM HEARD SILENCE");




____________________ 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*




Project hosted by iFAX Solutions