コード例 #1
0
  public void sendDeny(MsnP2PSlpMessage msg) {
    MsnslpRequest msnslpRequest = (MsnslpRequest) msg.getSlpMessage();
    MsnslpResponse okSlpMessage = new MsnslpResponse();
    okSlpMessage.setStatusCode(405);
    okSlpMessage.setReasonPhrase("Not supported");
    okSlpMessage.setTo(msnslpRequest.getFrom());
    okSlpMessage.setFrom(msnslpRequest.getTo());
    okSlpMessage.setVia(msnslpRequest.getVia());
    okSlpMessage.setCSeq(msnslpRequest.getCSeq() + 1);
    okSlpMessage.setCallId(msnslpRequest.getCallId());
    okSlpMessage.setMaxForwards(msnslpRequest.getMaxForwards());
    okSlpMessage.setContentType(msnslpRequest.getContentType());

    StringHolder body = new StringHolder();
    body.setProperty("SessionID", fileTransfer.getID());
    okSlpMessage.setBody(body.toString() + JmlConstants.LINE_SEPARATOR + "\0");

    int okSlpMessageLength = Charset.encodeAsByteArray(okSlpMessage.toString()).length;

    MsnP2PSlpMessage okMessage = new MsnP2PSlpMessage();
    okMessage.setSlpMessage(okSlpMessage);
    okMessage.setIdentifier(getNextIdentifier());
    okMessage.setTotalLength(okSlpMessageLength);
    okMessage.setCurrentLength(okSlpMessageLength);
    okMessage.setField7(NumberUtils.getIntRandom());
    okMessage.setP2PDest(fileTransfer.getEmail().getEmailAddress());

    OutgoingMSG[] outgoingOkMessages =
        okMessage.toOutgoingMsg(fileTransfer.getSession().getMessenger().getActualMsnProtocol());
    for (OutgoingMSG outgoingOkMessage : outgoingOkMessages) {
      fileTransfer.getSession().sendSynchronousMessage(outgoingOkMessage);
    }
  }