Allow AOC-E generation if AOC-D timer is not started (e.g. connect-only charge)
This commit is contained in:
parent
3549cff4d6
commit
0074b495d6
|
@ -486,6 +486,7 @@ void setup_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
|
||||||
/* reset AOC information */
|
/* reset AOC information */
|
||||||
call->metering_info_received = 0;
|
call->metering_info_received = 0;
|
||||||
call->aocd_unit_timer_started = 0;
|
call->aocd_unit_timer_started = 0;
|
||||||
|
call->metering_total_units = 0;
|
||||||
|
|
||||||
new_state(call, ISDN_STATE_IN_SETUP);
|
new_state(call, ISDN_STATE_IN_SETUP);
|
||||||
|
|
||||||
|
@ -901,13 +902,13 @@ void disconnect_ind(call_t *call, uint32_t pid, struct l3_msg *l3m)
|
||||||
osmo_cc_ll_msg(&call->isdn_ep->cc_ep, call->cc_callref, msg);
|
osmo_cc_ll_msg(&call->isdn_ep->cc_ep, call->cc_callref, msg);
|
||||||
|
|
||||||
/* stop AOC-D timer and send AOC-E facility */
|
/* stop AOC-D timer and send AOC-E facility */
|
||||||
if(call->aocd_unit_timer_started)
|
if(call->aocd_unit_timer_started) {
|
||||||
{
|
|
||||||
timer_stop(&call->aocd_unit_timer);
|
timer_stop(&call->aocd_unit_timer);
|
||||||
timer_exit(&call->aocd_unit_timer);
|
timer_exit(&call->aocd_unit_timer);
|
||||||
call->aocd_unit_timer_started = 0;
|
call->aocd_unit_timer_started = 0;
|
||||||
generate_aoce_fac(call);
|
|
||||||
}
|
}
|
||||||
|
if(call->metering_total_units > 0)
|
||||||
|
generate_aoce_fac(call);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CC-DISCONNECT INDICATION of child instance */
|
/* CC-DISCONNECT INDICATION of child instance */
|
||||||
|
@ -2539,13 +2540,13 @@ void disc_req(call_t *call, uint32_t pid, osmo_cc_msg_t *msg)
|
||||||
call->isdn_ep->ml3->to_layer3(call->isdn_ep->ml3, MT_DISCONNECT, call->l3_pid, l3m);
|
call->isdn_ep->ml3->to_layer3(call->isdn_ep->ml3, MT_DISCONNECT, call->l3_pid, l3m);
|
||||||
|
|
||||||
/* stop AOC-D timer and send AOC-E facility */
|
/* stop AOC-D timer and send AOC-E facility */
|
||||||
if(call->aocd_unit_timer_started)
|
if(call->aocd_unit_timer_started) {
|
||||||
{
|
|
||||||
timer_stop(&call->aocd_unit_timer);
|
timer_stop(&call->aocd_unit_timer);
|
||||||
timer_exit(&call->aocd_unit_timer);
|
timer_exit(&call->aocd_unit_timer);
|
||||||
call->aocd_unit_timer_started = 0;
|
call->aocd_unit_timer_started = 0;
|
||||||
generate_aoce_fac(call);
|
|
||||||
}
|
}
|
||||||
|
if(call->metering_total_units > 0)
|
||||||
|
generate_aoce_fac(call);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CC-RELEASE REQUEST */
|
/* CC-RELEASE REQUEST */
|
||||||
|
|
Loading…
Reference in New Issue