As reported in:
When two sofia-sip stacks meet each other, one as the UA and the other as a proxy, they happily accumulate outdated Contact headers without end.
Marking down a suspicious place where accumulation of headers may occur:
nua/nua_stack.c, line 629: nua_stack_authenticate(nua, nh, event, tags);
The client request can be restarted with event tags added directly to cr_msg in the client request structure. This is probably not the case where the proxy sends us contact headers, though.
Could be simple, though, in outbound_register_response:
ob->ob_rcontact = sip_contact_dup(ob->ob_home, request->sip_contact);
This is a copy of all contact headers present in the request. It then goes on to populate any REGISTER request in the same dialog usage.
A fix is offered for review at http://gitorious.org/sofia-sip/sofia-sip/merge_requests/4
Proposed fix merged to git.
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).