[sr-dev] new dialog module design: tm trigger for dialog management
Iñaki Baz Castillo
ibc at aliax.net
Thu Mar 25 19:52:32 CET 2010
2010/3/25 Timo Reimann <timo.reimann at 1und1.de>:
>> But the complete dialog identifier is the union of a dialog_in entry
>> and a dialog_out entry. By itself, a dialog_in entry means "nothing".
>
> I agree with that. However, by attaching dialog callbacks to the
> dialog_in entry, you associate multiple dialog_outs resulting from
> concurrent 200 responses to the same dialog from a user's perspective.
> That's why I believe they need to be separated.
Good reason :)
> Don't get me wrong -- I still want to keep one dialog_out per confirmed
> response. However, I do not see them attached properly under the same
> dialog_in entry. Instead, there should be distinct dialog_ins per
> confirmed response, and that includes concurrent 200 responses.
ok
>> Then you couldn't set specific dflags to the secondly generated
>> dialog, neither manage it as any other "normal" dialog.
>> Imagine the UAC receives both 200 and sends the BYE for the first one.
>> Then there would exist an active dialog for which dialog module is not
>> storing its information properly. Do I miss something here?
>
> I think a callback to DLGCB_CONCURRENTLY_CONFIRMED should be treated
> similar to a callback to DLGCB_CREATED, i.e., it is not related to a
> prior dialog. So the earliest moment a user can set dflags on a
> concurrently confirmed dialog is when DLGCB_CONCURRENTLY_CONFIRMED is
> executed, analogous to a regularly created dialog and DLGCB_CREATED.
> After that, both call type's dflags should be usable in the same fashion.
Just to be sure I understand properly:
It should be posible to set a dialog flag even in early state (imagine
mediaproxy module setting a dialog flag to force MediaProxy usage, it
must also work if there is RTP during the 183 session progress).
Is it allowed in your proposal?
>> But I still need to understand the possible limitation in double-200
>> scenarios. Could you please draw an example of how the dialog table(s)
>> would look when such scenario occurs? :)
>
> ...please have a look at the wiki section covering an example scenario I
> just created
>
> http://www.kamailio.org/dokuwiki/doku.php/dialog-stateful:new-dialog-module-design#concurrently_confirmed_calls
>
> and add further comments here.
Just great :)
It simplifies a lot the design. Also the approach of two "dialog_in"
(when two confirmed dialogs) seems really reasonable.
But I don't like the usage of three tables (dialog, dialog_in and
dialog_out), so I've tryed to simplify it by just leaving dialog_in
and dialog_out tables with some modifications:
- dialog_in contains a new field "dialog_id".
- dialog_out doesn't contain "hash_id" field anymore. Instead it
contains "dialog_in".
Please let me know if it's ok or I miss something:
http://www.kamailio.org/dokuwiki/doku.php/dialog-stateful:new-dialog-module-design#concurrently_confirmed_calls_approach_2
Best regards.
--
Iñaki Baz Castillo
<ibc at aliax.net>
More information about the sr-dev
mailing list