Juha Heinanen wrote: > Timo Reimann writes: > > > That will definitely break the single-dialog approach. However, one could > > work around this by introducing a counter to dialogs which is incremented > > for each re-seen, unconfirmed request and decremented when responses are > > forwarded (i.e., when the dialog module calls dlg_onreply()). There, the > > dialog's state wouldn't be modified unless the counter drops to zero. > > if you don't like two dialogs, why not just do not call the dialog > functions when request spirals to P1 the second time?
By "dialog functions", do you mean the dialog module-internal ones that manage dialogs or the dialog callback functions? In case of the former: My custom patch does exactly that: If a spiral is detected, skip calls to internal functions that would otherwise create a new dialog. That's how my notion of dialog continuation works but as Ovidiu showed, it breaks stuff in certain scenarios (which should be solved by using a counter just like I proposed). In case of the latter (and assuming that the former isn't done): From a dialog callback user's perspective, you cannot easily tell whether a call is spiraling or is a "real" new call without keeping additional state (e.g., "have I seen this call before?"). That's the main reason why I think multiple dialogs are troublesome. Cheers, --Timo _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
