From 745f4edbd5dc768f1c66465eb1f57aaddbbcba31 Mon Sep 17 00:00:00 2001 From: Terry Wilson <twilson@digium.com> Date: Tue, 6 Jul 2010 22:15:27 +0000 Subject: [PATCH] Merged revisions 274280 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r274280 | twilson | 2010-07-06 17:08:20 -0500 (Tue, 06 Jul 2010) | 9 lines Add option to not do a call forward on 482 Loop Detected Asterisk has always set up a forwarded call when receiving a 482 Loop Detected. This prevents handling the call failure by just continuing on in the dialplan. Since this would be a change in behavior, the new option to disable this behavior is forwardloopdetected which defaults to 'yes'. Review: https://reviewboard.asterisk.org/r/764/ ........ (no option for trunk, just changing the behavior) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274284 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- UPGRADE.txt | 4 ++++ channels/chan_sip.c | 11 +---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/UPGRADE.txt b/UPGRADE.txt index c3139b9a52..ff8d3597a8 100644 --- a/UPGRADE.txt +++ b/UPGRADE.txt @@ -92,6 +92,10 @@ From 1.6.2 to 1.8: definition specifies those fields as float,double or similar they will now be logged with microsecond accuracy instead of a whole integer. +* chan_sip will no longer set up a local call forward when receiving a + 482 Loop Detected response. The dialplan will just continue from where it + left off. + From 1.6.1 to 1.6.2: * SIP no longer sends the 183 progress message for early media by diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3f923858a9..b439bf104b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -19132,16 +19132,7 @@ static void handle_response(struct sip_pvt *p, int resp, const char *rest, struc ast_queue_control(p->owner, AST_CONTROL_BUSY); } break; - case 482: /*! - \note SIP is incapable of performing a hairpin call, which - is yet another failure of not having a layer 2 (again, YAY - IETF for thinking ahead). So we treat this as a call - forward and hope we end up at the right place... */ - ast_debug(1, "Hairpin detected, setting up call forward for what it's worth\n"); - if (p->owner) - ast_string_field_build(p->owner, call_forward, - "Local/%s@%s", p->username, p->context); - /* Fall through */ + case 482: /* Loop Detected */ case 480: /* Temporarily Unavailable */ case 404: /* Not Found */ case 410: /* Gone */ -- GitLab