diff options
author | Matthew Nicholson <mnicholson@digium.com> | 2010-09-30 19:54:59 +0000 |
---|---|---|
committer | Matthew Nicholson <mnicholson@digium.com> | 2010-09-30 19:54:59 +0000 |
commit | 72fbcfd95d3f10f3ce78282760856e7b3ce7f48d (patch) | |
tree | 19ad97d7c5449520b6f55109244f8f3cab57bdea | |
parent | 8193e24e1a6fc27dc97c7ce31bc6fe4f5532d06a (diff) |
Merged revisions 289554 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
................
r289554 | mnicholson | 2010-09-30 14:53:10 -0500 (Thu, 30 Sep 2010) | 11 lines
Merged revisions 289553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
........
r289553 | mnicholson | 2010-09-30 14:51:27 -0500 (Thu, 30 Sep 2010) | 4 lines
Properly handle channel allocation failures duing invites with replaces.
ABE-2588
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@289555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_sip.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 650a01df7..38f9b3342 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -21396,7 +21396,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int /* Initialize our tag */ make_our_tag(p->tag, sizeof(p->tag)); - /* First invitation - create the channel */ + /* First invitation - create the channel. Allocation + * failures are handled below. */ c = sip_new(p, AST_STATE_DOWN, S_OR(p->peername, NULL), NULL); if (cc_recall_core_id != -1) { ast_setup_cc_recall_datastore(c, cc_recall_core_id); @@ -21573,7 +21574,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int if (!req->ignore && p) p->lastinvite = seqno; - if (replace_id) { /* Attended transfer or call pickup - we're the target */ + if (c && replace_id) { /* Attended transfer or call pickup - we're the target */ if (!ast_strlen_zero(pickup.exten)) { append_history(p, "Xfer", "INVITE/Replace received"); |