On 21.10.10 18:07, Raphael Coeffic wrote:
On 18.10.10 11:11, Stefan Sayer wrote:
Антон Загорский wrote:
Hello Stefan.

Yes. You will need a new local tag and session id

I don't change local tag and session id and just call sendInvite again. And this work fine.
When will my algorithm fails?
potentially this does not work: if any proxy on the way or the UAS still has not timed out the dialog (identified by tag/callid), it will think that the new INVITE belings to the old dialog. Also, this may break your billing system if there is any.


AmSipDialog will automatically increase the cseq by one, and a new via-branch will be created anyway. Both cseq and via-branch are part of the transaction matching, which means that the second INVITE would not match the first one. In my opinion, it will not even match an existing dialog, as the dialog would rather have been killed/never created after the UAS sent an error back.

The only issue is the To-tag. the 'uac_auth' module implements a similar use case (see UACAuth.cpp:165 to 176).

Sorry, that's not correct! dlg.remote_tag does not even need a reset: in this case, it has never been set ;-) In fact, the remote_tag is only set for 2xx replies.

-Raphael.
_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to