IƱaki Baz Castillo wrote:
2010/3/17 Klaus Darilion klaus.mailinglists@pernau.at:
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 the Via branch is faked, the tm module should not be able to match the response to a request because the branch parameter must constitute the transaction identifier. Subsequently, tm will not execute any TMCB_RESPONSE_PRE_OUT callbacks, and the dialog module won't ever have to look at the faked response.
Paraphrasing: If something's wrong on the transaction level and tm is doing its job right, dialog won't care.
Cheers,
--Timo