Thanks for explanation. As a normal user behaviour, he will cancel the call when he noted that he has dialed a wrong number. Then he will make another call for his desired destination immediately. As you said, UA1 needs to wait until the message cycle complete. However, user have no idea when the message cycle will complete. For a long distance call, the time needed for completing the cycle will be much longer. Do you mean it can't be prevented in the voip/openser environment?
such situation is hard to prevent from proxy side. In my opinion, the UA1 does not behave correctly. After UA1 sends the CANCEL, it has to way for 200OK of CANCEL and 487 for INVITE and then send the ACK for INVITE's reply. Only after all these messages , it can close the dialog to UA2 and not the one to UA3.
Basically, the UA1 matches the wrong dialog for BYE (the From tag in BYE (UA2) should be different than the tag of UA3).
Cheers, Daniel
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users