Example usage for io.netty.handler.codec.rtsp RtspResponseStatuses HEADER_FIELD_NOT_VALID

List of usage examples for io.netty.handler.codec.rtsp RtspResponseStatuses HEADER_FIELD_NOT_VALID

Introduction

In this page you can find the example usage for io.netty.handler.codec.rtsp RtspResponseStatuses HEADER_FIELD_NOT_VALID.

Prototype

HttpResponseStatus HEADER_FIELD_NOT_VALID

To view the source code for io.netty.handler.codec.rtsp RtspResponseStatuses HEADER_FIELD_NOT_VALID.

Click Source Link

Document

456 Header Field Not Valid for Resource

Usage

From source file:sas.systems.unveiled.server.RtspMessageHandler.java

License:Apache License

@Override
public void announceRequestReceived(HttpRequest message, RtspParticipant participant) {
    final String seq = message.headers().get(RtspHeaders.Names.CSEQ);
    final String contentType = message.headers().get(RtspHeaders.Names.CONTENT_TYPE);
    final String authorization = message.headers().get(RtspHeaders.Names.AUTHORIZATION);

    System.out.println(message);//from   www. jav a  2s  .  c  o  m

    if (authorization == null) {
        participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
        return;
    } else {
        if (!isAuthorized(authorization)) {
            participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
            return;
        }
    }

    if (message instanceof FullHttpRequest) {
        final FullHttpRequest fullResponse = (FullHttpRequest) message;
        final ByteBuf content = fullResponse.content();

        if (seq != null && contentType != null && contentType.contains("sdp") && content != null) {
            // parse announce content
            final String fileName = retrieveFileName(fullResponse.getUri());
            final SdpParser parser = new SdpParser(content);
            final String sessionId = participant.setup();

            // setup stream handler with content of announce request 
            final FileStreamHandler streamHandler = new FileStreamHandler(this.sm, participant);
            streamHandler.setFileName(fileName);
            streamHandler.setPayloadType(parser.getMediaType());
            streamHandler.setAuthor(retrieveUsername(authorization));
            streamHandler.setMediaType("video/mp4");

            // save session info
            this.sessions.put(sessionId, streamHandler);

            // send response
            try {
                int cseq = Integer.valueOf(seq);
                participant.sendMessage(createAnnounceResponse(cseq, sessionId));
                return;
            } catch (NumberFormatException e) {
                // send error message
                participant.sendMessage(
                        createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
                return;
            }
        }
    }

    // otherwise send error message
    participant.sendMessage(createErrorResponse(RtspResponseStatuses.BAD_REQUEST, message.headers()));
}

From source file:sas.systems.unveiled.server.RtspMessageHandler.java

License:Apache License

@Override
public void setupRequestReceived(HttpRequest message, RtspParticipant participant) {
    final String seq = message.headers().get(RtspHeaders.Names.CSEQ);
    final String session = message.headers().get(RtspHeaders.Names.SESSION);
    final String authorization = message.headers().get(RtspHeaders.Names.AUTHORIZATION);
    final String transport = message.headers().get(RtspHeaders.Names.TRANSPORT);

    System.out.println(message);/*from   w ww . j  a  va 2s .co m*/

    // check authorization
    if (authorization == null) {
        participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
        return;
    } else {
        if (!isAuthorized(authorization)) {
            participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
            return;
        }
    }

    // extract transport information
    if (seq != null && session != null && transport != null) {
        int cseq = 0;
        try {
            cseq = Integer.valueOf(seq);
        } catch (NumberFormatException e) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
            return;
        }
        FileStreamHandler handler = this.sessions.get(session);
        if (handler == null) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.SESSION_NOT_FOUND, message.headers()));
            return;
        }

        // parse transport header and validate entries
        final InetSocketAddress remote = (InetSocketAddress) participant.getRemoteAddress();
        final boolean validationError = parseTransportHeader(transport, handler.getParticipant(),
                remote.getHostName());
        if (!validationError) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
            return;
        }

        participant.sendMessage(
                createSetupResponse(cseq, session, buildTransportString(transport, handler.getSsrc() + "")));
    }

    // send error message
    participant.sendMessage(createErrorResponse(RtspResponseStatuses.BAD_REQUEST, message.headers()));
}

From source file:sas.systems.unveiled.server.RtspMessageHandler.java

License:Apache License

@Override
public void teardownRequestReceived(HttpRequest message, RtspParticipant participant) {
    final String seq = message.headers().get(RtspHeaders.Names.CSEQ);
    final String session = message.headers().get(RtspHeaders.Names.SESSION);
    final String authorization = message.headers().get(RtspHeaders.Names.AUTHORIZATION);

    System.out.println(message);//ww w  .  jav a 2  s . c  o  m

    // check authorization
    if (authorization == null) {
        participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
        return;
    } else {
        if (!isAuthorized(authorization)) {
            participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
            return;
        }
    }

    // extract transport information
    if (seq != null && session != null) {
        int cseq = 0;
        try {
            cseq = Integer.valueOf(seq);
        } catch (NumberFormatException e) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
            return;
        }
        FileStreamHandler handler = this.sessions.get(session);
        if (handler == null) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.SESSION_NOT_FOUND, message.headers()));
            return;
        }

        // stop receiving data and close all resources
        handler.tieUp();

        // send response
        participant.sendMessage(createTeardownResponse(cseq, session));
    }
    participant.sendMessage(createErrorResponse(RtspResponseStatuses.BAD_REQUEST, message.headers()));
}

From source file:sas.systems.unveiled.server.RtspMessageHandler.java

License:Apache License

@Override
public void recordRequestReceived(HttpRequest message, RtspParticipant participant) {
    final String seq = message.headers().get(RtspHeaders.Names.CSEQ);
    final String session = message.headers().get(RtspHeaders.Names.SESSION);
    final String authorization = message.headers().get(RtspHeaders.Names.AUTHORIZATION);
    final String range = message.headers().get(RtspHeaders.Names.RANGE);

    System.out.println(message);/* w ww  .  j av  a2s  .  com*/

    // check authorization
    if (authorization == null) {
        participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
        return;
    } else {
        if (!isAuthorized(authorization)) {
            participant.sendMessage(createErrorResponse(RtspResponseStatuses.UNAUTHORIZED, message.headers()));
            return;
        }
    }

    // extract transport information
    if (seq != null && session != null) {
        int cseq = 0;
        try {
            cseq = Integer.valueOf(seq);
        } catch (NumberFormatException e) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
            return;
        }
        FileStreamHandler handler = this.sessions.get(session);
        if (handler == null) {
            participant.sendMessage(
                    createErrorResponse(RtspResponseStatuses.SESSION_NOT_FOUND, message.headers()));
            return;
        }

        if (range == null || range.startsWith("npt=0.0") || range.startsWith("npt=now")) {
            // start receiving data
            handler.initialize();

            // send response
            participant.sendMessage(createRecordResponse(cseq, session));
        }

        participant.sendMessage(
                createErrorResponse(RtspResponseStatuses.HEADER_FIELD_NOT_VALID, message.headers()));
    }
    participant.sendMessage(createErrorResponse(RtspResponseStatuses.BAD_REQUEST, message.headers()));
}