diff --git a/src/sipmanager.cpp b/src/sipmanager.cpp index cd5ca115a08459e625b432f363864cd64b22a146..8648e4096f68aced29231d6bb09d39f6a02d8299 100644 --- a/src/sipmanager.cpp +++ b/src/sipmanager.cpp @@ -925,12 +925,15 @@ bool SIPManager::makeOutgoingCall(const std::string& strTo, SIPCall* call, const status = pjsip_inv_invite(inv, &tdata); PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); - status = pjsip_inv_send_msg(inv, tdata); - PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); - // Associate current invite session in the call call->setInvSession(inv); + status = pjsip_inv_send_msg(inv, tdata); + //PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); + if(status != PJ_SUCCESS) { + return false; + } + return true; } @@ -972,16 +975,6 @@ void SIPManager::call_on_tsx_changed(pjsip_inv_session *inv, pjsip_transaction * link->SIPCallAnswered(call, rdata); } else if (tsx->status_code / 100 == 5) { _debug("SIPManager: 5xx error message received\n"); - call = reinterpret_cast<SIPCall *> (inv->mod_data[getInstance()->getModId()]); - if (call == NULL) { - _debug("SIPManager: Call has been removed!\n"); - return; - } - accId = Manager::instance().getAccountFromCall(call->getCallId()); - link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink(accId)); - if (link) { - link->SIPCallServerFailure(call); - } } break; case PJSIP_TSX_STATE_PROCEEDING: diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp index 498008be267362c2d0a292d7f2d88f0b859834d8..c8dd9cb96da35406d04cbec1ec672bb0149c2280 100644 --- a/src/sipvoiplink.cpp +++ b/src/sipvoiplink.cpp @@ -418,9 +418,7 @@ SIPVoIPLink::SIPStartCall(SIPCall* call, const std::string& subject) //setCallAudioLocal(call); AccountID accId = getAccountID(); - Manager::instance().getSipManager()->makeOutgoingCall(to, call, accId); - - return true; + return Manager::instance().getSipManager()->makeOutgoingCall(to, call, accId); } std::string