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
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd