Index: main/manager.c =================================================================== --- main/manager.c (revision 56004) +++ main/manager.c (working copy) @@ -1970,7 +1970,8 @@ int ret = 0; ast_copy_string(action, astman_get_header(m, "Action"), sizeof(action)); - ast_log( LOG_DEBUG, "Manager received command '%s'\n", action ); + if (option_debug > 3) + ast_log( LOG_DEBUG, "Manager received command '%s'\n", action ); if (ast_strlen_zero(action)) { astman_send_error(s, m, "Missing action in request"); Index: main/rtp.c =================================================================== --- main/rtp.c (revision 56004) +++ main/rtp.c (working copy) @@ -3144,6 +3144,7 @@ enum ast_rtp_get_result audio_p1_res = AST_RTP_GET_FAILED, video_p1_res = AST_RTP_GET_FAILED; enum ast_bridge_result res = AST_BRIDGE_FAILED; int codec0 = 0, codec1 = 0; + struct ast_format_list fmt0, fmt1; void *pvt0 = NULL, *pvt1 = NULL; /* Lock channels */ @@ -3247,8 +3248,12 @@ return AST_BRIDGE_FAILED_NOWARN; } + fmt0 = ast_codec_pref_getsize(&p0->pref, codec0); + fmt1 = ast_codec_pref_getsize(&p1->pref, codec1); + /* If either side can only do a partial bridge, then don't try for a true native bridge */ - if (audio_p0_res == AST_RTP_TRY_PARTIAL || audio_p1_res == AST_RTP_TRY_PARTIAL) { + if ((audio_p0_res == AST_RTP_TRY_PARTIAL || audio_p1_res == AST_RTP_TRY_PARTIAL) && + (fmt0.cur_ms == fmt1.cur_ms)) { /* In order to do Packet2Packet bridging both sides must be in the same rawread/rawwrite */ if (c0->rawreadformat != c1->rawwriteformat || c1->rawreadformat != c0->rawwriteformat) { if (option_debug)