Esempio n. 1
0
  SocketAddress getDestinationAddress(final Message message, final JID sender) {

    if (message.getSendTo() != null) {
      log.debug("Using sendTo Value for: " + message.toString());
      return message.getSendTo();
    }

    final SipAccount sipAccount = sipAccountProvider.getSipAccount(sender);
    if (sipAccount != null) {
      log.debug("Using sipAccount Value for: " + message.toString());
      final SocketAddress result =
          CachedAddressResolver.getInstance().getSocketAddress(sipAccount.getOutboundproxy());
      message.setSendTo(result);
      return result;
    }

    if (message.getToHeader() != null) {
      log.debug("Using message Header Value for: " + message.toString());
      SipURL sipUrl =
          message.getContactHeader() != null
              ? message.getContactHeader().getNameAddress().getAddress()
              : null;
      if (sipUrl == null) {
        if (message.isRequest()) {
          sipUrl = message.getFromHeader().getNameAddress().getAddress();
        } else {
          sipUrl = message.getFromHeader().getNameAddress().getAddress();
        }
      }
      final SocketAddress result =
          CachedAddressResolver.getInstance()
              .getSIPSocketAddress(sipUrl.getHost(), sipUrl.getPort());
      message.setSendTo(result);
      return result;
    }

    return null;
  }
Esempio n. 2
0
 public void cleanUpCachedAddressResolver() {
   CachedAddressResolver.getInstance().cleanUp();
 }