Merged revisions 47707 via svnmerge from
[asterisk/asterisk.git] / main / channel.c
index ace4a41..a1fc401 100644 (file)
@@ -3658,7 +3658,10 @@ static enum ast_bridge_result ast_generic_bridge(struct ast_channel *c0, struct
                if (bridge_end.tv_sec) {
                        to = ast_tvdiff_ms(bridge_end, ast_tvnow());
                        if (to <= 0) {
-                               res = AST_BRIDGE_COMPLETE;
+                               if (config->timelimit)
+                                       res = AST_BRIDGE_RETRY;
+                               else
+                                       res = AST_BRIDGE_COMPLETE;
                                break;
                        }
                } else
@@ -3851,8 +3854,11 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha
                        now = ast_tvnow();
                        to = ast_tvdiff_ms(nexteventts, now);
                        if (to <= 0) {
-                               res = AST_BRIDGE_COMPLETE;
-                               break;
+                               if (!config->timelimit) {
+                                       res = AST_BRIDGE_COMPLETE;
+                                       break;
+                               }
+                               to = 0;
                        }
                }