code: protected synchronized void do_send(final OtpOutputStream header)
              throws IOException {
          try {
              if (traceLevel >= ctrlThreshold) {
                  try {
                      final OtpErlangObject h = header.getOtpInputStream(5)
                              .read_any();
                      System.out.println("-> " + headerType(h) + " " + h);
                  } catch (final OtpErlangDecodeException e) {
                      System.out.println("   " + "can't decode output buffer: "
                              + e);
                  }
              }
              header.writeToAndFlush(socket.getOutputStream());
          } catch (final IOException e) {
              close();
              throw e;
          }
      }
docs: used by the other message types