Package com.ericsson.ssa.sip

Examples of com.ericsson.ssa.sip.SipServletResponseImpl


                }

                clientPipeline.execute(new Callable() {

                    public Object call() throws Exception {
                        SipServletResponseImpl resp =
                                req.createTerminatingResponse(503);
                        resp.setInternalTransportFailure(true);                               
                        LayerHelper.next(resp, nextLayer, nextLayer);

                        return null;
                    }
                    });
View Full Code Here


    public void next(SipServletResponseImpl resp) {
        if (resp.peekDispatcher() != null) {
            LayerHelper.next(resp, this, _nextLayer);
        } else {
            final SipServletResponseImpl r = resp;
            final Layer l = this;
            _threadPool.execute(new Runnable() {
                    public void run() {
                        LayerHelper.next(r, l, _nextLayer);
                    }
View Full Code Here

            }
        }
    }

    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;
      }
     
      req.pushTransactionDispatcher(this);
        req.pushApplicationDispatcher(this);
View Full Code Here

        return true;
    }

    private void handleResolvError(SipServletRequestImpl req) {
        SipServletResponseImpl failureResp = getRequestTimeout(req);

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

        // incoming req (with via) --> send 408 to client
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "failed to resolve req, send 408 response");
        }

        failureResp.popDispatcher().dispatch(failureResp);
    }
View Full Code Here

        failureResp.popDispatcher().dispatch(failureResp);
    }

    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

            try {
                it_a = r.getAddressValues();
            } catch (ServletParseException e) {
                // TR HH52078
                SipServletResponseImpl failureResp = req.createTerminatingResponse(400);

                if (failureResp == null) {
                    return;
                }

                if (logger.isLoggable(Level.FINE)) {
                    logger.log(Level.FINE,
                        "failed to parse top route , send 400 response");
                }

                failureResp.popDispatcher().dispatch(failureResp);

                return;
            }

            Address a = it_a.next();
View Full Code Here

        }

        if (async) {
            _threadPool.execute(new Callable() {
                    public Object call() throws Exception {
                        SipServletResponseImpl resp = req.createTerminatingResponse(503);
                        //_nextLayer.next(resp);
                        LayerHelper.next(resp, _nextLayer, _nextLayer);
                        return null;
                    }
                });
        } else {
            SipServletResponseImpl resp = req.createTerminatingResponse(503);
            //            _nextLayer.next(resp);
            LayerHelper.next(resp, _nextLayer, _nextLayer);
        }
    }
View Full Code Here

            if (SipMonitoring.isEnabled(SipMonitoring.NETWORK_MANAGER)) {
                _networkManager.incrEasReceivedSipRequests();
            }
        } else {
            SipServletResponseImpl resp = (SipServletResponseImpl) message;
            Header cseq = resp.getRawHeader(Header.CSEQ);

            if (cseq == null) {
                if (SipMonitoring.isEnabled(SipMonitoring.NETWORK_MANAGER)) {
                    _networkManager.incrEasInvalidSipMessages();
                }

                return; // Drop since missing required header
            }

            String c = cseq.getValue();
            int index = c.indexOf(' ');
            resp.setMethod(c.substring(index + 1));

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

            // trigger reporter for network manager
            Reporter reporter = _networkManager.getReporter();
            if (reporter != null) {
View Full Code Here

                }

                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) {
                    } // After this layer it shouldn't go anywhere

                    TargetResolver tr = TargetResolver.getInstance();
                    TargetTuple tt = tr.resolveResponse(resp);

                    if (tt != null) {
                        resp.setRemote(tt);
                        dispatch(resp);
                    }
                } else if (_log.isLoggable(Level.FINE)) {
                    _log.log(Level.FINE,
                        "failed to find out where to send error response " +
View Full Code Here

   
   
  public SipServletResponseImpl validateAndModifyIncomingVia(SipServletRequestImpl req) {
    String vstr = req.getHeader(Header.VIA);
        if (vstr == null) {
          SipServletResponseImpl resp = req.createTerminatingResponse(400, "Missing via in request");
          return resp;
        }
       
        ViaImpl via = null;
       
        try {
          via = new ViaImpl(vstr);
        }
        catch(Throwable t){
          SipServletResponseImpl resp = req.createTerminatingResponse(400, "Via cannot be parsed");
          return resp;
        }
   
     
      String viaTransport = via.getTransport();           
      String remoteTransport = req.getRemote().getProtocol().name();
     
      if ( viaTransport!= null && remoteTransport != null && !viaTransport.equalsIgnoreCase(remoteTransport)) {
        SipServletResponseImpl resp = req.createTerminatingResponse(400, "Mismatch in VIA Transport");
        return resp;
      }
     
      TargetResolver.updateVia(req, via);
      return null;
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.