void Connection::setOfferingTimer(int milliSeconds) { UtlString callId; SipSession session ; Url urlTo ; UtlString remoteAddr; getSession(session) ; session.getCallId(callId) ; session.getToUrl(urlTo) ; urlTo.toString(remoteAddr) ; CpMultiStringMessage* offeringExpiredMessage = new CpMultiStringMessage(CpCallManager::CP_OFFERING_EXPIRED, callId.data(), remoteAddr.data()); OsTimer* timer = new OsTimer((mpCallManager->getMessageQueue()), offeringExpiredMessage); // Convert from mSeconds to uSeconds OsTime timerTime(milliSeconds / 1000, milliSeconds % 1000); timer->oneshotAfter(timerTime); #ifdef TEST_PRINT osPrintf("Connection::setOfferingTimer message type: %d %d", OsMsg::PHONE_APP, CpCallManager::CP_OFFERING_EXPIRED); #endif callId.remove(0); remoteAddr.remove(0); }
void Connection::setRingingTimer(int seconds) { UtlString callId; mpCall->getCallId(callId); UtlString remoteAddr; getRemoteAddress(&remoteAddr); CpMultiStringMessage* offeringExpiredMessage = new CpMultiStringMessage(CpCallManager::CP_RINGING_EXPIRED, callId.data(), remoteAddr.data()); OsTimer* timer = new OsTimer((mpCallManager->getMessageQueue()), offeringExpiredMessage); #ifdef TEST_PRINT osPrintf("Setting ringing timeout in %d seconds\n", seconds); #endif OsTime timerTime(seconds, 0); timer->oneshotAfter(timerTime); #ifdef TEST_PRINT osPrintf("Connection::setRingingTimer message type: %d %d", OsMsg::PHONE_APP, CpCallManager::CP_RINGING_EXPIRED); #endif callId.remove(0); remoteAddr.remove(0); }
void SipRefreshManager::setRefreshTimer(RefreshDialogState& state, UtlBoolean isSuccessfulReschedule) { // Create and set a new timer for the failed time out period int nextResendSeconds = calculateResendTime(state.mExpirationPeriodSeconds, isSuccessfulReschedule); // If a signficant amount of time has passed since the prior // request was sent, decrease the error timeout a bit. // This is only a problem with the error case as in the // successful case we set the timer before sending the // request. if(!isSuccessfulReschedule) { long now = OsDateTime::getSecsSinceEpoch(); if(state.mPendingStartTime > 0 && now - state.mPendingStartTime > 5) { nextResendSeconds = nextResendSeconds - now + state.mPendingStartTime; if(nextResendSeconds < 30) { nextResendSeconds = 30; } } } OsSysLog::add(FAC_SIP, PRI_DEBUG, "SipRefreshManager::setRefreshTimer setting resend timeout in %d seconds\n", nextResendSeconds); OsMsgQ* incomingQ = getMessageQueue(); OsTimer* resendTimer = new OsTimer(incomingQ, (int)&state); state.mpRefreshTimer = resendTimer; OsTime timerTime(nextResendSeconds, 0); resendTimer->oneshotAfter(timerTime); }