Pages: [1]   Go Down
Author Topic: Use DTMF  (Read 3627 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
Is possible to receive DTMF command trough the new GSM SHIELD R3 with Quectel M10 ?
I can't find documentation about.
Thanks
kind regards
Giorgio
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I can see AT commands that deal with DTMF and tone generation so I guess it's possible using AT commands.

http://arduino.cc/en/uploads/Main/Quectel_M10_AT_commands.pdf
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I simply need to receive a call, and decode DTMF code, can you please explain me what I can do this with AT commands?

thanks
Giorgio
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry I can only point you to the right place, you'll have to do the rest because I have no experience with receiving calls and dealing with tones.
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

GSM library doesn't support DTMF functions of modem. You can use AT commands directly:

- AT+VTS to generate DTMF tone.
- AT+QLDTMF to generate local DTMF tone.
- AT+QTONEDET to detect DTMF tones.
- AT+QTONEP to set DTMF output.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
can please someone explain me how to use this at command directly in a sketch?

thanks
Giorgio
Logged

Madrid (Spain)
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You can input commands directly through serial monitor with this sketch:

Code:
#include <SoftwareSerial.h>
#include <string.h>

char incoming_char = 0;
SoftwareSerial cell(2,3);

void setup()
{
  // Initialize serial ports for communication.
  Serial.begin(9600);

  // Reset
  Serial.println("Start Reset");
  pinMode(7, OUTPUT);
  digitalWrite(7, HIGH);
  delay(12000);
  digitalWrite(7, LOW);
  delay(1000);
  Serial.println("End Reset"); 

  cell.begin(9600);

  Serial.println("Enter your AT commands (with CR & NL)...");
  /*cell.println("AT+CFUN=4");
  delay(500);
  cell.println("AT+CFUN=4");
  delay(500);
  cell.println("AT+CFUN=4");
  delay(500);
  */
}

void loop()
{
  if(cell.available() > 0)
  {
    incoming_char = cell.read();
    if((incoming_char >= ' ') && (incoming_char<='z'))
      Serial.print(incoming_char);
    else
    {
      Serial.print("%");
      Serial.print((int) incoming_char);
      Serial.print("%");
      if(incoming_char == 10)
        Serial.println();
    }
  }

  if(Serial.available() > 0)
  {
    incoming_char = Serial.read();
    cell.print(incoming_char);
  }
}
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 76
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I need to detect a DTMF during a call.. what I need to do please?
Thanks
Giorgio
Logged

Pages: [1]   Go Up
Jump to: