Package com.ericsson.ssa.sip

Examples of com.ericsson.ssa.sip.Header


     */
    private void addPathHeader(SipServletRequestImpl req) {
        FlowToken flowToken = createFlowToken(req.getInitialRemote(), req.getLocal());
        SipURI sipURI = getContainerAddress(flowToken);
        sipURI.setParameter("ob", "");
        Header header = Header.createFormatted(Header.PATH, req);
        header.setValue("<" + sipURI.toString() + ">", false);
       
        req.addHeader(header);
    }  
View Full Code Here


     * @param req, the request to forward stateless
     */
    private void forwardRequest(SipServletRequestImpl req)
    {
        //find the flow to forward the request
        Header routeHeader = req.getRawHeader(Header.ROUTE);
        FlowToken flowToken = extractFlowToken(routeHeader);

        if (flowToken != null) {
            try {
                flowToken.validate();
View Full Code Here

     * Updates the Record-Route if exists, otherwise creates a new one.
     * @param req
     * @return
     */
    private void updateRecordRouteHeader(SipServletRequestImpl req, Address poppedRoute) {
        Header recordRoute = req.getRawHeader(Header.RECORD_ROUTE);
        if (recordRoute == null) {
            recordRoute = Header.createFormatted(Header.RECORD_ROUTE, req);
            req.addHeader(recordRoute);
        }
       
        recordRoute.setValue('<' + poppedRoute.getURI().toString() + '>', true);
    }
View Full Code Here

        FlowToken flowToken = new FlowToken(remotePoint, localPoint);
        return flowToken;
    }

    public void addFlowOnRecordRoute(SipServletRequestImpl req) {
        Header contactHeader = req.getRawHeader(Header.CONTACT);   
        if (contactHeader != null && isOutboundIndicated(contactHeader)) {
               
            if (SipFactoryImpl.isDialogCreational(req.getMethod()) && isFirstHop(req)) {
                 addRecordRouteHeader(req);
            }
View Full Code Here

     */
    private void addRecordRouteHeader(SipServletRequestImpl req) {

        FlowToken flowToken = createFlowToken(req.getInitialRemote(), req.getLocal());
        SipURI sipURI = getContainerAddress(flowToken);
        Header header = req.getRawHeader(Header.RECORD_ROUTE);
       
        if (header == null) {
            header = Header.createFormatted(Header.RECORD_ROUTE, req);
            //add route so that any request passes this node
            req.addHeader(header);
        }
       
        header.setValue("<" + sipURI.toString() + ">", false);
    }
View Full Code Here

            }


        } else {
            SipServletResponseImpl resp = (SipServletResponseImpl) message;
            Header cseq = resp.getRawHeader(Header.CSEQ);
            /*
             * this should never be null
             */
            if ((cseq == null) || (cseq.getValue() == null)) {
                logger.log(Level.SEVERE, "sip.network.grizzlu.request.cseq.null");
                if (SipMonitoring.isEnabled(SipMonitoring.NETWORK_MANAGER)) {
                    if (((TCPSelectorHandler) handler).getInet() != null){
                    ((NetworkManager) _networkHandler).incrEasInvalidSipMessages(
                            ((TCPSelectorHandler) handler).getInet().getHostAddress(),
                            ((TCPSelectorHandler) handler).getPort());
                    } else {
                        ((NetworkManager) _networkHandler).incrEasReceivedSipRequests(
                            message.getLocal().getAddress().getHostAddress(), -1);
                    }
                }
                return;
            }

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

            if (logger.isLoggable(Level.FINEST)) {
                logger.log(Level.FINEST, "sip.network.grizzly.in.response",
View Full Code Here

            isViaModified = true;
        }

        if (isViaModified) {
            // update the "real" header with the changes above
            Header v = req.getRawHeader(Header.VIA);
            v.setReadOnly(false);

            ListIterator<String> it = v.getValues();
            it.next();
            it.set(via.toString());
            v.setReadOnly(true);
        }       
    }
View Full Code Here

            return;
        }

        // POP via
        Header via = resp.getRawHeader(Header.VIA);
        via.setReadOnly(false);

        ListIterator<String> li = via.getValues();
        String topVia = li.next();

        if ((topVia != null) && resp.getMethod().equals("INVITE")) {
            // An INVITE response need to save the topVia, which is used
            // by CANCEL to find it's way to the correct transaction...
            Header viaOfCancel = new MultiLineHeader(Header.VIA, true);
            ViaImpl v = new ViaImpl(topVia);
            viaOfCancel.setValue(v.toString(), true);
            resp.setCancelVia(viaOfCancel);
        }

        // TODO could match to see that it's the right host'n port
        li.remove();
View Full Code Here

        // Sending out request UAC or Proxy
        // Slightly special handling of ACK and CANCEL
        String method = req.getMethod();

        if (!method.equals("CANCEL")) {
            Header via = req.getRawHeader(Header.VIA);

            if (via == null) {
                via = new MultiLineHeader(Header.VIA, true);
            }

            TargetTuple ttToUse = selectTTToUse(req);           

            if (log.isLoggable(Level.FINEST)) {
                log.log(Level.FINEST, "Via header transport: " +
                        ttToUse.getIP()+":"+ttToUse.getPort()+" Transport="+
                        ttToUse.getProtocol().name());
            }

            ViaImpl v = new ViaImpl(req.getProtocol(),
                    req.getTransport().toUpperCase(), ttToUse.getIP(),
                    ttToUse.getPort());
            String id = Transaction.generateBranch();
            v.setParameter(ViaImpl.PARAM_BRANCH, id);

            if (log.isLoggable(Level.FINE)) {
                log.log(Level.FINE, "Adding via = " + v);
            }

            String string_via = v.toString();
            if (req.getHeader("VIA_NEXTHOP_PARAMETERS") != null) {
              // special handling for applications that wants to affect the future via
              String via_nexthop_parameters = req.getHeader("VIA_NEXTHOP_PARAMETERS");
              req.removeHeader("VIA_NEXTHOP_PARAMETERS"); // we should never keep this header when request is sent
              string_via += ';'+ via_nexthop_parameters;  // plain String concatenation, knowledge & responsiblity is of application
            }
           

            via.setValue(string_via, true);
            req.setHeader(via);

            if (!method.equals("ACK")) {
                ClientTransaction ct = method.equals("INVITE")
                    ? new InviteClientTransaction(id, req)
View Full Code Here

        _transactionId = null;
    }

  protected void popVia(SipServletResponseImpl resp) {
    // POP via
      Header via = resp.getRawHeader(Header.VIA);
      via.setReadOnly(false);
 
      ListIterator<String> li = via.getValues();
      li.next();
      li.remove();
      via.setReadOnly(true);
  }
View Full Code Here

TOP

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

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.