public final String getMethod() { if(method == null) { method = message instanceof Request ? ((Request) message).getMethod() : ((CSeqHeader) message.getHeader(CSeqHeader.NAME)).getMethod(); } return method; }
/** * Compare two cseq headers for equality. * @param other Object to compare against. * @return true if the two cseq headers are equals, false * otherwise. */ public boolean equals(Object other) { if (other instanceof CSeqHeader) { final CSeqHeader o = (CSeqHeader) other; return this.getSeqNumber() == o.getSeqNumber() && this.getMethod().equals( o.getMethod() ); } return false; }
public void on2xxResponse(ResponseEvent event, ActivityContextInterface aci) { final CSeqHeader cseq = (CSeqHeader) event.getResponse().getHeader( CSeqHeader.NAME); if (cseq.getMethod().equals(Request.INVITE)) { // lets ack it ourselves to avoid UAS retransmissions due to // forwarding of this response and further UAC Ack // note that the app does not handles UAC ACKs try { final Request ack = event.getDialog().createAck( cseq.getSeqNumber()); event.getDialog().sendAck(ack); } catch (Exception e) { tracer.severe("Unable to ack INVITE's 200 ok from UAS", e); } } else if (cseq.getMethod().equals(Request.BYE) || cseq.getMethod().equals(Request.CANCEL)) { // not forwarded to the other dialog return; } processResponse(event, aci); }
public void checkRetransmissionForForking(SIPResponse response) { final int statusCode = response.getStatusCode(); final String responseMethod = response.getCSeqHeader().getMethod(); final long responseCSeqNumber = response.getCSeq().getSeqNumber(); boolean isRetransmission = !responsesReceivedInForkingCase.add(statusCode + "/" + responseCSeqNumber + "/" + responseMethod); response.setRetransmission(isRetransmission); if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug( "marking response as retransmission " + isRetransmission + " for dialog " + this); } }
if(Request.CANCEL.equalsIgnoreCase(cSeqHeader.getMethod())) { if(logger.isDebugEnabled()) { logger.debug("the response is dropped accordingly to JSR 289 " +
ContentTypeHeader cth = sipFactoryImpl.getHeaderFactory().createContentTypeHeader("orphan", "orphan"); try { Request r = sipFactoryImpl.getMessageFactory().createRequest(uri, cseq.getMethod(), callid, cseq, fromHeader, toHeader, vialist, mf, cth, new byte[]{}); SipServletRequestImpl req = (SipServletRequestImpl) sipFactoryImpl.getMobicentsSipServletMessageFactory().createSipServletRequest(r, null, null, dialog, false); req.setOrphan(true);
logger.logDebug("sendMessage:: " + sipMessage.getFirstLine() + " cseq method = " + sipMessage.getCSeq().getMethod());
/** * create a sip dialog with a response ( no tx) */ public SIPDialog(SipProviderImpl sipProvider, SIPResponse sipResponse) { this(sipProvider); this.sipStack = (SIPTransactionStack) sipProvider.getSipStack(); this.setLastResponse(null, sipResponse); this.localSequenceNumber = sipResponse.getCSeq().getSeqNumber(); this.originalLocalSequenceNumber = localSequenceNumber; this.localParty = sipResponse.getFrom().getAddress(); this.remoteParty = sipResponse.getTo().getAddress(); this.method = sipResponse.getCSeq().getMethod(); this.callIdHeader = sipResponse.getCallId(); this.serverTransactionFlag = false; this.setLocalTag(sipResponse.getFrom().getTag()); this.setRemoteTag(sipResponse.getTo().getTag()); if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) { logger.logDebug("Creating a dialog : " + this); logger.logStackTrace(); } this.isBackToBackUserAgent = sipStack.isBackToBackUserAgent; addEventListener(sipStack); releaseReferencesStrategy = sipStack.getReleaseReferencesStrategy(); }
String cseqMethod = sipResponse.getCSeqHeader().getMethod(); this.lastResponseMethod = cseqMethod; long responseCSeqNumber = sipResponse.getCSeq().getSeqNumber(); if (sipResponse.getCSeq().getMethod().equals(Request.INVITE) && transaction != null && transaction instanceof ClientTransaction && this.getState() != DialogState.TERMINATED) { this.acquireTimerTaskSem();
if (sipResponse.getCSeq().getMethod() .equals(Request.INVITE) && sipDialog != null
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; } }
SIPDialog sipDialog = this.sipStack.getDialog(dialogID); String method = sipResponse.getCSeq().getMethod(); if (logger.isLoggingEnabled(LogLevels.TRACE_DEBUG)) { logger.logDebug( && sipResponse.getCSeq().getMethod().equals( Request.INVITE)) { try { && sipResponse.getCSeq().getMethod().equals( sipDialog.getMethod())) { try { && SIPTransactionStack.isDialogCreated(sipResponse.getCSeqHeader().getMethod())) { ClientTransactionExt originalTx = this.sipStack .getForkedTransaction(sipResponse.getForkId());
&& response.getCSeq().getMethod().equals( dialog.getMethod())) { try { && SIPTransactionStack.isDialogCreated(response.getCSeqHeader().getMethod())) { if (logger.isLoggingEnabled(LogLevels.TRACE_DEBUG)) { logger.logDebug("Trying to find forked Transaction for forked id " + response.getForkId()); (ClientTransactionExt) transaction, dialog, (Response) response); if (sipStack.getMaxForkTime() != 0 && SIPTransactionStack.isDialogCreated(response.getCSeqHeader().getMethod())) { SIPClientTransaction forked = this.sipStack .getForkedTransaction(response.getForkId());
if (contactList != null && SIPRequest.isTargetRefresh(sipResponse.getCSeq() .getMethod())) { this.setRemoteTarget((ContactHeader) contactList .getFirst());