diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-08 18:12:28 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-08 18:12:28 +0000 |
commit | a81a0d84a722137af8a85ad10596f7ca8f30ee85 (patch) | |
tree | c66bf2a97fd52a9405210928cf43435a73247ed8 /main/rtp_engine.c | |
parent | bfa0727781aa618d9efaf5f8ec0f8c7b546d7ac0 (diff) |
Fix a bug where we would native bridge when we did not want to.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@187108 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/rtp_engine.c')
-rw-r--r-- | main/rtp_engine.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/main/rtp_engine.c b/main/rtp_engine.c index a977c5a31..3447d8301 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -1186,6 +1186,16 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as goto done; } + /* If we need to get DTMF see if we can do it outside of the RTP stream itself */ + if ((flags & AST_BRIDGE_DTMF_CHANNEL_0) && instance0->properties[AST_RTP_PROPERTY_DTMF]) { + res = AST_BRIDGE_FAILED_NOWARN; + goto done; + } + if ((flags & AST_BRIDGE_DTMF_CHANNEL_1) && instance1->properties[AST_RTP_PROPERTY_DTMF]) { + res = AST_BRIDGE_FAILED_NOWARN; + goto done; + } + /* If we have gotten to a local bridge make sure that both sides have the same local bridge callback and that they are DTMF compatible */ if ((audio_glue0_res == AST_RTP_GLUE_RESULT_LOCAL || audio_glue1_res == AST_RTP_GLUE_RESULT_LOCAL) && ((instance0->engine->local_bridge != instance1->engine->local_bridge) || (instance0->engine->dtmf_compatible && !instance0->engine->dtmf_compatible(c0, instance0, c1, instance1)))) { res = AST_BRIDGE_FAILED_NOWARN; |