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 <[EMAIL PROTECTED]> 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 > >[email protected] > >http://openser.org/cgi-bin/mailman/listinfo/devel > > > > > > > > _______________________________________________ Devel mailing list [email protected] http://openser.org/cgi-bin/mailman/listinfo/devel
