[Devel] session termination

JF jfkavaka at gmail.com
Tue Jan 10 12:46:02 CET 2006


Hi all,

Maybe someone can have a look at this issue and provide some comments/guidance.
It's about building a module to store dialog information in order to
allow SER to terminate sessions.

Thanks in advance.

JF


On 12/6/05, JF <jfkavaka at gmail.com> wrote:
> Hi Bogdan,
>
> Thank you for that. I managed to add a t_cancel function to tm api,
> but now I realize that in tm/dlg.c the code to create EARLY dialogs is
> missing in new_dlg_uas() (only 2xx replies are handled, creating
> CONFIRMED dialogs). To clarify, I'm using new_dlg_uas() via tm api to
> create this dlg structure from within a TMCB_RESPONSE_IN callback
> within this new "dialog management" module.
>
> Now, according to RFC 3261, on section 13.2.2.1:
> "If a provisional response has a tag in the To field, and if the
> dialog ID of the response does not match an existing dialog, one is
> constructed"
>
> So first a check must be done for To tag presence, then try to find a
> dialog (by ID) in the dialog table the module maintains.
> So I would have to change new_dlg_uas() to create EARLY dialogs also
> and only call it if previous checks pass.
>
> Does this seem reasonable? Could you (or the other core developers)
> provide some guidance here? I have read somewhere in the list that
> there were plans to implement a similar module...
>
> JF
>
> On 12/6/05, Bogdan-Andrei Iancu <bogdan at voice-system.ro> wrote:
> > Hi,
> >
> > The TM API does not export any cancel function right now. Instead there
> > is a FIFO function for generating cancels: t_uac_cancel (see
> > modules/tm/tm.c +553) . maybe this will help you in adding an API function.
> >
> > regards,
> > bogdan
> >
> > JF wrote:
> >
> > >Hi,
> > >
> > >I've been playing around with TM callbacks and the TM API trying to
> > >build a module which mantains dialog info in order to permit session
> > >termination. For now I managed (in a very experimental way) to have a
> > >function exposed to the script which initiates (appropriately built
> > >with dialog info) BYE transactions to UAs and effectively terminates
> > >the call. Later this could be done via FIFO or unix socket command
> > >taking some kind of "dialog identifier" parameter...
> > >But sending BYEs to terminate calls only works if the dialog is
> > >already in the CONFIRMED state.
> > >For early dialogs, CANCELs should be used. But in the TM API there is
> > >no cancel function. Is there any other way of canceling a request on
> > >behalf of an UA from within an openser module? Or would the TM API
> > >need to be extended?
> > >
> > >Thanks in advance for any insights.
> > >
> > >JF
> > >
> > >_______________________________________________
> > >Devel mailing list
> > >Devel at openser.org
> > >http://openser.org/cgi-bin/mailman/listinfo/devel
> > >
> > >
> > >
> >
> >
>



More information about the Devel mailing list