[Serusers] ACK for non-2XX not record-routed
Greger V. Teigre
greger at teigre.com
Tue Mar 20 09:52:45 CET 2007
I'm not sure that I understand what you mean is wrong. It would be
easier to follow if you include the ACKs. And non-2xxs, what is exactly
the exchange? A full SIP trace would help...
g-)
Emmanuel Hislen wrote:
> Hi,
>
>
> I've been using SER (0.9.6) as a Proxy doing Loose Routing between 2
> endpoints.
>
>
> If I place a call I can see how the ACK for the 2XX response to the
> INVITE is properly handled (Route header removed, Record-Route inserted).
>
> Now with the call still up, I do a re-INVITE which is rejected with a
> 415. The re-INVITE request sent by UAC contained a Route header, as it
> was an in-dialog request in a record-routed dialog. Now as per RFC3261
> section 17.1.1.3:
>
> If the INVITE request whose response is being acknowledged had Route
> header fields, those header fields MUST appear in the ACK. This is
> to ensure that the ACK can be routed properly through any downstream
> stateless proxies.
>
>
> My UAC complied with the above, but SER seemed to choke on this:
>
> whereas the ACK for 2XX was successfully routed by SER in the original
> INVITE, the ACK for non-2XX (looking exactly the same: same Request
> URI, same IP destination, same Route header, ... different Via branch
> of course) is not handled properly: yes the ACK reaches UAS but it
> still has the Route header in it, and no Record-Route was added. And
> I'm guessing that if there had been another proxy in the Route Set on
> the way to the UAS it would have been bypassed.
>
>
> SER traces for ACK-2XX:
>
>> 0(13574) ===> Loose Routing logic...
>> 0(13574) parse_headers: flags=-1
>> 0(13574) DEBUG: t_newtran: msg id=89 , global msg id=88 , T on
>> entrance=0xffffffff
>> 0(13574) parse_headers: flags=-1
>> 0(13574) parse_headers: flags=60
>> 0(13574) t_lookup_request: start searching: hash=41794, isACK=1
>> 0(13574) parse_headers: flags=28
>> 0(13574) DEBUG: t_lookup_request: e2e proxy ACK found
>> 0(13574) parse_headers: flags=4
>> 0(13574) DEBUG: totag for e2e ACK found: 0
>> 0(13574) SER: forwarding ACK statelessly
>
>
> SER traces for ACK-non-2XX:
>
>> 0(13574) ===> Loose Routing logic...
>> 0(13574) parse_headers: flags=-1
>> 0(13574) DEBUG: t_newtran: msg id=92 , global msg id=91 , T on
>> entrance=0xffffffff
>> 0(13574) parse_headers: flags=-1
>> 0(13574) parse_headers: flags=60
>> 0(13574) t_lookup_request: start searching: hash=41807, isACK=1
>> 0(13574) DEBUG: RFC3261 transaction matched, tid=007d7195499e33a1
>> 0(13574) DEBUG: t_lookup_request: transaction found (T=0xb616ae48)
>> 0(13574) DEBUG: cleanup_uac_timers: RETR/FR timers reset
>> 0(13574) DEBUG: add_to_tail_of_timer[2]: 0xb616ae90
>> 0(13574) DEBUG:destroy_avp_list: destroying list (nil)
>> 0(13574) receive_msg: cleaning up
>
>
> This doesn't seem right, am I missing something here?
>
>
>
> Thanks,
>
> Emmanuel.
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
More information about the sr-users
mailing list