aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-11 20:07:45 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-11 20:07:45 +0000
commit58f2c51d0993f843e9be781fcf0af1aec8a88429 (patch)
treeb7bdee56efef97a94a800aebdae527cd77783f45
parent6fa83d8fbd919a1b59e9af7f9612a6e421a43f4f (diff)
Fix native bridge not to intercept DTMF if it's needed
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5009 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xchannels/chan_iax2.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 4375507fb..b5d44aee1 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -2712,11 +2712,13 @@ static int iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags
unsigned short callno0 = PTR_TO_CALLNO(c0->pvt->pvt);
unsigned short callno1 = PTR_TO_CALLNO(c1->pvt->pvt);
struct timeval waittimer = {0, 0}, tv;
-
+
lock_both(callno0, callno1);
/* Put them in native bridge mode */
- iaxs[callno0]->bridgecallno = callno1;
- iaxs[callno1]->bridgecallno = callno0;
+ if (!flags & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1)) {
+ iaxs[callno0]->bridgecallno = callno1;
+ iaxs[callno1]->bridgecallno = callno0;
+ }
unlock_both(callno0, callno1);
/* If not, try to bridge until we can execute a transfer, if we can */