Arduino Uno
Dragino Lora Module (SX1278)
https://www.arduinolibraries.info/libraries/tone-library

https://github.com/jgromes/LoRaLib

ard-conn.jpg
Quick and dirty. Better with some components, e.g. capacitors.
Dragino Lora Module DIO2 (DCLK) is connected to pin 6.

#include <Tone.h>
#include <LoRaLib.h>

#define DTMF_PIN1 3
#define DTMF_PIN2 4

SX1278 fsk = new LoRa;

Tone freq1;
Tone freq2;

const int16_t DTMF_freq1[] = {1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477};
const int16_t DTMF_freq2[] = {941, 697, 697, 697, 770, 770, 770, 852, 852, 852};

void setup() {
  Serial.begin(9600);
  freq1.begin(DTMF_PIN1);
  freq2.begin(DTMF_PIN2);

  Serial.print(F("Initializing ... "));
  int16_t state = fsk.beginFSK();
  if (state == ERR_NONE) {
    Serial.println(F("success!"));
  } else {
    Serial.print(F("failed, code "));
    Serial.println(state);
    while (true);
  }

  state = fsk.setFrequency(437.0);
  state = fsk.setBitRate(0.6);
  state = fsk.setFrequencyDeviation(3.0);
  state = fsk.setRxBandwidth(50.0);
  state = fsk.setOutputPower(10.0);
  state = fsk.setCurrentLimit(100);
  state = fsk.setDataShaping(0.0);
  if (state != ERR_NONE) {
    Serial.print(F("Unable to set configuration, code "));
    Serial.println(state);
    while (true);
  }
  fsk.transmitDirect();
}

void loop() {
  int8_t i;
  uint8_t dtmfs[] = {4, 5, 6, 3, 2, 1 ,0};

  for (i = 0; i < sizeof(dtmfs); i++)
  {
    Serial.print(dtmfs[i]);
    Serial.print(' ');
    playDTMF(dtmfs[i], 500);
    delay(1000);
  }
 
  Serial.println();
  delay(3000);
}

void playDTMF(uint8_t number, int32_t duration)
{
  freq1.play(DTMF_freq1[number], duration);
  freq2.play(DTMF_freq2[number], duration);
}