function recordSendMessage(shim, fn, n, args) {
  const fields = args[0]
  if (!fields) {
    return null
  }
  const isDefault = fields.exchange === ''
  let exchange = 'Default'
  if (!isDefault) {
    exchange = TEMP_RE.test(fields.exchange) ? null : fields.exchange
  }
  const { host, port } = this?.connection?.[amqpConnection] || {}

  return new MessageSpec({
    destinationName: exchange,
    destinationType: shim.EXCHANGE,
    routingKey: fields.routingKey,
    headers: fields.headers,
    parameters: getParameters({ parameters: Object.create(null), fields, host, port })
  })
}
Instruments the sendOrEnqueue and sendMessage methods of the ampqlib channel.

@param {Shim} shim instance of shim