diff options
author | Matthew Nicholson <mnicholson@digium.com> | 2010-08-19 20:02:52 +0000 |
---|---|---|
committer | Matthew Nicholson <mnicholson@digium.com> | 2010-08-19 20:02:52 +0000 |
commit | a49703a77d2d8ca87353e77c39203b236f5c44a1 (patch) | |
tree | 4aec2ab2bf8503db18203648401b3fdc2f47aebc /channels | |
parent | 757ad05187dd996c47c47b556f7753e74ea1c0d0 (diff) |
Merged revisions 282860 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r282860 | mnicholson | 2010-08-19 15:01:11 -0500 (Thu, 19 Aug 2010) | 30 lines
Merged revisions 282859 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r282859 | mnicholson | 2010-08-19 14:44:00 -0500 (Thu, 19 Aug 2010) | 23 lines
Merged revisions 277944 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r277944 | pabelanger | 2010-07-19 15:56:07 -0500 (Mon, 19 Jul 2010) | 16 lines
Regression with T.38 negotiation
Prior to 1.4.26.3 T.38 negotiation worked properly, in the case
of the reporter.
(issue #16852)
Reported by: cfc
(closes issue #16705)
Reported by: mpiazzatnetbug
Patches:
issue16705_2.diff uploaded by ebroad (license 878)
Tested by: vrban, ebroad, c0rnoTa, samdell3
Review: https://reviewboard.asterisk.org/r/754/
........
................
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@282861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 7d96267be..cbddd0832 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -8540,7 +8540,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action ast_set_write_format(p->owner, p->owner->writeformat); } - if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) && !ast_sockaddr_isnull(sa) && (!sendonly || sendonly == -1)) { + if (ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD) && (!ast_sockaddr_isnull(sa) || !ast_sockaddr_isnull(vsa) || !ast_sockaddr_isnull(tsa) || !ast_sockaddr_isnull(isa)) && (!sendonly || sendonly == -1)) { ast_queue_control(p->owner, AST_CONTROL_UNHOLD); /* Activate a re-invite */ ast_queue_frame(p->owner, &ast_null_frame); @@ -8556,7 +8556,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action if (sip_cfg.notifyhold) sip_peer_hold(p, FALSE); ast_clear_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD); /* Clear both flags */ - } else if (ast_sockaddr_isnull(sa) || (sendonly && sendonly != -1)) { + } else if ((ast_sockaddr_isnull(sa) && ast_sockaddr_isnull(vsa) && ast_sockaddr_isnull(tsa) && ast_sockaddr_isnull(isa)) || (sendonly && sendonly != -1)) { int already_on_hold = ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD); ast_queue_control_data(p->owner, AST_CONTROL_HOLD, S_OR(p->mohsuggest, NULL), |