Klaus Darilion wrote: >>>> Btw: how are dialogs in dialog module and transactions in tm module are >>>> exactly identified? For example a response with proper callid and >>>> fromtag >>>> but faked Via branch, will it be accepted by dialog module but >>>> ignored (drop >>>> or stateless forwarding) by tm? >>> >>> Good question. IMHO it should be discarded as TM and dialog level (and >>> not relayed stateless). >> >> The dialog module handles responses in the dlg_onreply() function which >> is called by the tm module when the TMCB_RESPONSE_PRE_OUT (named >> TMCB_RESPONSE_READY in 3.x) tm callback is triggered. > > If dialog module receives this callback - will it check fromtag/callid > or is the dialog already identified by the callback?
The latter is true: The dialog module does not need to check the dialog identifier (From-tag, To-Tag, Call-ID) because the dialog that the response is associated with will be given as one of the callback parameters. When the dlg_onreq() function initially established the dialog, it passed a pointer to the dialog data-structure (dlg_cell *) to the callback registration function for TMCB_RESPONSE_PRE_OUT. The whole effort of matching dialogs (including the dialog identifier) is only done in dlg_onroute() which is called for every loose_route'ed message, i.e., in-dialog request. Cheers, --Timo _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
