Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Kevin P. Fleming

On 01/03/2011 07:08 PM, Steve Underwood wrote:

On 01/04/2011 04:22 AM, Kevin P. Fleming wrote:

On 01/03/2011 11:26 AM, Tom Rymes wrote:

Hi folks,

I was hoping that someone might be able to help clarify some confusion I
have on DAHDI Fax detection after spending some time searching. My
understanding is this:


I'll try.



1.) Echo cancellation is automatically disabled upon recognition of a
CNG tone, regardless of the faxdetect setting. This can only be disabled
at compile time.


No. CNG tone is never used to affect the state of an echo canceller.
All G.168 compliant echo cancellers will respond to the CED tone
(generated by the answering endpoint) and will reconfigure the echo
canceller appropriately. Most modern ECs will *not* be disabled, but
will enter a 'linear' mode where they can do some echo suppression but
not complete cancellation. DAHDI will detect CED when most software
echo cancellers are in use and will disable them (since none of the
available software ECs can go into linear mode). The Digium HPEC
software EC will detect CED on its own and enter linear mode.

That's not true. Modern echo cancellers normally disable completely. It
is arguable whether they should disable completely for FAX, but they
need to behave properly for all modems. For any duplex modem, disabling
only the NLP is useless. They need to cancel end to end, so they don't
get upset by a continuously adapting canceller, and so they can minimise
the issues caused by the highly non-linear G.711 channel.


This doesn't match up with what the manufacturers of the two G.168 ECs 
that Digium distributes have told me personally about their products. 
Their ECs behave differently for FAX and 'regular' modems, but they do 
that based on the detection of the V.21 preamble, ANSam and other 
signals in addition to CED, which seemed to be much more detail than was 
warranted in my response to the OP :-)





2.) faxdetect=incoming will, upon detection of a CNG tone, send the call
to the fax extension.


If the CNG tone arrives from the network side of the DAHDI channel
(the far endpoint), then yes.


3.) faxdetect=outgoing will ??


The same thing, but if the CNG tone is being sent towards the DAHDI
channel (from the near endpoint). This is rarely used.


Also, do Digium cards with HW Echo Cancellation detect the CNG tones in
hardware? If so, how does the faxdetect setting in DAHDI affect that
behavior?


No, none of the Digium HW ECs detect and report CNG tones via the DSP;
CNG tone detection is still done on the host CPU. 'faxdetect' is not
set in DAHDI, it's set in chan_dahdi.conf.


Steve


--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users



--
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kflem...@digium.com
Check us out at www.digium.com  www.asterisk.org

--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Kevin P. Fleming

On 01/03/2011 06:47 PM, Thomas Rymes wrote:

On Jan 3, 2011, at 3:22 PM, Kevin P. Fleming wrote:


On 01/03/2011 11:26 AM, Tom Rymes wrote:


[snip]


1.) Echo cancellation is automatically disabled upon recognition of a
CNG tone, regardless of the faxdetect setting. This can only be disabled
at compile time.


No. CNG tone is never used to affect the state of an echo canceller. All G.168 
compliant echo cancellers will respond to the CED tone (generated by the 
answering endpoint) and will reconfigure the echo canceller appropriately. Most 
modern ECs will *not* be disabled, but will enter a 'linear' mode where they 
can do some echo suppression but not complete cancellation. DAHDI will detect 
CED when most software echo cancellers are in use and will disable them (since 
none of the available software ECs can go into linear mode). The Digium HPEC 
software EC will detect CED on its own and enter linear mode.


OK. Either way, though, the changes to echo cancellation are not affected by 
the faxdetect setting, right?


That is correct; the faxdetect setting and the echo canceller behavior 
are completely unrelated.





2.) faxdetect=incoming will, upon detection of a CNG tone, send the call
to the fax extension.


If the CNG tone arrives from the network side of the DAHDI channel (the far 
endpoint), then yes.


Great. This is the typical usage, I presume, directing fax machines to FFA, 
Hylafax, another fax machine, or hangup (if this isn't a fax line).

Is there a time limit to when DAHDI listens for faxes (say the first 10 seconds 
of a call?), or might it detect one in the middle of a ten minute call?


I haven't double-checked, but I believe the software DSP will be in 
place on the call until it sees a CNG tone, regardless of when that 
happens during the call.





3.) faxdetect=outgoing will ??


The same thing, but if the CNG tone is being sent towards the DAHDI channel 
(from the near endpoint). This is rarely used.


[snip]

I figured that must be it. Presumedly you might use this to perform some 
activity on an outgoing fax prior to sending it, such as logging something, 
etc? Maybe send it to FFA, receive it, and e-mail it to another server that 
faxes it out on a local number to save toll calls, etc?

Thanks for the clarification, there's a lot of conflicting info out there.


Feel free to comment on wiki.asterisk.org if any of the information 
there led you astray; we'd like to get that to be the most accurate 
place for people to find this sort of information.


--
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kflem...@digium.com
Check us out at www.digium.com  www.asterisk.org

--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Tom Rymes

On 01/04/2011 8:55 AM, Kevin P. Fleming wrote:

On 01/03/2011 06:47 PM, Thomas Rymes wrote:

On Jan 3, 2011, at 3:22 PM, Kevin P. Fleming wrote:

On 01/03/2011 11:26 AM, Tom Rymes wrote:


[snip]


OK. Either way, though, the changes to echo cancellation are not
affected by the faxdetect setting, right?


That is correct; the faxdetect setting and the echo canceller behavior
are completely unrelated.


Excellent.

[snip]


Is there a time limit to when DAHDI listens for faxes (say the first
10 seconds of a call?), or might it detect one in the middle of a ten
minute call?


I haven't double-checked, but I believe the software DSP will be in
place on the call until it sees a CNG tone, regardless of when that
happens during the call.


Wouldn't it make sense to be able to specify a time period after which 
chan_dahdi disables fax detection? Only calls that begin with a voice 
call and end with a fax would benefit from detection after the initial 
~8 seconds of a call, unless I am overlooking something.


If the DSP keeps listening and detects a spurious fax tone (I know I 
have seen the human voice incorrectly identified as CNG), it will send 
the call off to the fax extension if one exists in the same context. In 
fact, we ran into some issues with exactly that happening.


[snip]


Thanks for the clarification, there's a lot of conflicting info out
there.


Feel free to comment on wiki.asterisk.org if any of the information
there led you astray; we'd like to get that to be the most accurate
place for people to find this sort of information.


I'll give it a look. I had not specifically looked at the asterisk wiki, 
but Google searches brought up lots of messages confusing the fax 
operation of the echo canceler with the faxdetect= setting for DAHDI/Zaptel.


Thanks again,

Tom

--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Steve Underwood

On 01/05/2011 02:39 AM, Tom Rymes wrote:

On 01/04/2011 8:55 AM, Kevin P. Fleming wrote:

On 01/03/2011 06:47 PM, Thomas Rymes wrote:

On Jan 3, 2011, at 3:22 PM, Kevin P. Fleming wrote:

On 01/03/2011 11:26 AM, Tom Rymes wrote:


[snip]


OK. Either way, though, the changes to echo cancellation are not
affected by the faxdetect setting, right?


That is correct; the faxdetect setting and the echo canceller behavior
are completely unrelated.


Excellent.

[snip]


Is there a time limit to when DAHDI listens for faxes (say the first
10 seconds of a call?), or might it detect one in the middle of a ten
minute call?


I haven't double-checked, but I believe the software DSP will be in
place on the call until it sees a CNG tone, regardless of when that
happens during the call.


Wouldn't it make sense to be able to specify a time period after which 
chan_dahdi disables fax detection? Only calls that begin with a voice 
call and end with a fax would benefit from detection after the initial 
~8 seconds of a call, unless I am overlooking something.


If the DSP keeps listening and detects a spurious fax tone (I know I 
have seen the human voice incorrectly identified as CNG), it will send 
the call off to the fax extension if one exists in the same context. 
In fact, we ran into some issues with exactly that happening.
It is very normal for many people to chat and then start their FAX 
machines, especially domestic FAX users with a FAX machine attached to 
their home land line. If you don't care about those your proposal is OK, 
otherwise.


There is no excuse for false detection of FAX tone. It takes a very poor 
detector to mistake voice for FAX, unless the person is specifically 
trying to whistle the right tones (which some people are quite good at).


[snip]


Thanks for the clarification, there's a lot of conflicting info out
there.


Feel free to comment on wiki.asterisk.org if any of the information
there led you astray; we'd like to get that to be the most accurate
place for people to find this sort of information.


I'll give it a look. I had not specifically looked at the asterisk 
wiki, but Google searches brought up lots of messages confusing the 
fax operation of the echo canceler with the faxdetect= setting for 
DAHDI/Zaptel.


Steve


--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Steve Underwood

On 01/04/2011 09:53 PM, Kevin P. Fleming wrote:

On 01/03/2011 07:08 PM, Steve Underwood wrote:

On 01/04/2011 04:22 AM, Kevin P. Fleming wrote:


No. CNG tone is never used to affect the state of an echo canceller.
All G.168 compliant echo cancellers will respond to the CED tone
(generated by the answering endpoint) and will reconfigure the echo
canceller appropriately. Most modern ECs will *not* be disabled, but
will enter a 'linear' mode where they can do some echo suppression but
not complete cancellation. DAHDI will detect CED when most software
echo cancellers are in use and will disable them (since none of the
available software ECs can go into linear mode). The Digium HPEC
software EC will detect CED on its own and enter linear mode.

That's not true. Modern echo cancellers normally disable completely. It
is arguable whether they should disable completely for FAX, but they
need to behave properly for all modems. For any duplex modem, disabling
only the NLP is useless. They need to cancel end to end, so they don't
get upset by a continuously adapting canceller, and so they can minimise
the issues caused by the highly non-linear G.711 channel.


This doesn't match up with what the manufacturers of the two G.168 ECs 
that Digium distributes have told me personally about their products. 
Their ECs behave differently for FAX and 'regular' modems, but they do 
that based on the detection of the V.21 preamble, ANSam and other 
signals in addition to CED, which seemed to be much more detail than 
was warranted in my response to the OP :-)
Well, that makes a bit more sense, but I am very skeptical about this. 
The Octasic canceller is highly problematic with various modems and 
tones, so they aren't exactly a reference model for how to do things. 
Reports I here of the other canceller are much more positive. Its 
obvious why they want to keep the canceller alive. Long echoes over VoIP 
channels, combined with slow responding FAX boxes, can lead to a FAX 
machine hearing its own output heavily delayed, and it may mistake this 
for the response from the far end. T.38 largely avoids this kind of issue.


The start of a FAX call doesn't really have a good signal on which to 
train a canceller. They can use the first V.21 burst in each direction 
(The FAX signals for G3 or the V.8 exchange for Super G3), and then lock 
down the canceller, but those signals aren't wide band enough to be 
ideal. The canceller could adapt very oddly. If they continue adapting 
once the wideband signals from the fast modems start, they are likely to 
upset modem operation there. If they just accept that, and rely on the 
fast modem retrying, it will usually step down in speed. I believe I 
have seen this behaviour in setups where the signal looks very clean, 
but the FAXes always exchange at 12000bps.


Steve


--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-04 Thread Thomas Rymes
On Jan 4, 2011, at 7:37 PM, Steve Underwood wrote:

 It is very normal for many people to chat and then start their FAX machines, 
 especially domestic FAX users with a FAX machine attached to their home land 
 line. If you don't care about those your proposal is OK, otherwise.

Well, I was suggesting an OPTION to disable the detection after a specified 
period, so anyone who wishes to do as you describe could just leave the setting 
to indefinite if they wished. Having said that, I don't think that sort of 
behavior is particularly common anymore. More importantly, I would argue that 
practically all users doing that are, as you mention, using a phone connected 
to a fax machine, eliminating the usual needs for sending the call to the fax 
extension. 

Either way, if defined as an option, users could choose how they wanted it to 
work.

 There is no excuse for false detection of FAX tone. It takes a very poor 
 detector to mistake voice for FAX, unless the person is specifically trying 
 to whistle the right tones (which some people are quite good at).

While that might be true, false detections are anything but unheard of, so 
being able to disable detection after the first few moments of a call might be 
useful. 

Tom
--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
   http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-03 Thread Kevin P. Fleming

On 01/03/2011 11:26 AM, Tom Rymes wrote:

Hi folks,

I was hoping that someone might be able to help clarify some confusion I
have on DAHDI Fax detection after spending some time searching. My
understanding is this:


I'll try.



1.) Echo cancellation is automatically disabled upon recognition of a
CNG tone, regardless of the faxdetect setting. This can only be disabled
at compile time.


No. CNG tone is never used to affect the state of an echo canceller. All 
G.168 compliant echo cancellers will respond to the CED tone (generated 
by the answering endpoint) and will reconfigure the echo canceller 
appropriately. Most modern ECs will *not* be disabled, but will enter a 
'linear' mode where they can do some echo suppression but not complete 
cancellation. DAHDI will detect CED when most software echo cancellers 
are in use and will disable them (since none of the available software 
ECs can go into linear mode). The Digium HPEC software EC will detect 
CED on its own and enter linear mode.



2.) faxdetect=incoming will, upon detection of a CNG tone, send the call
to the fax extension.


If the CNG tone arrives from the network side of the DAHDI channel (the 
far endpoint), then yes.



3.) faxdetect=outgoing will ??


The same thing, but if the CNG tone is being sent towards the DAHDI 
channel (from the near endpoint). This is rarely used.



Also, do Digium cards with HW Echo Cancellation detect the CNG tones in
hardware? If so, how does the faxdetect setting in DAHDI affect that
behavior?


No, none of the Digium HW ECs detect and report CNG tones via the DSP; 
CNG tone detection is still done on the host CPU. 'faxdetect' is not set 
in DAHDI, it's set in chan_dahdi.conf.


--
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kflem...@digium.com
Check us out at www.digium.com  www.asterisk.org

--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-03 Thread Thomas Rymes
On Jan 3, 2011, at 3:22 PM, Kevin P. Fleming wrote:

 On 01/03/2011 11:26 AM, Tom Rymes wrote:

[snip]

 1.) Echo cancellation is automatically disabled upon recognition of a
 CNG tone, regardless of the faxdetect setting. This can only be disabled
 at compile time.
 
 No. CNG tone is never used to affect the state of an echo canceller. All 
 G.168 compliant echo cancellers will respond to the CED tone (generated by 
 the answering endpoint) and will reconfigure the echo canceller 
 appropriately. Most modern ECs will *not* be disabled, but will enter a 
 'linear' mode where they can do some echo suppression but not complete 
 cancellation. DAHDI will detect CED when most software echo cancellers are in 
 use and will disable them (since none of the available software ECs can go 
 into linear mode). The Digium HPEC software EC will detect CED on its own and 
 enter linear mode.

OK. Either way, though, the changes to echo cancellation are not affected by 
the faxdetect setting, right?

 2.) faxdetect=incoming will, upon detection of a CNG tone, send the call
 to the fax extension.
 
 If the CNG tone arrives from the network side of the DAHDI channel (the far 
 endpoint), then yes.

Great. This is the typical usage, I presume, directing fax machines to FFA, 
Hylafax, another fax machine, or hangup (if this isn't a fax line). 

Is there a time limit to when DAHDI listens for faxes (say the first 10 seconds 
of a call?), or might it detect one in the middle of a ten minute call?

 3.) faxdetect=outgoing will ??
 
 The same thing, but if the CNG tone is being sent towards the DAHDI channel 
 (from the near endpoint). This is rarely used.

[snip]

I figured that must be it. Presumedly you might use this to perform some 
activity on an outgoing fax prior to sending it, such as logging something, 
etc? Maybe send it to FFA, receive it, and e-mail it to another server that 
faxes it out on a local number to save toll calls, etc?

Thanks for the clarification, there's a lot of conflicting info out there.

Tom


--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
   http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [asterisk-users] Clarification on DAHDI Fax Detection

2011-01-03 Thread Steve Underwood

On 01/04/2011 04:22 AM, Kevin P. Fleming wrote:

On 01/03/2011 11:26 AM, Tom Rymes wrote:

Hi folks,

I was hoping that someone might be able to help clarify some confusion I
have on DAHDI Fax detection after spending some time searching. My
understanding is this:


I'll try.



1.) Echo cancellation is automatically disabled upon recognition of a
CNG tone, regardless of the faxdetect setting. This can only be disabled
at compile time.


No. CNG tone is never used to affect the state of an echo canceller. 
All G.168 compliant echo cancellers will respond to the CED tone 
(generated by the answering endpoint) and will reconfigure the echo 
canceller appropriately. Most modern ECs will *not* be disabled, but 
will enter a 'linear' mode where they can do some echo suppression but 
not complete cancellation. DAHDI will detect CED when most software 
echo cancellers are in use and will disable them (since none of the 
available software ECs can go into linear mode). The Digium HPEC 
software EC will detect CED on its own and enter linear mode.
That's not true. Modern echo cancellers normally disable completely. It 
is arguable whether they should disable completely for FAX, but they 
need to behave properly for all modems. For any duplex modem, disabling 
only the NLP is useless. They need to cancel end to end, so they don't 
get upset by a continuously adapting canceller, and so they can minimise 
the issues caused by the highly non-linear G.711 channel.



2.) faxdetect=incoming will, upon detection of a CNG tone, send the call
to the fax extension.


If the CNG tone arrives from the network side of the DAHDI channel 
(the far endpoint), then yes.



3.) faxdetect=outgoing will ??


The same thing, but if the CNG tone is being sent towards the DAHDI 
channel (from the near endpoint). This is rarely used.



Also, do Digium cards with HW Echo Cancellation detect the CNG tones in
hardware? If so, how does the faxdetect setting in DAHDI affect that
behavior?


No, none of the Digium HW ECs detect and report CNG tones via the DSP; 
CNG tone detection is still done on the host CPU. 'faxdetect' is not 
set in DAHDI, it's set in chan_dahdi.conf.



Steve


--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
  http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users