[sr-dev] dialog module with DB Backend

Daniel-Constantin Mierla miconda at gmail.com
Mon Feb 24 20:58:58 CET 2014


Hello,

I pushed some patches to the master branch in order to remove the dialog 
from its associated profiles when it gets in terminated state. I 
encountered such issue (not that) recently, but I haven't gotten the 
time to get to it before.

Then, the second patch is to not add dialogs in profiles when loading 
from database and the state is terminated (5).

Here are the links to the patches:

- 
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=edf61acb57ed5e8ee0ca9ec1f796e43ce993be48
- 
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9b88eb7ee2d243882383a44f601baa21fd679cd5

Should be straightforward to cherry pick to 4.1 (even 4.0 I expect). If 
you test and all goes fine, I will backport -- here I had no time for 
real testing.

I plan also to not add the dialogs in memory for state terminated, but 
destroy them at db load time. But this needs a bit of a review, to be 
sure that all necessary callbacks are executed.

On the other hand, if the dialogs are not removed from db, might be an 
issue with the database driver (cassandra in this case, which is rather 
new module). Do you get any syslog errors from kamailio or database 
server? I expect that people would have reported such issue for other 
database engines so far. Still it might be an issue, just that was not 
noticed...

Cheers,
Daniel

On 24/02/14 11:19, jay binks wrote:
> So poking round the code for the dialog module....
> Im not sure what im missing here.
>
>
> get_profile_size dosnt care bout the state of a dialog... so you get 
> ALL dialogs that are in the hash table.
> ( which is interesting if you want to use dialog module to enforce 
> channel limits etc )
>
> So you go... OK...  kamailio only expects to have "ACTIVE" dialogs in 
> the hash table... kewl..
> lets assume that to be the case.
>
> but then in dlg_db_handler.c , load_dialog_info_from_db loads all 
> dialogs from the DB, regardless of state.
> so all dialogs in the DB ( ones that didnt get deleted yet... but were 
> in state 5 ) get re-created in kamailio
> upon startup.
>
> what this means is...
> ( assume starting with empty DB )
>
> I start kamailio, make some calls... they get synced to the DB.
> I end the calls,  kamailio removes from dialogs module internal hash, 
> but the sync to DB hasnt happened yet.
>
> I kill kamailio ( or crash .. whatever )....  restart kamailio and it 
> re-loads all those dialogs
> and thinks they are still active calls.
>
> Im SURE Im missing something here, because it seems to be VERY common 
> to use dialogs for channel limiting..
> maybe not so much using cassandra db behind the scenes, but as of yet 
> ... Im still yet to find anything that makes me thing this is 
> db_cassandra mis-behaving.
>
> if im wrong, please point me in the right direction.
>
> Jay
>
>
>
>
> On 24 February 2014 17:54, jay binks <jaybinks at gmail.com 
> <mailto:jaybinks at gmail.com>> wrote:
>
>     Am I REALLY the only person who has ever run into this !?
>
>
>     On 19 February 2014 14:08, jay binks <jaybinks at gmail.com
>     <mailto:jaybinks at gmail.com>> wrote:
>
>         Hi all, im using the dialog module with db_cassandra backend..
>         I dont believe this issue is related to cassandra, but its
>         worth mentioning anyways.
>
>         so... I run kamailio, make calls, see dialogs in the DB..
>         and I Can use "kamctl mi dlg_list" and see that dialogs go
>         away when I hangup a call..
>
>         When I query the DB Backend, I still see the queries, but they
>         have a state of 5.
>         I Initially thought this was a bug, but it seems dialogs in
>         state 5 get cleaned up after a period.
>         so I moved on.
>
>         now , lets restart kamailio..
>         kamailio loads all dialogs on startup, after kamailio starts I
>         call "kamctl mi dlg_list" again, and it shows all my dialogs
>         from the DB.   they DO show as "State 5"
>         but for some reason, these dialogs appear to stick around for
>         a long time, and the bigger issue it causes me is that my
>         channel limiting ( using get_profile_size ) seems to consider
>         these dialogs ( in state 5 ) as being active calls.
>
>         Please someone point me in the right direction... :)
>
>         what am I doing wrong ?
>         ( or is this a bug somewhere )
>
>         Sincerely
>
>         Jay
>
>
>
>
>     -- 
>     Sincerely
>
>     Jay
>
>
>
>
> -- 
> Sincerely
>
> Jay
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140224/c4b6c5a1/attachment.html>


More information about the sr-dev mailing list