|
|
|
@ -2800,19 +2800,21 @@ void call_destroy(struct call *c) { |
|
|
|
atomic64_add(&m->totalstats.total_nopacket_relayed_sess, total_nopacket_relayed_sess / 2); |
|
|
|
atomic64_add(&m->totalstats_interval.total_nopacket_relayed_sess, total_nopacket_relayed_sess / 2); |
|
|
|
|
|
|
|
ml = c->monologues->data; |
|
|
|
if (ml->term_reason==TIMEOUT) { |
|
|
|
atomic64_inc(&m->totalstats.total_timeout_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_timeout_sess); |
|
|
|
} else if (ml->term_reason==SILENT_TIMEOUT) { |
|
|
|
atomic64_inc(&m->totalstats.total_silent_timeout_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_silent_timeout_sess); |
|
|
|
} else if (ml->term_reason==REGULAR) { |
|
|
|
atomic64_inc(&m->totalstats.total_regular_term_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_regular_term_sess); |
|
|
|
} else if (ml->term_reason==FORCED) { |
|
|
|
atomic64_inc(&m->totalstats.total_forced_term_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_forced_term_sess); |
|
|
|
if (c->monologues) { |
|
|
|
ml = c->monologues->data; |
|
|
|
if (ml->term_reason==TIMEOUT) { |
|
|
|
atomic64_inc(&m->totalstats.total_timeout_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_timeout_sess); |
|
|
|
} else if (ml->term_reason==SILENT_TIMEOUT) { |
|
|
|
atomic64_inc(&m->totalstats.total_silent_timeout_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_silent_timeout_sess); |
|
|
|
} else if (ml->term_reason==REGULAR) { |
|
|
|
atomic64_inc(&m->totalstats.total_regular_term_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_regular_term_sess); |
|
|
|
} else if (ml->term_reason==FORCED) { |
|
|
|
atomic64_inc(&m->totalstats.total_forced_term_sess); |
|
|
|
atomic64_inc(&m->totalstats_interval.total_forced_term_sess); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
timeval_totalstats_average_add(&m->totalstats, &tim_result_duration); |
|
|
|
|