[asterisk-dev] [Code Review] Properly route responses according to the Via headers in the request
Olle E. Johansson
oej at edvina.net
Thu Dec 23 12:38:51 UTC 2010
23 dec 2010 kl. 10.01 skrev Klaus Darilion:
> Am 23.12.2010 09:06, schrieb Olle E. Johansson:
>> 22 dec 2010 kl. 20.51 skrev Matthew Nicholson:
>>> On Wed, 2010-12-22 at 20:35 +0100, Alex Hermann wrote:
>>>> On Wednesday 22 December 2010, Matthew Nicholson wrote:
>>>>> This patch makes asterisk respect the Via headers in a request when
>>>>> responding to the request. Without this patch, the request is always
>>>>> routed back to the address the initial request was received from (unless
>>>>> nat=yes). This can cause problems if the initial request comes through
>>>>> a proxy and additional requests (such as INFO dtmf tones) come from a
>>>>> different proxy.
>>>> New version looks much better. One question remains though. You set the port
>>>> to the port in the Via, but if rport is present, it should be set to the
>>>> port from which the request originated. I tried to find other code in
>>>> chan_sip which overrides the port in case of rport, but couldn't find it.
>>>> Maybe rport handling should be included in your process_via function.
>>> This can probably be supported simply by not modifying the port when
>>> p->recv is copied. I'll update the patch.
>> If we change anything in response handling we should fix it right and just send
>> to the sender's IP address and port. Always.
> That wouldn't be standard conform if rport parameter is missing, but it should work.
> I wonder how this work with TCP.
The same section says that for TCP you respond on the very same socket.
More information about the asterisk-dev