Bogdan-Andrei Iancu writes:
normally only one missed call report should be generated per fork sequence. I'm still trying to reproduce what you are reporting, but not successful so fat - still getting only one report. Are you using the latest CVS version?
i should be, but looks like sf is down again and i can't check.
Accounting is done on TMCB_RESPONSE_OUT. if you set the accounting flag, the call report will be triggered at that point - by default only successful transactions are reported; to get also the negative ones, you need to set the failed_transaction flag also.
as i told, i don't have failed_transactions flag set. i have been reading acc_mod.c code. call back function does the following tests:
static void tmcb_func( struct cell* t, int type, struct tmcb_params *ps ) { if (type&TMCB_RESPONSE_OUT) { acc_onreply( t, ps->req, ps->rpl, ps->code); } else if (type&TMCB_E2EACK_IN) { acc_onack( t, t->uas.request, ps->req, ps->code); } else if (type&TMCB_ON_FAILURE) { on_missed( t, ps->req, ps->rpl, ps->code); } else if (type&TMCB_RESPONSE_IN) { acc_onreply_in( t, ps->req, ps->rpl, ps->code); } }
does that mean that if invite times out, both on_missed and acc_onreply are called, on_missed, when 408 is triggered by proxy and acc_onreply when 408 is sent out to the caller? on the other hand, acc_onreply itself calls both on_missed and acc_rad_reply.
To achieve your scenario, you need to set the accounting flag (to get the call report if successful) and the missed call flag (to get a missed call report(s) if the call fails).
i have those two flags set and i get two reports if call fails.
-- juha