diff options
author | zuul <zuul@gerrit.asterisk.org> | 2016-09-13 09:59:13 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2016-09-13 09:59:13 -0500 |
commit | efba4a7b9cc19ca10b11057da8dd4793355088a3 (patch) | |
tree | 29141df73d7b5433f8135b9fbf85dbba81b6008a | |
parent | 3d7cbaa6755ee53860ab76f8ff195c878d809186 (diff) | |
parent | da8ba990d13c0dd396b625cc98a9e00ca85d986a (diff) |
Merge "chan_sip: Allow target refresh (Contact update) on re-INVITE." into 13
-rw-r--r-- | channels/chan_sip.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b03a3e34d..9c9a407ad 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -26057,12 +26057,15 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str copy_request(&p->initreq, req); /* Save this INVITE as the transaction basis */ if (sipdebug) ast_debug(1, "Initializing initreq for method %s - callid %s\n", sip_methods[req->method].text, p->callid); + + /* Parse new contact both for existing (re-invite) and new calls. */ + parse_ok_contact(p, req); + if (!p->owner) { /* Not a re-invite */ if (req->debug) ast_verbose("Using INVITE request as basis request - %s\n", p->callid); if (newcall) append_history(p, "Invite", "New call: %s", p->callid); - parse_ok_contact(p, req); } else { /* Re-invite on existing call */ ast_clear_flag(&p->flags[0], SIP_OUTGOING); /* This is now an inbound dialog */ if (get_rpid(p, req)) { |