From db2fc6e2c28901d2a42824e241efd81cf938d070 Mon Sep 17 00:00:00 2001 From: Yun Liu <yun@yun.(none)> Date: Sun, 28 Sep 2008 18:30:44 -0400 Subject: [PATCH] Fix bug when user make an outgoing calll with invalid sip server name --- src/sipmanager.cpp | 19 ++++++------------- src/sipvoiplink.cpp | 4 +--- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/sipmanager.cpp b/src/sipmanager.cpp index cd5ca115a0..8648e4096f 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 498008be26..c8dd9cb96d 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 -- GitLab