function maybeAddDtCatHeaders(agent, transaction, outboundHeaders, headers = {}) {
  if (agent.config.distributed_tracing.enabled) {
    if (headers[symbols.disableDT] || headers['x-new-relic-disable-dt']) {
      logger.trace('Distributed tracing disabled by instrumentation.')
      // do not try to delete this header because AWS will fail with signature fail
      // See: https://github.com/newrelic/node-newrelic/issues/1549
    } else {
      transaction.insertDistributedTraceHeaders(outboundHeaders)
    }
  } else if (agent.config.cross_application_tracer.enabled) {
    cat.addCatHeaders(agent.config, transaction, outboundHeaders)
  } else {
    logger.trace('Both DT and CAT are disabled, not adding headers!')
  }
}
Depending on configuration it will either add DT or CAT headers to the
outgoing headers

@param {Agent} agent Node.js agent
@param {Transaction} transaction active transaction
@param {object} outboundHeaders headers that are getting attached to external http call
@param {object} headers headers for http request