public void sendBye(String localSipURL, String remoteSipURL, ChatSession chatSession) { // Send a Bye only if there were exchanged messages!!! if (chatSession.isEstablishedSession()) { try { logger.debug("Sending a BYE in progress to " + remoteSipURL); SipProvider sipProvider = imUA.getSipProvider(); javax.sip.Dialog dialog = chatSession.getDialog(); Request request = dialog.createRequest(Request.BYE); // ProxyAuthorization header if not null: ProxyAuthorizationHeader proxyAuthHeader = imUA.getProxyAuthorizationHeader(); if (proxyAuthHeader != null) request.setHeader(proxyAuthHeader); ClientTransaction clientTransaction = sipProvider.getNewClientTransaction(request); dialog.sendRequest(clientTransaction); logger.debug("BYE sent:\n" + request); } catch (Exception ex) { ex.printStackTrace(); } } else { logger.debug("BYE not sent because of no exchanged messages!!!"); } }