Package gov.nist.javax.sip.header

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


      // 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());
      route.setParameters((NameValueList) rr.getParameters().clone());
      routeList.add(route);
    }

    Contact contact = null;
    if (lastResponse.getContactHeaders() != null) {
      contact = (Contact) lastResponse.getContactHeaders().getFirst();
    }

    if (!((SipURI) ((Route) routeList.getFirst()).getAddress().getURI()).hasLrParam()) {

      // Contact may not yet be there (bug reported by Andreas B).

      Route route = null;
      if (contact != null) {
        route = new Route();
        route.setAddress((AddressImpl) ((AddressImpl) (contact.getAddress())).clone());
      }

      Route firstRoute = (Route) routeList.getFirst();
      routeList.removeFirst();
      javax.sip.address.URI uri = firstRoute.getAddress().getURI();
      ackRequest.setRequestURI(uri);

      if (route != null)
        routeList.add(route);

      ackRequest.addHeader(routeList);
    } else {
      if (contact != null) {
        javax.sip.address.URI uri = (javax.sip.address.URI) contact.getAddress().getURI().clone();
        ackRequest.setRequestURI(uri);
        ackRequest.addHeader(routeList);
      }
    }
    return ackRequest;
View Full Code Here


      // 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());
      route.setParameters((NameValueList) rr.getParameters().clone());
      routeList.add(route);
    }

    Contact contact = null;
    if (lastResponse.getContactHeaders() != null) {
      contact = (Contact) lastResponse.getContactHeaders().getFirst();
    }

    if (!((SipURI) ((Route) routeList.getFirst()).getAddress().getURI())
        .hasLrParam()) {

      // Contact may not yet be there (bug reported by Andreas B).

      Route route = null;
      if (contact != null) {
        route = new Route();
        route.setAddress((AddressImpl) ((AddressImpl) (contact
            .getAddress())).clone());
      }

      Route firstRoute = (Route) routeList.getFirst();
      routeList.removeFirst();
      javax.sip.address.URI uri = firstRoute.getAddress().getURI();
      ackRequest.setRequestURI(uri);

      if (route != null)
        routeList.add(route);

      ackRequest.addHeader(routeList);
    } else {
      if (contact != null) {
        javax.sip.address.URI uri = (javax.sip.address.URI) contact
            .getAddress().getURI().clone();
        ackRequest.setRequestURI(uri);
        ackRequest.addHeader(routeList);
      }
    }
View Full Code Here

         * target refresh for subscribe dialogs from the client side. This
         * modifies the remote target URI potentially
         */
        if (contactList != null) {

            Contact contact = (Contact) contactList.getFirst();
            this.setRemoteTarget(contact);

        }

    }
View Full Code Here

         * not the dialog does not belong to this request. We check this
         * condition if a contact address has been assigned to the dialog.
         * Forgive the sins of B2BUA's that like to record route ACK's
         */
        if (dialog != null && sipProvider != dialog.getSipProvider()) {
            final Contact contact = dialog.getMyContactHeader();
            if (contact != null) {
                SipUri contactUri = (SipUri) (contact.getAddress().getURI());
                String ipAddress = contactUri.getHost();
                int contactPort = contactUri.getPort();
                String contactTransport = contactUri.getTransportParam();
                if (contactTransport == null)
                    contactTransport = "udp";
View Full Code Here

            int port = this.getPort();
            SipURI sipURI = new SipUri();
            sipURI.setHost(ipAddress);
            sipURI.setPort(port);
            sipURI.setTransportParam(this.transport);
            Contact contact = new Contact();
            AddressImpl address = new AddressImpl();
            address.setURI(sipURI);
            contact.setAddress(address);
           
            return contact;
        } catch (Exception ex) {
            InternalErrorHandler.handleException("Unexpected exception",sipStack.getStackLogger());
            return null;
View Full Code Here

         * Check if we got this request on the contact address of the dialog If not the dialog
         * does not belong to this request. We check this condition if a contact address has been
         * assigned to the dialog. Forgive the sins of B2BUA's that like to record route ACK's
         */
        if (dialog != null && sipProvider != dialog.getSipProvider()) {
            Contact contact = dialog.getMyContactHeader();
            if (contact != null) {
                SipUri contactUri = (SipUri) (contact.getAddress().getURI());
                String ipAddress = contactUri.getHost();
                int contactPort = contactUri.getPort();
                String contactTransport = contactUri.getTransportParam();
                if (contactTransport == null)
                    contactTransport = "udp";
View Full Code Here

         * INVITE is the target refresh for INVITE dialogs. SUBSCRIBE is the target refresh for
         * subscribe dialogs from the client side. This modifies the remote target URI potentially
         */
        if (contactList != null) {

            Contact contact = (Contact) contactList.getFirst();
            this.setRemoteTarget(contact);

        }

    }
View Full Code Here

         * Check if we got this request on the contact address of the dialog If not the dialog
         * does not belong to this request. We check this condition if a contact address has been
         * assigned to the dialog. Forgive the sins of B2BUA's that like to record route ACK's
         */
        if (dialog != null && sipProvider != dialog.getSipProvider()) {
            Contact contact = dialog.getMyContactHeader();
            if (contact != null) {
                SipUri contactUri = (SipUri) (contact.getAddress().getURI());
                String ipAddress = contactUri.getHost();
                int contactPort = contactUri.getPort();
                String contactTransport = contactUri.getTransportParam();
                if (contactTransport == null)
                    contactTransport = "udp";
View Full Code Here

    public SIPHeader parse() throws ParseException {
        // past the header name and the colon.
        headerName(TokenTypes.CONTACT);
        ContactList retval = new ContactList();
        while (true) {
            Contact contact = new Contact();
            if (lexer.lookAhead(0) == '*') {
                final char next = lexer.lookAhead(1);
                if (next == ' ' || next == '\t' || next == '\r' || next == '\n') {
                    this.lexer.match('*');
                    contact.setWildCardFlag(true);
                } else {
                    super.parse(contact);
                }
            } else {
                super.parse(contact);
View Full Code Here

            int port = this.getPort();
            SipURI sipURI = new SipUri();
            sipURI.setHost(ipAddress);
            sipURI.setPort(port);
            sipURI.setTransportParam(this.transport);
            Contact contact = new Contact();
            AddressImpl address = new AddressImpl();
            address.setURI(sipURI);
            contact.setAddress(address);
           
            return contact;
        } catch (Exception ex) {
            InternalErrorHandler.handleException("Unexpected exception",logger);
            return null;
View Full Code Here

TOP

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

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.