public Request createRequest(String method) throws SipException { if (method.equals(Request.ACK) || method.equals(Request.PRACK)) { throw new SipException( "Invalid method specified for createRequest:" + method); } if (lastResponseTopMostVia != null) return this.createRequest(method, this.lastResponseTopMostVia .getTransport()); else throw new SipException("Dialog not yet established -- no response!"); }
public boolean equals(Object other) { if (other==this) return true; if (other instanceof ViaHeader) { final ViaHeader o = (ViaHeader) other; return getProtocol().equalsIgnoreCase( o.getProtocol() ) && getTransport().equalsIgnoreCase( o.getTransport() ) && getHost().equalsIgnoreCase( o.getHost() ) && getPort() == o.getPort() && equalParameters( o ); } return false; }
/** * Updates the local dialog transient attributes that were not serialized during the replication * @param sipStackImpl the sip Stack Impl that reloaded this dialog from the distributed cache */ public void initAfterLoad(ClusteredSipStack sipStackImpl) { String transport = getLastResponseTopMostVia().getTransport(); Iterator<SipProviderImpl> providers = sipStackImpl.getSipProviders(); boolean providerNotFound = true; while(providers.hasNext()) { SipProviderImpl providerImpl = providers.next(); if(providerImpl.getListeningPoint(transport) != null) { setSipProvider(providerImpl); providerNotFound = false; } } if(providerNotFound) { throw new RuntimeException("No providers found for transport=" + transport + " on this node. Make sure connectors are configured for this transport"); } setStack((SIPTransactionStack)sipStackImpl); setAssigned(); firstTransactionPort = getSipProvider().getListeningPoint(getLastResponseTopMostVia().getTransport()).getPort(); ackProcessed = true; // ackSeen = true; }
.getHop()); this.peerPort = hop.getPort(); this.peerProtocol = topMostVia.getTransport(); this.peerAddress = packet.getAddress(); this.peerPort = packet.getPort(); this.peerProtocol = topMostVia.getTransport();
throw new SipException("Transaction exists -- cannot send response statelessly"); String transport = via.getTransport();
String inboundTransport = via.getTransport(); if(inboundTransport == null) inboundTransport = ListeningPoint.UDP;
this.peerProtocol = v.getTransport();
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; } }
if(topmostVia.getTransport() == null) topmostVia.setTransport(transport);
lp = (ListeningPointImpl) sipProvider.getListeningPoint(this.lastResponseTopMostVia.getTransport());