Merge "chan_sip.c: Update dialog fromtag after request with auth"

This commit is contained in:
Mark Michelson
2015-06-12 16:02:15 -05:00
committed by Gerrit Code Review

View File

@@ -9234,6 +9234,15 @@ static struct sip_pvt *__find_call(struct sip_request *req, struct ast_sockaddr
switch (found) {
case SIP_REQ_MATCH:
sip_pvt_lock(sip_pvt_ptr);
if (args.method != SIP_RESPONSE && args.authentication_present
&& strcmp(args.fromtag, sip_pvt_ptr->theirtag)) {
/* If we have a request that uses athentication and the fromtag is
* different from that in the original call dialog, update the
* fromtag in the saved call dialog */
ast_string_field_set(sip_pvt_ptr, theirtag, args.fromtag);
}
sip_pvt_unlock(sip_pvt_ptr);
ao2_iterator_destroy(iterator);
dialog_unref(fork_pvt, "unref fork_pvt");
free_via(via);