Summary:ASTERISK-16180: [patch] DAHDI bridge can't fax pass through
Reporter:ddkprog (ddkprog)Labels:
Date Opened:2010-06-01 05:28:27Date Closed:2011-06-07 14:04:50
Versions:Frequency of
Environment:Attachments:( 0) chan_dahdi.c.faxpassthrough.diff
Description:iam realy suprised, why fax can't pass through inside DAHDI bridge
looking through chan_dahdi.c code
inside function dahdi_bridge
have a code
               f = ast_read(who);
               if (!f || (f->frametype == AST_FRAME_CONTROL)) {
                       *fo = f;
                       *rc = who;
                       res = AST_BRIDGE_COMPLETE;
                       goto return_from_bridge;
               if (f->frametype == AST_FRAME_DTMF) {
                       if ((who == c0) && p0->pulsedial) {
                               ast_write(c1, f);
                       } else if ((who == c1) && p1->pulsedial) {
                               ast_write(c0, f);
                       } else {
                               *fo = f;
                               *rc = who;
                               res = AST_BRIDGE_COMPLETE;
                               goto return_from_bridge;

               /* Swap who gets priority */
               priority = !priority;

i see that only the SIGNAL FRAMES can pass
Comments:By: ddkprog (ddkprog) 2010-06-01 05:31:32

the patch fixes this issue

By: Leif Madsen (lmadsen) 2010-06-02 10:51:39

Confirming this issue until another developer can confirm this is the correct approach. Thanks for the submission!

By: Leif Madsen (lmadsen) 2010-06-03 11:00:09

Can we get some clarification about which version of chan_dahdi you are using?

Some more information about the call along with with console logging and debug, plus the chan_dahdi.conf configuration will be required to move this forward.

By: ddkprog (ddkprog) 2010-06-05 00:54:23

version does not have a value
bug is present in all versions of chan_zap.c/chan_dahdi.c
this patch fixit version svn trunk chan_dadi.c
I can not provide debug and configuration because I have not access to equipment

but this patch is used for passing faxes in the channel dahdi in working with channel bank where chan_dahdi channel operates as a function of dahdi_bridge()
I think for the developer chan_dadhi this logic more than transparent
because frames T30 are not AST_FRAME_CONTROL/AST_FRAME_DTMF
so at least the AST_FRAME_AUDIO and AST_FRAME_VIDEO should be pass throught inside dahdi_bridge() function
the patch fixes this issue and frame T30 will pass throught inside DAHDI

By: Russell Bryant (russell) 2010-10-15 11:56:18

What doesn't make sense here is that if DAHDI bridging was really broken in this fundamental of a way, then we would have thousands of customers with systems that don't work at all.  I wouldn't expect any media frames to be passing through the dahdi_bridge() function.  If this funciton is running, it's a DAHDI native bridge.  A DAHDI native bridge bridges audio inside of DAHDI, it doesn't even make it up to Asterisk.

By: Russell Bryant (russell) 2010-11-03 13:58:18

Thank you for the bug report. However I am unable to reproduce this issue. We are now going to close this report - please feel free to reopen when you have more information at hand.