> Hi, due to the long thread about "improving the dialog module"
> (http://lists.sip-router.org/pipermail/sr-dev/2010-March/006378.html)
> I've decided to create a wiki page in Kamailio's web site in order to
> propose a new design for the module.
>
> This is just a proposal so comments and questions are really welcome :)

Two remarks:

(1) Under "dialog_out table", the following is stated:

"A response arrives to the proxy and TM modules invokes the Dialog module callback for the previously generated dialog.

*Such callback ignores the response if its Call-ID or From-tag doesn't match the entry in dialog_in table with same hash_id*[...]"

I do not think the module has to check whether the response's Call-ID and From-tag match the entry in the dialog_in table because a mismatch should never happen: When the tm callback to dlg_reply() was registered in dlg_onreq(), the hash ID of the very dialog created during dlg_onreq() was passed as argument to tm's registration function. And since the tm module makes sure that you cannot receive a response-based callback for a different transaction than the one the registration was carried out from, the dialog that the response-triggered callback will point to must be the right one.


(2) The "Spiral" example only shows one possible implementation with two dialog states created for an effectively single dialog. However, during the thread on the mailing list that started off the re-design proposal, we discussed another approach where a single dialog state is maintained for spirals only (denoted "dialog continuation" by myself).

Is there a reason why this approach isn't taken into consideration on the wiki page? If it's just a matter of time and effort, I'd be glad to add some text and another example in order to let people comment on this further.
Like I said before, I really consider having dialog callback users deal with module deficits the worse choice if a better option is available.


Cheers,

--Timo