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;
}
Example #2
0
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;
}
Example #3
0
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;
}