Hi Liuf, dlg_onreq() function is intended to be called/used only for initial requests (for the INVITEs creating a dialog).
So, this function is not intended to be used for BYE request - the BYE is handled via the dlg_onroute() function which is used for all sequential requests. If you find any issues is some parts of the code, please let me know and I will take care. Regards, Bogdan liuf wrote: > When I used fetch_dlg_value to get data in 200 reply route of BYE, it always > empty. > > I read some source about dialog module, I had discovered some possible > mistakes in function dlg_onreq() (file dlg_handles.c)(svn rev > 6658)(2010-03-08) > > When opensips receive 'BYE', current_dlg_pointer must be not null, and > current_dlg_pointer had been initiated, so this function will be return > before 't->dialog_ctx = (void*)current_dlg_pointer;' be exec. So in 200 > reply of BYE, can't get dialog pointer. > > I'm not sure this problem really exits? Would you please confirm it? > > function dlg_onreq() (svn rev 6658 2010-03-08) > ============================================== > void dlg_onreq(struct cell* t, int type, struct tmcb_params *param) > { > /* is the dialog already created? */ > if (current_dlg_pointer!=NULL) { > /* new, un-initialized dialog ? */ > if ( current_dlg_pointer->flags & DLG_FLAG_ISINIT ) > return; > > /* dialog was previously created by create_dialog() > -> just do the last settings */ > run_create_callbacks( current_dlg_pointer, param->req); > > current_dlg_pointer->lifetime = get_dlg_timeout(param->req); > > if (param->req->flags&bye_on_timeout_flag) > current_dlg_pointer->flags |= DLG_FLAG_BYEONTIMEOUT; > > t->dialog_ctx = (void*)current_dlg_pointer; > > /* dialog is fully initialized */ > current_dlg_pointer->flags |= DLG_FLAG_ISINIT; > } else { > ...... > ======================================================== > -- Bogdan-Andrei Iancu www.voice-system.ro _______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users