提交 f095ef06 authored 作者: Michael Jerris's avatar Michael Jerris

try to avoid internal routing loops.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8103 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 9227ed3a
......@@ -934,6 +934,20 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_session_transfer(switch_core_session_
switch_core_session_t *other_session;
switch_channel_t *other_channel = NULL;
const char *uuid = NULL;
const char *max_forwards;
const char *forwardvar = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE);
int forwardval = 70;
if (!switch_strlen_zero(forwardvar)) {
forwardval = atoi(forwardvar) - 1;
}
if (forwardval <= 0) {
switch_channel_hangup(channel, SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR);
return SWITCH_STATUS_FALSE;
}
max_forwards = switch_core_session_sprintf(session, "%d", forwardval);
switch_channel_set_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE, max_forwards);
switch_core_session_reset(session, SWITCH_TRUE);
switch_channel_clear_flag(channel, CF_ORIGINATING);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论