C-Netz: Release MT call, if mobile phone does not respond

This commit is contained in:
Andreas Eversberg 2016-08-02 09:02:58 +02:00
parent eb85afa49c
commit c9012c7663
1 changed files with 11 additions and 1 deletions

View File

@ -1134,9 +1134,12 @@ call_failed:
if (trans->try == N) {
PDEBUG(DCNETZ, DEBUG_INFO, "Maximum retries, removing transaction\n");
cnetz_release(trans, CNETZ_CAUSE_FUNKTECHNISCH);
if (trans->callref) {
call_in_release(trans->callref, CAUSE_TEMPFAIL);
cnetz->sender.callref = 0;
}
/* must destroy transaction after cnetz_release */
destroy_transaction(trans);
cnetz->sender.callref = 0;
cnetz_go_idle(cnetz);
break;
}
@ -1150,6 +1153,8 @@ call_failed:
if (!ogk) {
PDEBUG(DCNETZ, DEBUG_NOTICE, "Cannot retry, because currently no OgK available (busy)\n");
cnetz_release(trans, CNETZ_CAUSE_FUNKTECHNISCH);
if (trans->callref)
call_in_release(trans->callref, CAUSE_NOCHANNEL);
/* must destroy transaction after cnetz_release */
destroy_transaction(trans);
break;
@ -1399,3 +1404,8 @@ void cnetz_receive_telegramm_spk_v(cnetz_t *cnetz, telegramm_t *telegramm)
cnetz_sync_frame(cnetz, telegramm->sync_time, -1);
}
void dump_info(void)
{
dump_db();
}