code: private void handleInCancellingState(final SipPacket msg) throws SipPacketParseException {
  
          // we don't move over to cancelled state even if
          // we receive a 200 OK to the cancel request.
          // therefore, not even checking it...
          if (msg.isCancel()) {
              transition(CallState.CANCELLING, msg);
              return;
          }
  
          if (msg.isRequest()) {
  
          } else {
              final SipResponsePacket response = msg.toResponse();
              if (response.isInvite()) {
                  if (response.getStatus() == 487) {
                      transition(CallState.CANCELLED, msg);
                  } else if (response.isSuccess()) {
                      // the cancel didn't make it over in time
                      // so we never cancelled, hence we move
                      // to in call
                      transition(CallState.IN_CALL, msg);
                  }
              }
  
          }
  
      }
docs: When in the cancelling state, we may actually end up going back to
  IN_CALL in case we see a 2xx to the invite so pay attention for that.
  
  @param msg
  @throws SipPacketParseException