Package com.ericsson.ssa.sip

Examples of com.ericsson.ssa.sip.SipServletRequestImpl


        String callId = req.getHeader(Header.CALL_ID);
        String fromTag;

        // Use getAddressHeaderImpl to retrieve the AddressImpl.
        // getAddressHeader returns a wrapper around the Address.               
        SipServletRequestImpl requestImpl = (SipServletRequestImpl) req;

        try {
            fromTag = requestImpl.getAddressHeaderImpl(Header.FROM)
                         .getParameter(AddressImpl.TAG_PARAM);
        } catch (ServletParseException e) {
            fromTag = "UNDEFINED"; // Could never happen, but cope with it.
        }
View Full Code Here


                }
            }

            try {
                TargetResolver resolver = TargetResolver.getInstance();
                SipServletRequestImpl req = (SipServletRequestImpl) resp.getRequest();
                // put the target in quarantine for the requested time
                if (expireTime > 0) {
                  resolver.setTargetFailed(req.getRemote(), expireTime);
                }
                // but for the current request we also mark it as failed
                // so regardless of the quarantine time it will not be tried twice
                // for the same request
                req.addFailedTarget(req.getRemote());
                // shortcut to let the dns resolver consider the failed targets
                // for this request by setting them via threadlocal
                DnsResolver.getInstance().setThreadLocalFailedTargets(req.getFailedTargets());
                TargetTuple newDestination = resolver.resolveRequest(req,
                        req.getMessageSize());

                if (newDestination == null) {
                    if (logger.isLoggable(Level.FINE)) {
                        logger.log(Level.FINE,
                            "List of available targets is exhausted");
                    }

                    shouldForwardResponseToApplication = true; // nothing more to
                                                               // do.....
                  resp.setInternalTransportFailure(false);
          if (resp.getStatus() == 408) {
              // keep the status
          } else {
              resp.setStatus(500);
          }
                } else {
                    req.setRemote(newDestination);
                    // send in new transaction....
                    req.restoreRetransmissionApplicationStack(
                                          ResolverManager.getInstance());
                    if("CANCEL".equals(req.getMethod())
                                        || "ACK".equals(req.getMethod())) {
                        if (logger.isLoggable(Level.FINE)) {
                            logger.log(Level.FINE,
                                "For CANCEL & ACK DONT POP VIA");
                        }
                    } else {
                        req.popTopVia();
                    }
                    req.popDispatcher().dispatch(req);
                    shouldForwardResponseToApplication = false; // Do not pass this
                                                                // response up
                }
            } catch (Exception e) {
                if (logger.isLoggable(Level.FINE)) {
View Full Code Here

    private SipServletResponseImpl getRequestTimeout(SipServletRequestImpl in) {
        SipServletResponseImpl resp = in.createTerminatingResponse(408);

        // set the transaction request, since UA would have already
        // copied it... B2bUA will fail otherwise.
        SipServletRequestImpl req = in.getTransactionRequest();

        if ((req != null) && (resp != null)) {
            resp.setRequest(req);
            resp.setSession(req.getSessionImpl());
        }

        return resp;
    }
View Full Code Here

     */
    private void putTask(WriteRequestTask task) {
        try {
            putTaskImpl(task);
        } catch (ProcessorException e) {
            SipServletRequestImpl request = ((WriteRequestTask) task).getRequest();
            _log.log(Level.FINE,
                "Network OUT request " + request.getMethod() +
                " is dropped due to exceeded queue size --> \r\n" +
                request.toString());
            sendError(request, false);
        }
    }
View Full Code Here

        processMessage(parsedMessage);
    }

    protected void processMessage(final SipServletMessageImpl message) {
        if (message instanceof SipServletRequestImpl) {
            SipServletRequestImpl req = (SipServletRequestImpl) message;

            if (_log.isLoggable(Level.FINE)) {
                _log.log(Level.FINE,
                    "Network IN request " + req.getMethod() + " --> \r\n" +
                    req.toString());
            }

            if (hasBodyWithoutContentType(message)) {
                return;
            }

            // Respones should use the same link
            req.pushTransactionDispatcher(this);
            req.pushApplicationDispatcher(_networkManager);

            // trigger reporter for network manager
            Reporter reporter = _networkManager.getReporter();
            if (reporter != null) {
                reporter.logIncomingRequest(Reporter.InterceptionType.LAYER, req, NetworkManager.class.getSimpleName());
View Full Code Here

                if (_log.isLoggable(Level.FINE)) {
                    _log.log(Level.FINE,
                        "Missing Content-Type header field, the request has a body.");
                }

                SipServletRequestImpl req = (SipServletRequestImpl) message;
                String phraze = "Missing Content-Type header field";

                SipServletResponseImpl resp = req.createTerminatingResponse(400,
                        phraze);

                // TR HH52078
                if (resp != null) {
                    while (resp.popDispatcher() != null) {
View Full Code Here

        switch (conditionType) {
        case TYPE_EQUALS:

            try {
                SipServletRequestImpl sipreq = (SipServletRequestImpl) object;
                ResolverManager.getInstance().checkRouteHeader(sipreq, false);

                String actualSessionCase = sipreq.getSessionCase().toString();

                if (logger.isLoggable(Level.FINER)) {
                    logger.log(Level.FINER,
                        "SessionCase: " + actualSessionCase);
                }
View Full Code Here

    private void processMessage(final SipServletMessageImpl message,
            SelectionKey key, SelectorHandler handler,
            SocketAddress remoteAdress, Protocol prot) {
        if (message.getMessageType() ==
                SipServletMessageImpl.SipMessageType.SipRequest) {
            SipServletRequestImpl req = (SipServletRequestImpl) message;

            if (logger.isLoggable(Level.FINEST)) {
                logger.log(Level.FINEST,
                        "sip.network.grizzly.in.request",
                        new Object[]{req.getMethod(), req.toString()});
            }

            if (hasBodyWithoutContentType(message)) {
                return;
            }

            req.pushTransactionDispatcher(_networkHandler);
            ResponseDispatcher rd = null;
            if (prot == Protocol.TCP) {
                rd = new StreamResponseDispatcher(handler, key, _bbPool, _asyncWriteCallbackHandler);
            }
            else if (prot == Protocol.TLS) {
                rd = new TLSResponseDispatcher(handler, key, _bbPool, _asyncWriteCallbackHandler);
            }
           
            if (rd != null)
                req.pushTransactionDispatcher(rd); //Could be the same channel

            req.pushApplicationDispatcher(_networkHandler);
            LayerHelper.next(req, _networkHandler, _networkHandler);

            if (SipMonitoring.isEnabled(SipMonitoring.NETWORK_MANAGER)) {
                if (((TCPSelectorHandler)handler).getInet() != null){
                ((NetworkManager) _networkHandler).incrEasReceivedSipRequests(
                        ((TCPSelectorHandler)handler).getInet().getHostAddress(),
                        ((TCPSelectorHandler)handler).getPort());
                } else {
                    ((NetworkManager) _networkHandler).incrEasReceivedSipRequests(
                            message.getLocal().getAddress().getHostAddress(), -1);
                }
                ((NetworkManager) _networkHandler).incrReqInMethodCounter(req.getMethod());
            }


        } else {
            SipServletResponseImpl resp = (SipServletResponseImpl) message;
View Full Code Here

                if (logger.isLoggable(Level.FINEST)) {
                    logger.log(Level.FINEST,
                            "sip.network.grizzly.missing.content.type");
                }

                SipServletRequestImpl req = (SipServletRequestImpl) message;
                String phraze = "Missing Content-Type header field";
                SipServletResponseImpl resp = req.createTerminatingResponse(400,
                        phraze);

                sendErrorResponse(resp);
            } catch (Exception ignore) {
                if (logger.isLoggable(Level.FINEST)) {
View Full Code Here

                        new Object[]{parsedmessage});
            }
            /**
             * Add some monitoring info here.
             */
            SipServletRequestImpl req =
                    (SipServletRequestImpl) parsedmessage;

            SipServletResponseImpl resp = req.createTerminatingResponse(500);
            sendErrorResponse(resp);
        }
    }
View Full Code Here

TOP

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

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.