private void rejectJoiningFMUCNode( @Nonnull final Presence joinRequest, @Nullable final String rejectionMessage )
    {
        Log.trace("(room: '{}'): Rejecting FMUC join request from '{}'.", room.getJID(), joinRequest.getFrom().asBareJID() );
        final Presence rejection = new Presence();
        rejection.setTo( joinRequest.getFrom() );
        rejection.setFrom( this.room.getJID() );
        final Element rejectEl = rejection.addChildElement( FMUC.getName(), FMUC.getNamespaceURI() ).addElement("reject");
        if ( rejectionMessage != null && !rejectionMessage.trim().isEmpty() ) {
            rejectEl.setText( rejectionMessage );
        }
        XMPPServer.getInstance().getPacketRouter().route( rejection );
    }
Sends a stanza back to a remote, joining FMUC node that represents rejection of an FMUC join request.

@param joinRequest The request to join that is being rejected
@param rejectionMessage An optional, human readable message that describes the reason for the rejection.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/FMUCHandler.java