bool BoardE1::KhompPvtISDN::onCallFail(K3L_EVENT *e) { try { ScopedPvtLock lock(this); if(e->AddInfo > 0) { callISDN()->_isdn_cause = e->AddInfo; } setHangupCause(causeFromCallFail(e->AddInfo),true); lock.unlock(); KhompPvtE1::onCallFail(e); } catch (ScopedLockFailed & err) { K::Logger::Logg(C_ERROR, PVT_FMT(target(), "unable to lock %s!") % err._msg.c_str() ); return ksFail; } return ksSuccess; }
bool BoardGSM::KhompPvtGSM::onCallFail(K3L_EVENT *e) { bool ret = true; try { ScopedPvtLock lock(this); //K::internal::gsm_cleanup_and_restart(pvt, owner_nr, true); setHangupCause(causeFromCallFail(e->AddInfo), true); ret = KhompPvt::onCallFail(e); } catch (ScopedLockFailed & err) { LOG(ERROR, PVT_FMT(target(), "unable to lock %s!") % err._msg.c_str() ); return false; } return ret; }
bool BoardFXO::KhompPvtFXO::onCallFail(K3L_EVENT *e) { bool ret = true; try { ScopedPvtLock lock(this); command(KHOMP_LOG, CM_DISCONNECT); setHangupCause(causeFromCallFail(e->AddInfo), true); ret = KhompPvt::onCallFail(e); } catch (ScopedLockFailed & err) { LOG(ERROR, PVT_FMT(target(), "unable to lock %s!") % err._msg.c_str() ); return false; } return ret; }