function doWorkInSpanWithInboundContext({ tracer, spanKind, traceIdInHeader, spanIdInHeader, sampledFlagInHeader, spanName }, cb) {
  const headers = {
    traceparent: `00-${traceIdInHeader}-${spanIdInHeader}-0${sampledFlagInHeader}`
  }
  const ctx = propagation.extract(ROOT_CONTEXT, headers)
  const kind = SpanKind[spanKind.toUpperCase()]
  tracer.startActiveSpan(spanName, { kind }, ctx, (span) => {
    if (spanKind === 'Server') {
      const ctx = context.active()
      forceTxName(ctx, spanName)
    }

    cb(span)
  })
}
Starts an active span with traceparent header.

@param {object} params to function
@param {object} params.tracer otel tracer instance
@param {string} params.spanName name of span to force
@param {string} params.spanKind span kind to use to create span
@param {number} params.traceIdInHeader trace id to set on traceparent
@param {number} params.spanIdInHeader span id to set on traceparent
@param {number} params.sampledFlagInHeader sampled flag to set on traceparent
@param {function} cb function to call after span is created, passes newly created span