Karthik, You desk phone seems to be broken. It should handle REFER or re-INVITE before ACK. There is no reason in any RFC why UA should generate an error message for the next INVITE or REFER request, if it is received before ACK from the previous transaction. The main purpose of ACK is to stop 200 OK re-transmission. It is very often re-ordered by the network or proxies with request that starts the next transaction. If you are going to generate error responses to re-INVITE received before ACK, you are going to have serious interop problems, since a lot of SIP service providers do exactly this (send a re-INVITE at the same time as ACK) when trying to limit call to a single codec. Also, you cannot rely on Retry-After header in error response, since it is not always supported. In a lot of cases Retry-After is ignored and call simply ends. Error response 491 is wrong here as well, since it is intended for two UA sending INVITE to each other at the same time, not same UA sending INVITE twice. It will still work for re-INVITE (not REFER) but it is not the intended usage.
Regards, _____________ Roman Shpount _______________________________________________ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors