Electronic – How to initiate a call on a GSM module from DTMF tones

gsmkeypad

Can someone tell me if it is possible to make a call from a GSM module using only the DTMF tones that a keypad puts out? If not, can someone explain how I would make the call using only the keypad, and maybe another bit of equipment?

Best Answer

Cell phones using GSM (and other transmission schemes) do not use DTMF for dialing. There's no dialtone. Instead of digits being sent one at a time like a landline phone, the complete number is entered first, and then it is sent out all at once.

There is always a microcontroller associated with making a call. The device that actually connects to the cell tower is called a GSM modem. The modem is connected to the microcontroller over some serial link, usually UART but it could be SPI or I²C.

The phone number is sent from the microcontroller to the UART using an AT command. AT stands for Attention, and dates way back to the dialup modes in the 1980 made by Hayes and other manufacturers.

Back then, the command ATDT was used to make a data connection over the phone network. Today 30 some years later, the same command is being used to dial voice calls with cellular modems. For example,

ATDT8005551234

would call the number (800) 555-1234

If the far end answers, the GSM modem answers: CONNECT.

So the cell modem does not send the number to the cell tower as DTMF tones. Instead it is part of a data stream. What may be confusing, is after the call is made, you can press digits on your keypad and hear the DTMF tones; this is just provided as a convenience to navigate menu trees and the like.

Enough background. You say you want to turn a rotary dial phone into a cell phone.

Well your first problem is when the user picks up the phone, you are going to want to provide local dial tone. Then you are going to have to count the pulses coming from the dial, and use those value to simulate someone pressing a key on the cell phone. Finally you will have to have some sort of timeout, a couple of seconds maybe, to determine the end of dialing.

It would be possible, but probably pretty difficult, to attach wires to the cell phone's keyboard and operate the switches using miniature relays or the like. The problem is attaching the wires; the pads for the keys are not going to be easy to solder to without disrupting the operation of the keyboard. The cable fro the keyboard to the rest of the phone will be a flexible ribbon cable, and impossible to solder to.

Another way of doing this would be to actually tap into the serial link going to the cellular modem; this will also be very difficult (and likely impossible) depending on how the PCB traces are routed, since you are going to have to break up the TX lead from the microcontroller to the modem, and substitute your own (I'm assuming a UART connection). You can't have two TX leads connected together. The RX lead probably doesn't need to be cut, just tapped into. Then you have to get the documentation for the GSM modem the phone is using, and learn how to control the modem. Unfortunately the commands are not exactly the same from one manufacturer to another. I have seen these documents running 400 pages or more.