[OpenSIPS-Devel] call_control, dialog and BYE messages patch

Dan Pascu dan at ag-projects.com
Tue Mar 31 11:32:16 CEST 2009


On Tuesday 31 March 2009, Bogdan-Andrei Iancu wrote:
> Hi Mauro,
>
> I think a better approach is to use the DLGCB_LOADED callback type.
> This is called when a dialog is restored from DB (at startup) and it is
> called per dialog. So the "callcontrol" module could register such
> callback and use it to register further whatever other callbacks are
> needed.
>
> Maybe Dan can help with this as he has a better inside view on the
> module.

Indeed. However the issue was (I'm not sure if it's still valid) that one 
could not store particular information alongside the dialog in the 
database. As a consequence, I do not know at the time the dialogs are 
loaded from the database, to which of them I need to attach callbacks.

>
> Regards,
> Bogdan
>
> Mauro Davi' wrote:
> > Hi All,
> >
> > using the callcontrol module I see that if the opensips server goes
> > down, on the next start the BYE message aren’t sent to the call
> > control module (i.e. the stop message).
> >
> > Attached there is the dialog module patch.
> >
> > I modified the |register_dlgcb (dialog, type, cb, param,
> > free_param_cb)| function in this way:
> >
> > If the dialog parameter is null and the type isn’t equal to
> > DIALOG_CREATED, the callback function is registered to all the active
> > dialogs.
> >
> > So in the call control module, in the mod_init function I simply
> > added this new lines:
> >
> > if (dlg_api.register_dlgcb(NULL, DLGCB_RESPONSE_FWDED,
> > __dialog_replies, NULL, NULL) != 0) {
> >
> > LM_CRIT("cannot register callback for dialog confirmation\n");
> >
> > return -1;
> >
> > }
> >
> > if (dlg_api.register_dlgcb(NULL, DLGCB_TERMINATED | DLGCB_FAILED |
> > DLGCB_EXPIRED | DLGCB_DESTROY, __dialog_ended, (void*)CCActive, NULL)
> > != 0) {
> >
> > LM_CRIT("cannot register callback for dialog termination\n");
> >
> > return -1;
> >
> > }
> >
> > Now the BYE messages are sent to the call control module (stop
> > messages) also if the opensips server is previously killed.
> >
> > I don’t know if this is the best solution, but it is a solution J
> >
> > Regards,
> >
> > MD
> >
> > ---------------------------------------------------------------------
> >---
> >
> > _______________________________________________
> > Devel mailing list
> > Devel at lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/devel



-- 
Dan



More information about the Devel mailing list