public void processResponse(ResponseEvent responseReceivedEvent) {
Response response = (Response) responseReceivedEvent.getResponse();
System.out.println("Got a response " + response);
Transaction tid = responseReceivedEvent.getClientTransaction();
logger.info("Response received with client transaction id "
+ tid + ":\n" + response);
try {
if (response.getStatusCode() == Response.OK
&& ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
.getMethod().equals(Request.INVITE)) {
Dialog dialog = tid.getDialog();
CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
Request ackRequest = dialog.createAck(cseq.getSeqNumber());
dialog.sendAck(ackRequest);
}
if ( tid != null ) {
Dialog dialog = tid.getDialog();
logger.info("Dialog State = " + dialog.getState());
}
} catch (Exception ex) {
String s = "Unexpected exception";
logger.error(s,ex);