Restore chan_dahdi native bridging and PRI tromboned call elimination.

Created a native_dahdi bridging technology for use with the new bridging
API.

The new bridging technology is part of the chan_dahdi channel driver
because it is very specific to that driver.  Rather than include the new
code directly into chan_dahdi.c the new bridge technology is in its own
file and linked into chan_dahdi.so.  A large part of this change is the
mechanical process of moving declarations around so chan_dahdi.c can be
split up into more files later.

* Changed the bridging core to pass NULL frames into the channel
technologies instead of discarding them.  The channel technologies may
need the proding to determine if their configuration is still valid.

(closes issue ASTERISK-21886)
Reported by: Matt Jordan

Review: https://reviewboard.asterisk.org/r/2681/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2013-07-23 15:59:32 +00:00
parent bf22391b8d
commit 83a871ea35
7 changed files with 1829 additions and 1132 deletions

View File

@@ -623,6 +623,9 @@ static int softmix_bridge_write(struct ast_bridge *bridge, struct ast_bridge_cha
}
switch (frame->frametype) {
case AST_FRAME_NULL:
/* "Accept" the frame and discard it. */
break;
case AST_FRAME_DTMF_BEGIN:
case AST_FRAME_DTMF_END:
res = ast_bridge_queue_everyone_else(bridge, bridge_channel, frame);