Search in sources :

Example 1 with CallID

use of gov.nist.javax.sip.header.CallID in project XobotOS by xamarin.

the class SipProviderImpl method getNewCallId.

/*
     * (non-Javadoc)
     *
     * @see javax.sip.SipProvider#getNewCallId()
     */
public CallIdHeader getNewCallId() {
    String callId = Utils.getInstance().generateCallIdentifier(this.getListeningPoint().getIPAddress());
    CallID callid = new CallID();
    try {
        callid.setCallId(callId);
    } catch (java.text.ParseException ex) {
    }
    return callid;
}
Also used : CallID(gov.nist.javax.sip.header.CallID) ParseException(java.text.ParseException)

Example 2 with CallID

use of gov.nist.javax.sip.header.CallID in project XobotOS by xamarin.

the class SIPMessage method removeHeader.

/**
     * Remove a header given its name. If multiple headers of a given name are present then the
     * top flag determines which end to remove headers from.
     * 
     * @param headerName is the name of the header to remove.
     * @param top -- flag that indicates which end of header list to process.
     */
public void removeHeader(String headerName, boolean top) {
    String headerNameLowerCase = SIPHeaderNamesCache.toLowerCase(headerName);
    SIPHeader toRemove = (SIPHeader) nameTable.get(headerNameLowerCase);
    // nothing to do then we are done.
    if (toRemove == null)
        return;
    if (toRemove instanceof SIPHeaderList) {
        SIPHeaderList<?> hdrList = (SIPHeaderList<?>) toRemove;
        if (top)
            hdrList.removeFirst();
        else
            hdrList.removeLast();
        // Clean up empty list
        if (hdrList.isEmpty()) {
            Iterator<SIPHeader> li = this.headers.iterator();
            while (li.hasNext()) {
                SIPHeader sipHeader = (SIPHeader) li.next();
                if (sipHeader.getName().equalsIgnoreCase(headerNameLowerCase))
                    li.remove();
            }
            // JvB: also remove it from the nameTable! Else NPE in
            // DefaultRouter
            nameTable.remove(headerNameLowerCase);
        }
    } else {
        this.nameTable.remove(headerNameLowerCase);
        if (toRemove instanceof From) {
            this.fromHeader = null;
        } else if (toRemove instanceof To) {
            this.toHeader = null;
        } else if (toRemove instanceof CSeq) {
            this.cSeqHeader = null;
        } else if (toRemove instanceof CallID) {
            this.callIdHeader = null;
        } else if (toRemove instanceof MaxForwards) {
            this.maxForwardsHeader = null;
        } else if (toRemove instanceof ContentLength) {
            this.contentLengthHeader = null;
        }
        Iterator<SIPHeader> li = this.headers.iterator();
        while (li.hasNext()) {
            SIPHeader sipHeader = (SIPHeader) li.next();
            if (sipHeader.getName().equalsIgnoreCase(headerName))
                li.remove();
        }
    }
}
Also used : SIPHeaderList(gov.nist.javax.sip.header.SIPHeaderList) CSeq(gov.nist.javax.sip.header.CSeq) SIPHeader(gov.nist.javax.sip.header.SIPHeader) CallID(gov.nist.javax.sip.header.CallID) MaxForwards(gov.nist.javax.sip.header.MaxForwards) From(gov.nist.javax.sip.header.From) To(gov.nist.javax.sip.header.To) InReplyTo(gov.nist.javax.sip.header.InReplyTo) ContentLength(gov.nist.javax.sip.header.ContentLength)

Example 3 with CallID

use of gov.nist.javax.sip.header.CallID in project XobotOS by xamarin.

the class SIPMessage method removeHeader.

/**
     * Remove all headers given its name.
     * 
     * @param headerName is the name of the header to remove.
     */
public void removeHeader(String headerName) {
    if (headerName == null)
        throw new NullPointerException("null arg");
    String headerNameLowerCase = SIPHeaderNamesCache.toLowerCase(headerName);
    SIPHeader removed = (SIPHeader) nameTable.remove(headerNameLowerCase);
    // nothing to do then we are done.
    if (removed == null)
        return;
    // Remove the fast accessor fields.
    if (removed instanceof From) {
        this.fromHeader = null;
    } else if (removed instanceof To) {
        this.toHeader = null;
    } else if (removed instanceof CSeq) {
        this.cSeqHeader = null;
    } else if (removed instanceof CallID) {
        this.callIdHeader = null;
    } else if (removed instanceof MaxForwards) {
        this.maxForwardsHeader = null;
    } else if (removed instanceof ContentLength) {
        this.contentLengthHeader = null;
    }
    Iterator<SIPHeader> li = this.headers.iterator();
    while (li.hasNext()) {
        SIPHeader sipHeader = (SIPHeader) li.next();
        if (sipHeader.getName().equalsIgnoreCase(headerNameLowerCase))
            li.remove();
    }
}
Also used : CSeq(gov.nist.javax.sip.header.CSeq) SIPHeader(gov.nist.javax.sip.header.SIPHeader) CallID(gov.nist.javax.sip.header.CallID) MaxForwards(gov.nist.javax.sip.header.MaxForwards) From(gov.nist.javax.sip.header.From) To(gov.nist.javax.sip.header.To) InReplyTo(gov.nist.javax.sip.header.InReplyTo) ContentLength(gov.nist.javax.sip.header.ContentLength)

Example 4 with CallID

use of gov.nist.javax.sip.header.CallID in project XobotOS by xamarin.

the class SIPMessage method attachHeader.

/**
     * Attach the header to the SIP Message structure at a specified position in its list of
     * headers.
     * 
     * @param header Header to attach.
     * @param replaceFlag If true then replace the existing header.
     * @param top Location in the header list to insert the header.
     * @exception SIPDuplicateHeaderException if the header is of a type that cannot tolerate
     *            duplicates and one of this type already exists (e.g. CSeq header).
     * @throws IndexOutOfBoundsException If the index specified is greater than the number of
     *         headers that are in this message.
     */
public void attachHeader(SIPHeader header, boolean replaceFlag, boolean top) throws SIPDuplicateHeaderException {
    if (header == null) {
        throw new NullPointerException("null header");
    }
    SIPHeader h;
    if (ListMap.hasList(header) && !SIPHeaderList.class.isAssignableFrom(header.getClass())) {
        SIPHeaderList<SIPHeader> hdrList = ListMap.getList(header);
        hdrList.add(header);
        h = hdrList;
    } else {
        h = header;
    }
    String headerNameLowerCase = SIPHeaderNamesCache.toLowerCase(h.getName());
    if (replaceFlag) {
        nameTable.remove(headerNameLowerCase);
    } else if (nameTable.containsKey(headerNameLowerCase) && !(h instanceof SIPHeaderList)) {
        if (h instanceof ContentLength) {
            try {
                ContentLength cl = (ContentLength) h;
                contentLengthHeader.setContentLength(cl.getContentLength());
            } catch (InvalidArgumentException e) {
            }
        }
        // Just ignore duplicate header.
        return;
    }
    SIPHeader originalHeader = (SIPHeader) getHeader(header.getName());
    // Delete the original header from our list structure.
    if (originalHeader != null) {
        Iterator<SIPHeader> li = headers.iterator();
        while (li.hasNext()) {
            SIPHeader next = (SIPHeader) li.next();
            if (next.equals(originalHeader)) {
                li.remove();
            }
        }
    }
    if (!nameTable.containsKey(headerNameLowerCase)) {
        nameTable.put(headerNameLowerCase, h);
        headers.add(h);
    } else {
        if (h instanceof SIPHeaderList) {
            SIPHeaderList<?> hdrlist = (SIPHeaderList<?>) nameTable.get(headerNameLowerCase);
            if (hdrlist != null)
                hdrlist.concatenate((SIPHeaderList) h, top);
            else
                nameTable.put(headerNameLowerCase, h);
        } else {
            nameTable.put(headerNameLowerCase, h);
        }
    }
    // Direct accessor fields for frequently accessed headers.
    if (h instanceof From) {
        this.fromHeader = (From) h;
    } else if (h instanceof ContentLength) {
        this.contentLengthHeader = (ContentLength) h;
    } else if (h instanceof To) {
        this.toHeader = (To) h;
    } else if (h instanceof CSeq) {
        this.cSeqHeader = (CSeq) h;
    } else if (h instanceof CallID) {
        this.callIdHeader = (CallID) h;
    } else if (h instanceof MaxForwards) {
        this.maxForwardsHeader = (MaxForwards) h;
    }
}
Also used : SIPHeaderList(gov.nist.javax.sip.header.SIPHeaderList) CSeq(gov.nist.javax.sip.header.CSeq) CallID(gov.nist.javax.sip.header.CallID) MaxForwards(gov.nist.javax.sip.header.MaxForwards) From(gov.nist.javax.sip.header.From) InvalidArgumentException(javax.sip.InvalidArgumentException) SIPHeader(gov.nist.javax.sip.header.SIPHeader) ContentLength(gov.nist.javax.sip.header.ContentLength) To(gov.nist.javax.sip.header.To) InReplyTo(gov.nist.javax.sip.header.InReplyTo)

Example 5 with CallID

use of gov.nist.javax.sip.header.CallID in project XobotOS by xamarin.

the class SIPResponse method getDialogId.

public String getDialogId(boolean isServer, String toTag) {
    CallID cid = (CallID) this.getCallId();
    From from = (From) this.getFrom();
    StringBuffer retval = new StringBuffer(cid.getCallId());
    if (!isServer) {
        //retval.append(COLON).append(from.getUserAtHostPort());
        if (from.getTag() != null) {
            retval.append(COLON);
            retval.append(from.getTag());
        }
        //retval.append(COLON).append(to.getUserAtHostPort());
        if (toTag != null) {
            retval.append(COLON);
            retval.append(toTag);
        }
    } else {
        //retval.append(COLON).append(to.getUserAtHostPort());
        if (toTag != null) {
            retval.append(COLON);
            retval.append(toTag);
        }
        //retval.append(COLON).append(from.getUserAtHostPort());
        if (from.getTag() != null) {
            retval.append(COLON);
            retval.append(from.getTag());
        }
    }
    return retval.toString().toLowerCase();
}
Also used : CallID(gov.nist.javax.sip.header.CallID) From(gov.nist.javax.sip.header.From)

Aggregations

CallID (gov.nist.javax.sip.header.CallID)7 From (gov.nist.javax.sip.header.From)5 To (gov.nist.javax.sip.header.To)4 CSeq (gov.nist.javax.sip.header.CSeq)3 ContentLength (gov.nist.javax.sip.header.ContentLength)3 InReplyTo (gov.nist.javax.sip.header.InReplyTo)3 MaxForwards (gov.nist.javax.sip.header.MaxForwards)3 SIPHeader (gov.nist.javax.sip.header.SIPHeader)3 SIPHeaderList (gov.nist.javax.sip.header.SIPHeaderList)2 ParseException (java.text.ParseException)1 InvalidArgumentException (javax.sip.InvalidArgumentException)1 TimeStampHeader (javax.sip.header.TimeStampHeader)1