Package com.ericsson.ssa.sip

Examples of com.ericsson.ssa.sip.SipServletResponseImpl


                    ex.getMessage());
            if (logger.isLoggable(Level.FINE)) {
                // Log stack trace with FINE
                logger.log(Level.FINE, "clb.caught_an_exception", ex);
            }
            SipServletResponseImpl errorResponse = request.createTerminatingResponse(503);
            if (errorResponse != null) {
                errorResponse.popDispatcher().dispatch(errorResponse);
            }
        }
    }
View Full Code Here


                    e.getMessage());
            if (logger.isLoggable(Level.FINE)) {
                logger.log(Level.FINE, "clb.caught_an_exception", e);
            }

            SipServletResponseImpl errorResponse = req.createTerminatingResponse(503);

            if (errorResponse != null) {
                LayerHelper.next(errorResponse, this, nextLayer);
            }
        }
View Full Code Here

                boolean initial = req.isInitial();

                if (initial) {
                    if (isOverloadDetectedInitialRequest()
                            || isMemOverloadDetectedInitialRequest()) {
                        SipServletResponseImpl resp = req
                                .createTerminatingResponse(503);
                        resp.setHeader("Retry-After", calculateRetryAfter(_overloadDetectedInitialRequestCounter.get(), _memOverloadDetectedInitialRequestCounter.get()));

                        if (LOGGER.isLoggable(Level.FINE)) {
                            LOGGER
                                    .log(Level.FINE,
                                            "Method next (req): rejecting initial request with 503");
                        }

                        // TR HH52078
                        if (resp == null) {
                            return;
                        }

                        // Remote has been set when creating the terminating
                        // response
                        resp.popDispatcher().dispatch(resp);
                        incrEasOverloadRejectedSipRequests();

                        return;
                    }
                } else {
                    // lets handle ACK as an initial request, it's a risk
                    // otherwise
                    // that INVITE is stopped but ACK is sent to next layer...
                    if (req.getMethod().equals("ACK")) {
                        if (isOverloadDetectedInitialRequest()
                                || isMemOverloadDetectedInitialRequest()) {
                            // drop ACK
                            if (LOGGER.isLoggable(Level.FINE)) {
                                LOGGER.log(Level.FINE,
                                        "Method next (req): dropping ACK ");
                            }

                            incrEasOverloadRejectedSipRequests();

                            return;
                        }
                    } else if (isOverloadDetectedSubsequentRequest()) {
                        // TR HH52078
                        SipServletResponseImpl resp = req
                                .createTerminatingResponse(503);
                        resp.setHeader("Retry-After", calculateRetryAfter(_overloadDetectedSubsequentRequestCounter.get(),0));

                        if (resp == null) {
                            return;
                        }

                        if (LOGGER.isLoggable(Level.FINE)) {
                            LOGGER
                                    .log(Level.FINE,
                                            "Method next (req): rejecting subsequent request with 503");
                        }

                        resp.popDispatcher().dispatch(resp);
                        incrEasOverloadRejectedSipRequests();

                        return;
                    }
                }
View Full Code Here

     *
     * @param request The response object from which to obtain access log info
     */
    public void logResponseEntry(String header, SipServletResponse sresponse) {
        String logString = null;
        SipServletResponseImpl response = (SipServletResponseImpl) sresponse;
        CharBuffer charBuffer = CharBuffer.allocate(MIN_BUFFER_SIZE);
        for (int i=0; i<patternComponents.size(); i++) {
            String pc = patternComponents.get(i);
            if (CLIENT_NAME.equals(pc)) {
                appendClientName(charBuffer, response.getRemoteUser());
            } else if (AUTH_USER_NAME.equals(pc)) {
                appendAuthUserName(charBuffer, response.getRemoteAddr());
            } else if (DATE_TIME.equals(pc)) {
                appendCurrentDate(charBuffer);      
            } else if (STATUS.equals(pc)) {
                appendResponseStatus(charBuffer, response);
            } else if (RESPONSE_LENGTH.equals(pc)) {
                appendResponseLength(charBuffer, response.getContentLength());
            } else if (VIA.equals(pc)) {
                Header via = response.getRawHeader(Header.VIA);
                appendVia(charBuffer, via);
            } else if (CALL_ID.equals(pc)) {
                Header callId = response.getRawHeader(Header.CALL_ID);
                appendString(charBuffer, callId);
            } else if (TO.equals(pc)) {
                Header to = response.getRawHeader(Header.TO);
                appendString(charBuffer, to);
            } else if (FROM.equals(pc)) {
                Header from = response.getRawHeader(Header.FROM);
                appendString(charBuffer, from);
            } else if (CSEQ.equals(pc)) {
                Header cseq = response.getRawHeader(Header.CSEQ);
                appendString(charBuffer, cseq);
            } else if (MAX_FORWARDS.equals(pc)) {
                Header maxForwards = response.getRawHeader(Header.MAX_FORWARDS);
                appendString(charBuffer, maxForwards);
            } else if (CONTACT.equals(pc)) {
                Header contact = response.getRawHeader(Header.CONTACT);
                appendString(charBuffer, contact);
            } else if (CONTENT_TYPE.equals(pc)) {
                Header contentType = response.getRawHeader(Header.CONTENT_TYPE);
                appendString(charBuffer, contentType);
            }
            charBuffer.put(SPACE);
        }
        charBuffer.put("\n");
View Full Code Here

            logger.log(Level.WARNING,
                    "clb.sip.failed_to_route_incoming_request", ex.getMessage());
            if (logger.isLoggable(Level.FINE)) {
                logger.log(Level.FINE, "clb.caught_an_exception", ex);
            }
            SipServletResponseImpl errorResponse =
                    req.createTerminatingResponse(503);

            if (errorResponse != null) {
                errorResponse.popDispatcher().dispatch(errorResponse);
            }
            return;
        }
       
        //Check if request is send by backend to be forwarded to
        //client.
        //Such a request will have a topmost route with parameter
        //"felb".
        Header routeHeader = req.getRawHeader(Header.ROUTE);
        ListIterator<Address> routeIterator = null;
        try {
            if(routeHeader != null){
                routeIterator = routeHeader.getAddressValues();
            }
        } catch (ServletParseException ex) {
            logger.log(Level.WARNING,
                    "clb.sip.failed_to_route_incoming_request", ex.getMessage());
            if (logger.isLoggable(Level.FINE)) {
                logger.log(Level.FINE, "clb.caught_an_exception", ex);
            }
            SipServletResponseImpl errorResponse =
                    req.createTerminatingResponse(503);

            if (errorResponse != null) {
                errorResponse.popDispatcher().dispatch(errorResponse);
            }
            return;
        }
        if(routeIterator != null && routeIterator.hasNext()){
            Address topRoute = routeIterator.next();
            String feParam = topRoute.getURI().getParameter(CLBConstants.FE_LB_PARAM);
            if(feParam != null){
                //remove topmost route
                boolean readOnly = routeHeader.isReadOnly();
                routeHeader.setReadOnly(false);
                routeIterator.remove();
                routeHeader.setReadOnly(readOnly);
                TargetTuple tt = null;
                try{
                    tt = TargetResolver.getInstance().resolveRequest(
                            req, req.getContentLength());
                }catch(Exception ex){
                    logger.log(Level.WARNING,
                            "clb.sip.failed_to_route_incoming_request", ex.getMessage());
                    if (logger.isLoggable(Level.FINE)) {
                        logger.log(Level.FINE, "clb.caught_an_exception", ex);
                    }
                    SipServletResponseImpl errorResponse =
                            req.createTerminatingResponse(503);

                    if (errorResponse != null) {
                        errorResponse.popDispatcher().dispatch(errorResponse);
                    }
                    return;
                }
                req.setResolvedRemote(tt);
                LayerHelper.resetDispatcher(req, NetworkManager.getInstance());
                req.popDispatcher().dispatch(req);
                return;
            }
        }
       
        SipRequestGroup sipRequestGroup =
                (SipRequestGroup) controller.getRequestGroup(null);
       
        if (sipRequestGroup != null) {
            try {
                boolean localServer =
                        sipRequestGroup.handleIncomingRequest(req);
                if (localServer) {
                    // Continue on this server
                    req.pushTransactionDispatcher(this);
                    req.pushApplicationDispatcher(this);
                    LayerHelper.next(req, this, nextLayer);
                } else {
                    //proxy request to the BE
                    req.popDispatcher().dispatch(req);
                }
            } catch (SipRoutingException e) {
                if (clbMonitoringManager.isCLBMonitoringEnabled()) {
                    clbMonitoringManager.getCLBStatsUpdater().
                            incrementTotalErrorSipResponsesAtCLBLayerFE();
                }
                logger.log(Level.WARNING,
                        "clb.sip.failed_to_route_incoming_request", e.getMessage());
                if(logger.isLoggable(Level.FINE)){
                    logger.log(Level.FINE, "clb.caught_an_exception", e);
                }

                SipServletResponseImpl errorResponse =
                        req.createTerminatingResponse(503);

                if (errorResponse != null) {
                    errorResponse.popDispatcher().dispatch(errorResponse);
                }
            }
        } else {
            if (clbMonitoringManager.isCLBMonitoringEnabled()) {
                clbMonitoringManager.getCLBStatsUpdater().
View Full Code Here

            clbMonitoringManager.getCLBStatsUpdater().
                    incrementTotalErrorSipResponsesAtCLBLayerFE();
        }
        logger.log(Level.WARNING, CONTROLLER_IS_NULL);

        SipServletResponseImpl errorResponse =
                req.createTerminatingResponse(503,
                "Could not service request as server is initializing");

        if (logger.isLoggable(Level.FINER)) {
            logger.log(Level.FINER,
                "Could not service request as server is initializing:\n"
                + req + "Send error response:\n" + errorResponse);
        }

        if(errorResponse != null)
            errorResponse.popDispatcher().dispatch(errorResponse);
    }
View Full Code Here

            } catch (RemoteLockRuntimeException e) {
                if (m_logger.isLoggable(Level.FINE)) {
                    m_logger.log(Level.FINE, "Dialog was remotely locked ", e);
                }

                SipServletResponseImpl response = request.createTerminatingResponse(SipServletResponseImpl.SC_SERVER_INTERNAL_ERROR);
                response.setHeader(Header.RETRY_AFTER, "5");
                response.popDispatcher().dispatch(response);

                return;
            } catch (IncompleteDialogException e) {
                if (m_logger.isLoggable(Level.FINE)) {
                    m_logger.log(Level.FINE, "Dialog was incomplete", e);
View Full Code Here

        }
    }

    private void sendResponse(SipServletRequestImpl request,
        int code) {
        SipServletResponseImpl response =
            request.createTerminatingResponse(code);
        response.sendError(); // fix for 1816 -- call sendError() instead of doing direct pop dispatch.
    }
View Full Code Here

        // Internal stateless proxy, decrease Max-Forwards by one.
        int maxForwards = request.getMaxForwards();
        --maxForwards;

        if (maxForwards <= 0) {
            SipServletResponseImpl response = request.createTerminatingResponse(
                SipServletResponseImpl.SC_TOO_MANY_HOPS);

            if (response != null) {
                dispatch(response);
            }
View Full Code Here

        return pipeline;
    }

    public void next(SipServletRequestImpl req) {
        SipServletResponseImpl resp = validateAndModifyIncomingVia(req);
        if (resp != null) {
            // VIA validation failed, send the error response back
            resp.popDispatcher().dispatch(resp);
            return;
        }
        LayerHelper.next(req, this, nextLayer);
    }
View Full Code Here

TOP

Related Classes of com.ericsson.ssa.sip.SipServletResponseImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.