Package gov.nist.javax.sip.header

Examples of gov.nist.javax.sip.header.RecordRouteList


                 * record route headers present in the original request so the loop will not
                 * execute.
                 */
                if ( this.getState() != DialogState.CONFIRMED && this.getState() != DialogState.TERMINATED ) {
                    if (originalRequest != null) {
                        RecordRouteList rrList = originalRequest.getRecordRouteHeaders();
                        if (rrList != null) {
                            ListIterator<RecordRoute> it = rrList.listIterator(rrList.size());
                            while (it.hasPrevious()) {
                                RecordRoute rr = (RecordRoute) it.previous();
                                Route route = (Route) routeList.getFirst();
                                if (route != null && rr.getAddress().equals(route.getAddress())) {
                                    routeList.removeFirst();
View Full Code Here


        /*
         * Copy the record route headers from the request to the response ( Issue 160 ). Note that
         * other 1xx headers do not get their Record Route headers copied over but reliable
         * provisional responses do. See RFC 3262 Table 2.
         */
        RecordRouteList rrl = request.getRecordRouteHeaders();
        if (rrl != null) {
            RecordRouteList rrlclone = (RecordRouteList) rrl.clone();
            response.setHeader(rrlclone);
        }

        return response;
    }
View Full Code Here

      }
      throw new SipException("Cannot ACK a provisional response!");
    }
    SIPRequest ackRequest = originalRequest.createAckRequest((To) lastResponse.getTo());
    // Pull the record route headers from the last reesponse.
    RecordRouteList recordRouteList = lastResponse.getRecordRouteHeaders();
    if (recordRouteList == null) {
      // If the record route list is null then we can
      // construct the ACK from the specified contact header.
      // Note the 3xx check here because 3xx is a redirect.
      // The contact header for the 3xx is the redirected
      // location so we cannot use that to construct the
      // request URI.
      if (lastResponse.getContactHeaders() != null && lastResponse.getStatusCode() / 100 != 3) {
        Contact contact = (Contact) lastResponse.getContactHeaders().getFirst();
        javax.sip.address.URI uri = (javax.sip.address.URI) contact.getAddress().getURI().clone();
        ackRequest.setRequestURI(uri);
      }
      return ackRequest;
    }

    ackRequest.removeHeader(RouteHeader.NAME);
    RouteList routeList = new RouteList();
    // start at the end of the list and walk backwards
    ListIterator<RecordRoute> li = recordRouteList.listIterator(recordRouteList.size());
    while (li.hasPrevious()) {
      RecordRoute rr = (RecordRoute) li.previous();

      Route route = new Route();
      route.setAddress((AddressImpl) ((AddressImpl) rr.getAddress()).clone());
View Full Code Here

      throw new SipException("Cannot ACK a provisional response!");
    }
    SIPRequest ackRequest = originalRequest
        .createAckRequest((To) lastResponse.getTo());
    // Pull the record route headers from the last reesponse.
    RecordRouteList recordRouteList = lastResponse.getRecordRouteHeaders();
    if (recordRouteList == null) {
      // If the record route list is null then we can
      // construct the ACK from the specified contact header.
      // Note the 3xx check here because 3xx is a redirect.
      // The contact header for the 3xx is the redirected
      // location so we cannot use that to construct the
      // request URI.
      if (lastResponse.getContactHeaders() != null
          && lastResponse.getStatusCode() / 100 != 3) {
        Contact contact = (Contact) lastResponse.getContactHeaders()
            .getFirst();
        javax.sip.address.URI uri = (javax.sip.address.URI) contact
            .getAddress().getURI().clone();
        ackRequest.setRequestURI(uri);
      }
      return ackRequest;
    }

    ackRequest.removeHeader(RouteHeader.NAME);
    RouteList routeList = new RouteList();
    // start at the end of the list and walk backwards
    ListIterator<RecordRoute> li = recordRouteList
        .listIterator(recordRouteList.size());
    while (li.hasPrevious()) {
      RecordRoute rr = (RecordRoute) li.previous();

      Route route = new Route();
      route.setAddress((AddressImpl) ((AddressImpl) rr.getAddress())
View Full Code Here

                // only update the route set if the dialog is not in the
                // confirmed state.
                if ((this.getState() != DialogState.CONFIRMED && this
                        .getState() != DialogState.TERMINATED)
                        || this.pendingRouteUpdateOn202Response) {
                    RecordRouteList rrlist = sipResponse
                            .getRecordRouteHeaders();
                    // Add the route set from the incoming response in reverse
                    // order for record route headers.
                    if (rrlist != null) {
                        this.addRoute(rrlist);
View Full Code Here

        // Fix for issue #225: mustn't learn Route set from mid-dialog requests
        if (sipRequest.getToTag() != null)
            return;

        // Incoming Request has the route list
        RecordRouteList rrlist = sipRequest.getRecordRouteHeaders();
        // Add the route set from the incoming response in reverse
        // order
        if (rrlist != null) {
            this.addRoute(rrlist);
        } else {
View Full Code Here

         * Copy the record route headers from the request to the response (
         * Issue 160 ). Note that other 1xx headers do not get their Record
         * Route headers copied over but reliable provisional responses do. See
         * RFC 3262 Table 2.
         */
        RecordRouteList rrl = request.getRecordRouteHeaders();
        if (rrl != null) {
            RecordRouteList rrlclone = (RecordRouteList) rrl.clone();
            response.setHeader(rrlclone);
        }

        return response;
    }
View Full Code Here

                // only update the route set if the dialog is not in the confirmed state.
                if ((this.getState() != DialogState.CONFIRMED
                        && this.getState() != DialogState.TERMINATED) ||
                        this.pendingRouteUpdateOn202Response ) {
                    RecordRouteList rrlist = sipResponse.getRecordRouteHeaders();
                    // Add the route set from the incoming response in reverse
                    // order for record route headers.
                    if (rrlist != null) {
                        this.addRoute(rrlist);
                    } else {
View Full Code Here

       
        // Fix for issue #225: mustn't learn Route set from mid-dialog requests
        if ( sipRequest.getToTag()!=null ) return;
       
        // Incoming Request has the route list
        RecordRouteList rrlist = sipRequest.getRecordRouteHeaders();
        // Add the route set from the incoming response in reverse
        // order
        if (rrlist != null) {
            this.addRoute(rrlist);
        } else {
View Full Code Here

                 * record route headers present in the original request so the loop will not
                 * execute.
                 */
                if ( this.getState() != DialogState.CONFIRMED && this.getState() != DialogState.TERMINATED ) {
                    if (originalRequest != null) {
                        RecordRouteList rrList = originalRequest.getRecordRouteHeaders();
                        if (rrList != null) {
                            ListIterator<RecordRoute> it = rrList.listIterator(rrList.size());
                            while (it.hasPrevious()) {
                                RecordRoute rr = (RecordRoute) it.previous();
                                Route route = (Route) routeList.getFirst();
                                if (route != null && rr.getAddress().equals(route.getAddress())) {
                                    routeList.removeFirst();
View Full Code Here

TOP

Related Classes of gov.nist.javax.sip.header.RecordRouteList

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.