/** * * @return -- the collection of dialogs matching the state that is being * managed by the stack. */ public Collection<Dialog> getDialogs(DialogState state) { HashSet<Dialog> matchingDialogs = new HashSet<Dialog>(); if (DialogState.EARLY.equals(state)) { matchingDialogs.addAll(this.earlyDialogTable.values()); } else { Collection<SIPDialog> dialogs = dialogTable.values(); for (SIPDialog dialog : dialogs) { if (dialog.getState() != null && dialog.getState().equals(state)) { matchingDialogs.add(dialog); } } } return matchingDialogs; }
@Override public void runTask() { try { if (SIPDialog.this.getState().equals(DialogState.EARLY)) { SIPDialog.this .raiseErrorEvent(SIPDialogErrorEvent.EARLY_STATE_TIMEOUT); } else { if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug("EarlyStateTimerTask : Dialog state is " + SIPDialog.this.getState()); } } } catch (Exception ex) { logger.logError( "Unexpected exception delivering event", ex); } }
if(!notifiedApplication && sipSession.getProxy() == null && dialog != null && dialog.getState() != null && !dialog.getState().equals(DialogState.TERMINATED)) {
cleanDialogInformation(true); if(!DialogState.TERMINATED.equals(sessionCreatingDialog.getState())) { sessionCreatingDialog.delete();
} else if(joinReplacesDialog != null && DialogState.TERMINATED.equals(joinReplacesDialog.getState())) {
if(sessionCreatingDialog != null && DialogState.TERMINATED.equals(sessionCreatingDialog.getState()) && !method.equalsIgnoreCase(Request.BYE)) { (!DialogState.TERMINATED.equals(sessionCreatingDialog.getState()) || (DialogState.TERMINATED.equals(sessionCreatingDialog.getState()) && method.equalsIgnoreCase(Request.BYE)))) {
&& getState().equals(DialogState.EARLY) && is100ClassResponse) {
.getState().equals(DialogState.TERMINATED))) && (sipResponse.getStatusCode() == Response.CALL_OR_TRANSACTION_DOES_NOT_EXIST || sipResponse .getStatusCode() == Response.REQUEST_TIMEOUT)) {
public Request createPrack(Response relResponse) throws DialogDoesNotExistException, SipException { if (this.getState() == null || this.getState().equals(DialogState.TERMINATED)) throw new DialogDoesNotExistException( "Dialog not initialized or terminated"); if ((RSeq) relResponse.getHeader(RSeqHeader.NAME) == null) { throw new SipException("Missing RSeq Header"); } try { SIPResponse sipResponse = (SIPResponse) relResponse; SIPRequest sipRequest = this.createRequest(Request.PRACK, sipResponse.getTopmostVia().getTransport()); String toHeaderTag = sipResponse.getTo().getTag(); sipRequest.setToTag(toHeaderTag); RAck rack = new RAck(); RSeq rseq = (RSeq) relResponse.getHeader(RSeqHeader.NAME); rack.setMethod(sipResponse.getCSeq().getMethod()); rack.setCSequenceNumber((int) sipResponse.getCSeq().getSeqNumber()); rack.setRSequenceNumber(rseq.getSeqNumber()); sipRequest.setHeader(rack); if (this.proxyAuthorizationHeader != null) { sipRequest.addHeader(proxyAuthorizationHeader); } return (Request) sipRequest; } catch (Exception ex) { InternalErrorHandler.handleException(ex); return null; } }