@Test
  public void testInviteByeLandOnDifferentNodes() throws Exception {
    EventListener failureEventListener =
        new EventListener() {

          @Override
          public void uasAfterResponse(int statusCode, AppServer source) {}

          @Override
          public void uasAfterRequestReceived(String method, AppServer source) {
            if (method.equals("INVITE")) invite = source;
            if (method.equals("ACK")) ack = source;
            if (method.equals("BYE")) bye = source;
          }

          @Override
          public void uacAfterRequestSent(String method, AppServer source) {
            // TODO Auto-generated method stub

          }

          @Override
          public void uacAfterResponse(int statusCode, AppServer source) {
            // TODO Auto-generated method stub

          }
        };
    for (AppServer as : servers) as.setEventListener(failureEventListener);

    shootist.callerSendsBye = true;
    shootist.sendInitialInvite();
    Thread.sleep(9000);
    shootist.sendBye();
    Thread.sleep(2000);
    assertNotNull(invite);
    assertNotNull(bye);
    assertEquals(ack, invite);
    assertNotEquals(bye, invite);
  }