code: @Override
      public SipPacket frame(final TransportPacket parent, final Buffer buffer) throws IOException {
  
          if (parent == null) {
              throw new IllegalArgumentException("The parent frame cannot be null");
          }
  
          final SipMessage sip = SipParser.frame(buffer);
          if (sip.isRequest()) {
              return new SipRequestPacketImpl(parent, sip.toRequest());
          }
  
          return new SipResponsePacketImpl(parent, sip.toResponse());
      }
docs: {@inheritDoc}
  
  Very basic way of framing a sip message. It makes a lot of assumption but
  in the framing phase we are, well, just framing.