diff --git a/src/modules/dialog/dialog.c b/src/modules/dialog/dialog.c index ce69fc94ca0..497176a7607 100644 --- a/src/modules/dialog/dialog.c +++ b/src/modules/dialog/dialog.c @@ -515,8 +515,8 @@ static int mod_init(void) return -1; /* param checkings */ - if (dlg_flag>MAX_FLAG) { - LM_ERR("invalid dlg flag %d!!\n",dlg_flag); + if (dlg_flag!=-1 && dlg_flag>MAX_FLAG) { + LM_ERR("invalid dlg flag %d!!\n", dlg_flag); return -1; } diff --git a/src/modules/dialog/dlg_handlers.c b/src/modules/dialog/dlg_handlers.c index 96406bde356..c80ca7d59f6 100644 --- a/src/modules/dialog/dlg_handlers.c +++ b/src/modules/dialog/dlg_handlers.c @@ -761,8 +761,10 @@ void dlg_onreq(struct cell* t, int type, struct tmcb_params *param) } } if (dlg==NULL) { - if((req->flags&dlg_flag_mask)!=dlg_flag_mask) + if((dlg_flag_mask==0) || (req->flags&dlg_flag_mask)!=dlg_flag_mask) { + LM_DBG("flag not set for creating a new dialog\n"); return; + } LM_DBG("dialog creation on config flag\n"); dlg_new_dialog(req, t, 1); dlg = dlg_get_ctx_dialog();