code: public Address getRemoteParty() {
  		if(sessionCreatingDialog != null) {
  			return new AddressImpl(sessionCreatingDialog.getRemoteParty(), null, ModifiableRule.NotModifiable);
  		} else if (sessionCreatingTransactionRequest != null){
  			try {
  				if(!isSessionCreatingTransactionServer) {
  					ToHeader toHeader = (ToHeader)sessionCreatingTransactionRequest.getMessage().getHeader(ToHeader.NAME);
  					return new AddressImpl(toHeader.getAddress(), AddressImpl.getParameters((Parameters)toHeader),  ModifiableRule.NotModifiable);
  				} else {
  					FromHeader fromHeader = (FromHeader)sessionCreatingTransactionRequest.getMessage().getHeader(FromHeader.NAME);
  					return new AddressImpl(fromHeader.getAddress(), AddressImpl.getParameters((Parameters)fromHeader),  ModifiableRule.NotModifiable);
  				}
  			} catch(Exception e) {
  				throw new IllegalArgumentException("Error creating Address", e);
  			}
  		} else {
  			return remoteParty;
  		}
  	}
docs: /*
  (non-Javadoc)
  @see javax.servlet.sip.SipSession#getRemoteParty()