diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 70c23c60202800181a2dbeddd94e364b15af6f77..4ae95c0ea46850a39a355e14adfbd2af740159c8 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -1592,34 +1592,25 @@ void update_contact_header(pjsip_regc_cbparam *param, SIPAccount *account) pj_pool_release(pool); } -static void lookForReceivedParameter(pjsip_regc_cbparam *param, SIPAccount *account) +void lookForReceivedParameter(pjsip_regc_cbparam ¶m, SIPAccount &account) { - pj_str_t receivedValue = param->rdata->msg_info.via->recvd_param; + pj_str_t receivedValue = param.rdata->msg_info.via->recvd_param; if (receivedValue.slen) { std::string publicIpFromReceived(receivedValue.ptr, receivedValue.slen); - account->setReceivedParameter(publicIpFromReceived); + account.setReceivedParameter(publicIpFromReceived); } - account->setRPort(param->rdata->msg_info.via->rport_param); + account.setRPort(param.rdata->msg_info.via->rport_param); } -static void processRegistrationError(pjsip_regc_cbparam *param, SIPAccount *account, const RegistrationState &state) +void processRegistrationError(SIPAccount &account, RegistrationState /*state*/) { - if(param == NULL) { - ERROR("UserAgent: param is NULL while processing registration error"); - return; - } - - if(account == NULL) { - ERROR("UserAgent: Account is NULL while processing registration error"); - return; - } - - account->stopKeepAliveTimer(); - account->setRegistrationState(ErrorAuth); - account->setRegister(false); - SIPVoIPLink::instance()->sipTransport.shutdownSipTransport(*account); + account.stopKeepAliveTimer(); +#warning FIXME: We should be using the state parameter here + account.setRegistrationState(ErrorAuth); + account.setRegister(false); + SIPVoIPLink::instance()->sipTransport.shutdownSipTransport(account); } void registration_cb(pjsip_regc_cbparam *param) @@ -1655,7 +1646,7 @@ void registration_cb(pjsip_regc_cbparam *param) if (param->status != PJ_SUCCESS) { FAILURE_MESSAGE(); - processRegistrationError(param, account, ErrorAuth); + processRegistrationError(*account, ErrorAuth); return; } @@ -1667,11 +1658,11 @@ void registration_cb(pjsip_regc_cbparam *param) case PJSIP_SC_USE_PROXY: // 305 case PJSIP_SC_ALTERNATIVE_SERVICE: // 380 FAILURE_MESSAGE(); - processRegistrationError(param, account, Error); + processRegistrationError(*account, Error); break; case PJSIP_SC_SERVICE_UNAVAILABLE: // 503 FAILURE_MESSAGE(); - processRegistrationError(param, account, ErrorHost); + processRegistrationError(*account, ErrorHost); break; case PJSIP_SC_UNAUTHORIZED: // 401 // Automatically answered by PJSIP @@ -1680,11 +1671,11 @@ void registration_cb(pjsip_regc_cbparam *param) case PJSIP_SC_FORBIDDEN: // 403 case PJSIP_SC_NOT_FOUND: // 404 FAILURE_MESSAGE(); - processRegistrationError(param, account, ErrorAuth); + processRegistrationError(*account, ErrorAuth); break; case PJSIP_SC_REQUEST_TIMEOUT: // 408 FAILURE_MESSAGE(); - processRegistrationError(param, account, ErrorHost); + processRegistrationError(*account, ErrorHost); break; case PJSIP_SC_INTERVAL_TOO_BRIEF: // 423 // Expiration Interval Too Brief @@ -1693,18 +1684,18 @@ void registration_cb(pjsip_regc_cbparam *param) account->setRegister(false); break; case PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE: // 606 - lookForReceivedParameter(param, account); + lookForReceivedParameter(*param, *account); account->setRegistrationState(ErrorNotAcceptable); account->registerVoIPLink(); break; default: FAILURE_MESSAGE(); - processRegistrationError(param, account, Error); + processRegistrationError(*account, Error); break; } } else { - lookForReceivedParameter(param, account); + lookForReceivedParameter(*param, *account); if (account->isRegistered()) account->setRegistrationState(Registered); else {