/** * Return a list of encoded strings (one for each sipheader). * * @return LinkedList containing encoded strings in this header list. an * empty list is returned if this header list contains no sip * headers. */ public List<String> getHeadersAsEncodedStrings() { List<String> retval = new LinkedList<String>(); ListIterator<HDR> li = hlist.listIterator(); while (li.hasNext()) { Header sipheader = li.next(); retval.add(sipheader.toString()); } return retval; }
protected final SIPHeaderList<HDR> clonehlist(List<HDR> hlistToClone) { if (hlistToClone != null) { for (Iterator<HDR> it = (Iterator<HDR>) hlistToClone.iterator(); it.hasNext();) { Header h = it.next(); this.hlist.add((HDR)h.clone()); } } return this; }
protected static Parameterable createParameterable(Header header, String hName, boolean isRequest) throws ServletParseException { String whole = header.toString(); if (logger.isDebugEnabled()) logger.debug("Creating parametrable for [" + hName + "] from [" value = displayName.concat(value); final String headerName = header.getName(); final boolean isNotModifiable = JainSipUtils.SYSTEM_HEADERS.contains(headerName); ModifiableRule modifiableRule = isNotModifiable ? ModifiableRule.NotModifiable : ModifiableRule.Modifiable;
final Header header = sipFactoryImpl.getHeaderFactory().createHeader( headerName, value); if(! JainSipUtils.SINGLETON_HEADER_NAMES.contains(header.getName())) { newRequest.addHeader(header); } else {
Header header2 = headerFactory.createHeader(hname, UriDecoder.decode(h2)); if (!header1.equals(header2)) return false; } catch (ParseException e) { Debug.logError("Cannot parse one of the header of the sip uris to compare " + a + " " + b, e);
/** * {@inheritDoc} */ public Parameterable createParameterable(String value) throws ServletParseException { try { Header header = SipFactoryImpl.headerFactory.createHeader(ContactHeader.NAME, value); return SipServletMessageImpl.createParameterable(header, SipServletMessageImpl.getFullHeaderName(header.getName()), true); } catch (ParseException e) { try { Header header = SipFactoryImpl.headerFactory.createHeader(ContentTypeHeader.NAME, value); return SipServletMessageImpl.createParameterable(header, SipServletMessageImpl.getFullHeaderName(header.getName()), true); } catch (ParseException pe) { // Contribution from Nishihara, Naoki from Japan for Issue http://code.google.com/p/mobicents/issues/detail?id=1856 // Cannot create a parameterable header for Session-Expires try { Header header = SipFactoryImpl.headerFactory.createHeader(ContentDispositionHeader.NAME, value); return SipServletMessageImpl.createParameterable(header, SipServletMessageImpl.getFullHeaderName(header.getName()), true); } catch (ParseException pe2) { throw new ServletParseException("Impossible to parse the following parameterable "+ value , pe2); } } } }
/** * @param request * @return */ private boolean securityCheck(Request request) { // User-Agent: sipcli/v1.8 // User-Agent: friendly-scanner // To: "sipvicious" <sip:100@1.1.1.1> // From: "sipvicious" <sip:100@1.1.1.1>;tag=3336353363346565313363340133313330323436343236 // From: "1" <sip:1@87.202.36.237>;tag=3e7a78de Header userAgentHeader = request.getHeader("User-Agent"); Header toHeader = request.getHeader("To"); Header fromHeader = request.getHeader("From"); for (String blockedValue: blockedList){ if(userAgentHeader != null && userAgentHeader.toString().toLowerCase().contains(blockedValue.toLowerCase())) { return false; } else if (toHeader != null && toHeader.toString().toLowerCase().contains(blockedValue.toLowerCase())) { return false; } else if (fromHeader != null && fromHeader.toString().toLowerCase().contains(blockedValue.toLowerCase())) { return false; } } return true; }
@Override public Object clone() { ParameterableHeaderImpl cloned = new ParameterableHeaderImpl(); cloned.parameters = cloneParameters(super.parameters); cloned.value = this.value; cloned.header = (Parameters)((Header)super.header).clone(); return cloned; }
Parameterable parametrable = createParameterable(header, header.getName(), message instanceof Request); try { AddressImpl addressImpl = new AddressImpl(SipFactoryImpl.addressFactory.createAddress(parametrable.getValue()), ((ParameterableHeaderImpl)parametrable).getInternalParameters(), getModifiableRule(hName));
@Override public String getHeaderAsFormattedString(String name) { if(!headersToParse.contains(name.toLowerCase())) { String unparsedHeader = delegate.getHeaderUnparsed(name.toLowerCase()); if(unparsedHeader != null) { return unparsedHeader; } } String lowerCaseName = name.toLowerCase(); if (this.headerTable.containsKey(lowerCaseName)) { return this.headerTable.get(lowerCaseName).toString(); } else { return this.getHeader(name).toString(); } }
Parameterable parametrable = createParameterable(first, first.getName(), message instanceof Request); try { logger.debug("parametrable Value " + parametrable.getValue());
@Override public String getHeaderAsFormattedString(String name) { if(!headersToParse.contains(name.toLowerCase())) { String unparsedHeader = delegate.getHeaderUnparsed(name.toLowerCase()); if(unparsedHeader != null) { return unparsedHeader; } } String lowerCaseName = name.toLowerCase(); if (this.headerTable.containsKey(lowerCaseName)) { return this.headerTable.get(lowerCaseName).toString(); } else { return this.getHeader(name).toString(); } }
/** * Get a header of the given name as a string. This concatenates the headers of a given type * as a comma separted list. This is useful for formatting and printing headers. * * @param name * @return the header as a formatted string */ public String getHeaderAsFormattedString(String name) { String lowerCaseName = SIPHeaderNamesCache.toLowerCase(name); if (this.headerTable.containsKey(lowerCaseName)) { return this.headerTable.get(lowerCaseName).toString(); } else { return this.getHeader(name).toString(); } }