Can't get DTMF tones from sim800L gsm module

Hello everyone,

I am using sim800L gsm module to recieve incoming call and get the DTMF tones from the caller and take an action according to the received number, i am searching for about 3 days and found nothing.

i use the AT+command "AT+DDET=1" to enable the DTMF tones capturer in the module but nothing happend i also tryied to change the modes and the delay times with this command "AT+DDET=1,1000,1,1" and found nothing

the module is responding to all my commands but in the call i didn't recieve any tones, (I RECIEVED ONLY ONE TONE BUT IT WAS WRONGE) and i couldn't do it again

i tested two sim cards from two different companys and tryied to call from multiple phones and found nothing

i don't know if it is a problem from the service provider or a phone problem or module problem

i hope any one can help,
Best regards.

may be this can help?

1 Like

This is just an example that doesn't have my issue, he just wait for the DTMF in the response then proccess the response.

but in my situation the module doesn't recieve the DTMF

You're saying that the SIM800 doesn't generate DTMF (that can be heard on the line that you call) ?

No,I meant SIM800 can't hear the DTMF that is sent from the another side of the call

Do you mean receive instead of send ?

Sorry i meant receive, the module doesn't recieve DTMF tones

The dtmf tones fit in the voice bandwidth. If someone on the other end whistles can you hear that? (I don't get it I guess.)

Yes i connected a microphone with the module and made a call between the module and another mobile phones and i was able to make a conversation with a clear voice

But you cannot hear/receive DTMF tones originating from the device on the other line (whether you call them or they call you) ?

No i cannot hear of receive DTMF tones in both caller and sim800

Is it just me or does the description of the problem keep changing?

  1. If someone calls the SIM800 can you hear DTMFs coming from the caller?
  2. If you call someone with the SIM800 can he hear DTMFs from the SIM800?

What device are you using to SEND the DTMF tones to your SIM800?

Did you try the code with the exact same setup that was in the link I shared previously?

1 Like

Sorry if there is something isn't clear, i am trying to explain.

1- i can't hear the caller from the sim800 because i didn't connect a speaker, but shouldn't the sim800 send the recived DTMFs to the microcontroller?

2- i tryied to send DTMFs from sim800 but i didn't hear anything from the caller cellphone

you did not answer this

Sorry for the delay because of the timezone, i really apreaciate your effort

I tryied an android phone and an old nokia phone, but they were the same.

This is my code, i am communicating with the sim800 via Serial comunication and sending and receiving the commands via Serial monitor:

#include <SoftwareSerial.h>
#include <cstring>

#include <Arduino.h>

#define simTX D3
#define simRX D4


SoftwareSerial sim800l(simRX, simTX);  //RX, TX


void setup() {

  Serial.begin(115200); //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)

  sim800l.begin(115200); //Begin serial communication with Arduino and SIM800L

  Serial.println("Initializing...");
   delay(1000);

}

void loop() {

  updateSerial();

 }

//Start
void updateSerial() {
  delay(500);
  while (Serial.available()) 
  {
    sim800l.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(sim800l.available()) 
  {
    Serial.write(sim800l.read());//Forward what Software Serial received to Serial Port
  }

}
//End

Another update i tried to send DTMF tone from the module during a call using the command

  • "AT+VTS=49"
    to send number 1, but the response is
  • Error

knowing that i have enabled the DTMF tones using the command "AT+DDET=1"
i am saying that to anyone in the feature having the same issue for debug

Here, the SIM800 is legacy, unusable. So, anyway.
From the smssolutions article in my post (No.4) --
ref.
Sending DTMF tones using a GSM modem
To send the actual DTMF code, you have to call this command for every digit sent. To send, for instance "*1234#", you have to send:

AT+VTD=*;+VTD=1;+VTD=2;+VTD=3;+VTD=4;+VTD=#

I tried also the command you mentioned

+VTD=1;

and the response from the module was OK, but on the other side was just nothing

maybe it is unusable as you mentioned, but where is the problem is it from the network or from the module its self?
i really don't know

If it makes/takes calls then it's usable (where you are).
The smssolutions article made it seem like the keypad DTMF is not 'allowed' during a call, just for dialling out (curiously) - but that such was possible via AT/modem access.
I am not an expert.