#include "asterisk/test.h"
#include "asterisk/json.h"
#include "asterisk/bridge.h"
+#include "asterisk/bridge_after.h"
#include "asterisk/features_config.h"
#include "asterisk/rtp_engine.h"
#include "asterisk/format_cache.h"
return 0;
}
+static int async_goto_with_discard_bridge_after(struct ast_channel *chan, const char *context, const char *exten, int priority)
+{
+ ast_bridge_discard_after_goto(chan);
+ return ast_async_goto(chan, context, exten, priority);
+}
+
/*! \brief action_redirect: The redirect manager command */
static int action_redirect(struct mansession *s, const struct message *m)
{
if (ast_strlen_zero(name2)) {
/* Single channel redirect in progress. */
- res = ast_async_goto(chan, context, exten, pi);
+ res = async_goto_with_discard_bridge_after(chan, context, exten, pi);
if (!res) {
astman_send_ack(s, m, "Redirect successful");
} else {
}
ast_channel_unlock(chan2);
- res = ast_async_goto(chan, context, exten, pi);
+ res = async_goto_with_discard_bridge_after(chan, context, exten, pi);
if (!res) {
if (!ast_strlen_zero(context2)) {
- res = ast_async_goto(chan2, context2, exten2, pi2);
+ res = async_goto_with_discard_bridge_after(chan2, context2, exten2, pi2);
} else {
- res = ast_async_goto(chan2, context, exten, pi);
+ res = async_goto_with_discard_bridge_after(chan2, context, exten, pi);
}
if (!res) {
astman_send_ack(s, m, "Dual Redirect successful");