Maybe this is irrelevant, but I'd like to add another scenario (not sure if you have contemplated this one @henningw): replicating dialogs exclusively via DMQ (with no database at all).
* Proxy1 creates a dialog (let's call it **dialogA**) and replicates it via DMQ to Proxy2. * Proxy1 is restarted/crashes/something. * Proxy1 comes back up before **dialogA** has expired. * Proxy1 receives all dialogs from Proxy2 via DMQ (including **dialogA**).
What would happen when expiration for the **dialogA** is due?
1- Would Proxy1 send the BYE and then "tell" via DMQ to Proxy2 to remove it from its memory? 2- What if Proxy1 never came back up in time, would Proxy2 know that **it** should take care of sending out a BYE for that expired dialog? 3- Would both Proxy1 and Proxy2 send a BYE and then tell the other proxy via DMQ to remove it? (this would be a race-condition I believe, and one would end up logging a *non-existent dialog* on syslog?)
I know the subject of this issue clearly talks about scenarios **with** a database, so if you believe this database-less scenario shouldn't be discussed here let me know and I can create a new issue.