Fix pvt_sip for inbound call to use peer's allowtransfer setting
authorMichael L. Young <elgueromexicano@gmail.com>
Fri, 25 May 2012 02:31:58 +0000 (02:31 +0000)
committerMichael L. Young <elgueromexicano@gmail.com>
Fri, 25 May 2012 02:31:58 +0000 (02:31 +0000)
The pvt_sip allowtransfer was not being set to that of the peer's setting.
Therefore, the global allowtransfer setting was being used instead which would
lead to calls not being transfered if the global setting was set to 'no' despite
the setting on the peer being 'yes' and vice versa, calls would be allowed to
transfer even if the peer's setting was 'no' but the global setting was 'yes'.

(Closes issue ASTERISK-19856)
Reported by: Jacek
Tested by: Michael L. Young, Jacek
Patches:
issue-asterisk-19856-branch10-v3.diff uploaded by
                                                 Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/1923/
........

Merged revisions 367730 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 367731 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@367732 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 5bf1a9f..d090854 100644 (file)
@@ -16581,6 +16581,8 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
        else
                p->timer_b = 64 * p->timer_t1;
 
+       p->allowtransfer = peer->allowtransfer;
+
        if (ast_test_flag(&peer->flags[0], SIP_INSECURE_INVITE)) {
                /* Pretend there is no required authentication */
                ast_string_field_set(p, peersecret, NULL);