code: @Override
      public Packet getNextPacket() throws IOException {
          final Buffer payload = getPayload();
          if (payload == null || payload.isEmpty()) {
              return null;
          }
  
          if (sipFramer.accept(payload)) {
              return sipFramer.frame(this, payload);
          } else if (rtpFramer.accept(payload)) {
              // RTP is tricky to parse so if we return
              // null then it wasn't an RTP packet afterall
              // so fall through...
              final RtpPacket rtp = frameRtp(payload);
              if (rtp != null) {
                  return rtp;
              }
          }
  
          return new UnknownApplicationPacketImpl(this, payload);
      }
docs: /*
  (non-Javadoc)
  
  @see io.pkts.packet.Packet#getNextPacket()