[Freeswitch-svn] [commit] r8103 - freeswitch/trunk/src
Freeswitch SVN
mikej at freeswitch.org
Mon Apr 14 11:55:37 EDT 2008
Author: mikej
Date: Mon Apr 14 11:55:37 2008
New Revision: 8103
Modified:
freeswitch/trunk/src/switch_ivr.c
Log:
try to avoid internal routing loops.
Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c (original)
+++ freeswitch/trunk/src/switch_ivr.c Mon Apr 14 11:55:37 2008
@@ -934,6 +934,20 @@
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);
More information about the Freeswitch-svn
mailing list