Fwd: internal transfer decreases Max-Forward channel counter
Hi, issue description: inbound call arrives with Max-Forwards set to 9 (or some low value), after the 9th internal transfer (it executes the transfer command, but the call doesnt leave the freeswitch instance), the call is dropped. I am using a few transfers to "route the call", and then another few to "put the call on hold and play Music on Hold", eventually I need to execute more than 9. should the switch_ivr_session_transfer function (./src/switch_ivr.c:1716 - v1.2) always decrease the SWITCH_MAX_FORWARDS_VARIABLE channel variable ? is there a way to disable this ? Thanks Rafael
Yes it should always decrease the max_forwards, otherwise it wouldn't provide useful loop detection. This is why the rfc recommends 70 as the default value. 8.1.1.6 Max-Forwards The Max-Forwards header field serves to limit the number of hops a request can transit on the way to its destination. It consists of an integer that is decremented by one at each hop. If the Max-Forwards value reaches 0 before the request reaches its destination, it will be rejected with a 483(Too Many Hops) error response. A UAC MUST insert a Max-Forwards header field into each request it originates with a value that SHOULD be 70. This number was chosen to be sufficiently large to guarantee that a request would not be dropped in any SIP network when there were no loops, but not so large as to consume proxy resources when a loop does occur. Lower values should be used with caution and only in networks where topologies are known by the UA. On Apr 28, 2014, at 5:13 PM, Rafael Kaihatu <rafael.kaihatu@8x8.com> wrote:
Hi,
issue description: inbound call arrives with Max-Forwards set to 9 (or some low value), after the 9th internal transfer (it executes the transfer command, but the call doesnt leave the freeswitch instance), the call is dropped.
I am using a few transfers to "route the call", and then another few to "put the call on hold and play Music on Hold", eventually I need to execute more than 9.
should the switch_ivr_session_transfer function (./src/switch_ivr.c:1716 - v1.2) always decrease the SWITCH_MAX_FORWARDS_VARIABLE channel variable ? is there a way to disable this ?
Thanks Rafael
participants (2)
-
Michael Jerris
-
Rafael Kaihatu