From 88a5f18decd7494249eff91267d45bb3d19eba04 Mon Sep 17 00:00:00 2001 From: "Michael L. Young" <elgueromexicano@gmail.com> Date: Wed, 21 Aug 2013 02:11:26 +0000 Subject: [PATCH] Fix Not Storing Current Incoming Recv Address In 1.8, r384779 introduced a regression by retrieving an old dialog and keeping the old recv address since recv was already set. This has caused a problem when a proxy is involved since responses to incoming requests from the proxy server, after an outbound call is established, are never sent to the correct recv address. In 11, r382322 introduced this regression. The fix is to revert that change and always store the recv address on incoming requests. Thank you Walter Doekes for helping to point out this error and Mark Michelson for your input/review of the fix. (closes issue ASTERISK-22071) Reported by: Alex Zarubin Tested by: Alex Zarubin, Karsten Wemheuer Patches: asterisk-22071-store-recvd-address.diff by Michael L. Young (license 5026) ........ Merged revisions 397204 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@397205 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3864639d20..88915b0d11 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -28351,9 +28351,7 @@ static int handle_request_do(struct sip_request *req, struct ast_sockaddr *addr) copy_socket_data(&p->socket, &req->socket); - if (ast_sockaddr_isnull(&p->recv)) { /* This may already be set before getting here */ - ast_sockaddr_copy(&p->recv, addr); - } + ast_sockaddr_copy(&p->recv, addr); /* if we have an owner, then this request has been authenticated */ if (p->owner) { -- GitLab