Richard Brady writes:
i didn't find in rfc5626 a requirement that registrar should remove
430
flow contact,
Closest I can find is:
"EP1 no longer has a flow to Bob, so it responds with a 430 (Flow Failed) response. The proxy removes the stale registration and tries the next binding for the same instance."
it is thus the job of the proxy, not the registrar, to remove the currently unusable registration. the proxy could do it either by sending un-REGISTER request to registrar or via an mi/rpc command. the former is possible now. the latter requires that instance and reg_id params are added to ul_rm_contact mi command.
When we were discussing implementing outbound someone (I think it was Inaki) did mention that some parts of the outbound spec were unclear on precisely how to implement things. This could well be one of those parts - no mention except in an example, and even there the description "feels" a bit wrong.
I just don't like the idea that an edge proxy should need to be a UAC and generate an un-REGISTER. Adding an MI/RPC command would be implementation specific. Making the registrar capable of removing a contact in response to receiving a 430 seems far more logical and is going to be no harder than adding an MI/RPC command to do it.
I will add a new exported function to registrar, probably called unregister_contact(), at some point in the future. I don't think it is a big job but it almost certainly won't happen before the freeze - it may be a couple of weeks before I have time to come back to it.
Regards,
Peter