mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
Fix a bug where we would native bridge when we did not want to.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@187108 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1186,6 +1186,16 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as
|
|||||||
goto done;
|
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 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)))) {
|
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;
|
res = AST_BRIDGE_FAILED_NOWARN;
|
||||||
|
Reference in New Issue
Block a user