Code Studio Blog

Just another software enthusiast notes

Archive for the tag “e1750”

Episode 2 : Answering Machine, AT commands and GSM modem interaction

Hi, in this “Episode 2″ of my sequel on create working “answering machine” I show you a subset of usefull E1750 AT command and how chain this commands to prepare the device for programmatically make/receive voice call. I must tanks “Carlos Ruiz Díaz” for its works Caruizdiaz that help me to understand the meaning of some commands.

Note about AT command: for most command you can obtain the current value or the possilbe values of parameter using the follow syntax:

<ATCOMMAND>?        => get current value

<ATCOMMAND>=?     => get possible values of parameter

<ATCOMMAND>=XXX     => set the value of parameter to XXX

Let’s go, these are the commands:

  • AT => check if device is live.
  • AT^U2DIAG  => disable some embedded device components (see here for more informations); we use this command on Episode 1 to disable USB dongle CD interface (setting it to 256 value)
  • AT^CURC => manage visualizzation of messages that modem periodicallly sends to serial interface (disable periodic message with AT^CURC = 0 : we use the serial interface to detect command response and this random message confuse our software)
  • AT^GETPORTMODE => get the list of device ports and their usage.
  • AT+CPIN => use it to enter the PIN of device an unlock it
  • AT+CVHU => manage the ATH hang-up command effect (enable hang-up voice call with ATH commnad using AT+CVHU=0)
  • ATDT => make a call, to make a voice call use this sintax: ATDT123456789; where 123456789 is the phone number; here “;” is essential, it tell to modem to do a voice call instead of data call.
  • ATH => hang-up call, to enable it to hang-up voice call you first must use AT+CVHU=0
  • AT+CRC => manage the RING message sending to serial port when an incoming voice call is received. We need the RING message, then enable it using AT+CRC=1
  • AT+CLIP => manage the additional CALLER information sending to serial port. We need the caller phone number to filter the authorized caller, then enable it using AT+CLIP =1
  • AT^CVOICE => return the information about audio format used by device for voice calls
  • AT^DDSETEX => set the destination port of voice after a voice calls is established. We use this to redirect the audio to other serial port of device (the one named “…3G Application Interface…”) and read with our software. Usa a command AT^DDSETEX=2 after call is established.

Simple call test with AT command

Now we can start a simple example and estabilish a voice call with an other device using only AT command in right sequence. You can use another GSM phone or a fixed phone as destination of your call. I show you also the meaning of dignostic message showed in serial monitor (Teraterm)

  • Connect USB dongle (with working SIM) to PC start Teraterm and enable “Local Echo”.
  • Start Teraterm session to COM port with description as “… PC UI INTERFACE …”. After some time you should see the periodic diagnostic messages of modem
AT command - diagnostic messages

AT command – diagnostic messages

  • We not need diagnostic messages, then disable it using AT^CURC = 0
  • Insert SIM PIN using AT+CPIN=<SIM pin number>
  • Enable hangup command using AT+CVHU=0
  • Enable ring and caller information reporting using AT+CRC=1 and AT+CLIP =1

and now…make a call

  • Run ATDT<your destination phone number>;
  • The destination phone RINGS and you can answer but you CAN’T send and receive voice, you need to WRITE SOME SOFTWARE TO HEAR AND SEND VOICE
  • The follow is the complete stack of Teraterm, you can see that after ATDT the monitor print:
    • ORIGIN:1,0 this means : CALL ID = 1; CALL TYPE = 0 (voice)
    • CONF:1 this means tha CALL with ID=1 is started
    • CONN:1,0 this means the connection of CALL with ID =1 has received response from remote phone
AT Command - make call

AT Command – make call

  • Using AT^DDSETEX=2 after the voice call is established and open another Teraterm on COM port with description “3G APPLICATION ….” you can see the binary streaming of incoming voice (you can see strange symbols that follow the flux of destination phone speaker voice); the follow is an example of received voice binary stream:

AT-command : binary voice stream

  • Hangup the call using ATHcommand, the monitor shows:
    • CEND:1,48,29,16 means that CALL with ID=1, duration 48 seconds, call endded by the client end (code 104), normal call clearing (code 16)

and now…receive a call

  • Use phone to call USB dongle SIM number
  • Serial monitor prints:
    • CRING:VOICE means phone is ringing for incoming VOICE call
    • CLIP:<phone number>,145,,,,0 menas that incoming call come from showed <phone number>, is an international call (code 145: dialling string includes international access code character “+”), CLI valid (code 0)
  • Respond to incoming call with command ATA, the response is CONN1,0
  • Redirect the incoming audio stream to COM port with AT^DDSETEX=2 and try to talk into the phone.
  • Hangup the call using remote phone, the monitor shows:
    • CEND:1,28,104,16 means that CALL with ID=1, duration 28 seconds, the network release the call (code 104), normal call clearing (code 16)
AT command: receive call

AT command: receive call

More information on AT command and meanings can found on this documents:

AT command reference link N1

AT command reference link N2

AT command reference link N3

CONCLUSION

We have now all AT commands to make and receive voice calls. In the next episode I will show you the JAVA software that organize this AT commands and redirect voice stream to PC device to  hear and send your voice over the GSM network.

See you soon, and happy hacking!

Advertisements

Episode 1 : Answering Machine, recycle branded Huawei E1750

Hi, this is the “Episode 1” of my sequel on create working “answering machine” using cheap hardware and hide software knowledges.

What is “answering machine”

Answering machine is a system that can automatically make and receive phone call for you. I prepared a simple sketch; as you can see my primary goal is make call rather than receive it.

Sketch of answering machine system

Sketch of answering machine system

Then, we have:

  • Monitored devices (sensors): this is the device that monitoring (window, doors, ecc) and send an alarm to CPU when something go wrong.
  • CPU: this is the central unit (a very small PC, I will post about how assembling it) that run the software to receive input from SENSOR and controls the GSM MODEM to make calls. The GSM modem can send SMS, but can also do a VOICE calls; thi is useful when you want reach fixed phones (or Granny).
  • GSM MODEM: the device that make and receive VOICE and SMS. My idea is started finding an old GSM 3 branded USB  dongle  that I used to internet connection backup of my cabled DSL. I see it and I think…mmm… would be great to get it working to make voice calls as well as surf the internet. You can see it here:

    Huawei E1750

    Huawei E1750

  • PHONE: this is easy

Starting the E1750 hacking

What you need:

What to do:

  • Insert your USB device
  • Execute “DC-Unlocker”:
    • DC-UnlockerRun auto detect.
    • Insert your credits account credentials on “Server” section.
    • Unlocking device: “Read Unlock code and auto enter to modem” button.
    • Unlocking voice support: “Activate Vocie” button.
    • Get Firmware and Unlock codes from IMEI and note it.
DC-Unlocker

DC-Unlocker

  • Firmware upgrade: run “E175X_Update_11.126.13.00.00” and follow on screen instruction. With firmware you install also a “Mobile Partner” tools on your USB device, then if you have autostart activated on your system, when you re-insert the USB dongle, this version of mobile partner will be installed.  We will replace it with the latest version of this tool on the next step.
  • Mobile Partner upgrade:
    • Disable CD autorun on your system to avoid to execute embedded “Mobile Partner” installation on every insertion (better is to disable the NAND-flashmemory drive CD of device, running AT COMMAND:  AT^U2DIAG=256).
    • Run “Mobile_Partner_21.003.27.00.03”.
    • Execute installed “Mobile Partner”.
    • Check the version.
Version

Version

    • Configure your APN (for IT Vodafone use the follow image settings).
    • Try broadband connection and voice calls.
APN configuration

APN configuration

Try to run first AT COMMAND

The AT COMMAND set consists of a series of short text strings which combine together to produce complete commands for operations such as dialing, hanging up, and changing the parameters of the connection. The E1750 modem can works with common and specific AT COMMAND that we will discover; for now I show you how try your first one “Hello world” with this device.

You need a tool to connect to serail port exposed by USB interface of E1750, in Windows I use Teraterm or Putty (you can download Teraterm form here TeraTerm

  • Start TeraTerm and connect as Serial to COM port with description as “… PC UI INTERFACE …”
Teraterm AT COMMAND

Teraterm AT COMMAND

  • Set “echo on” to see what you write on console Setup->Terminal->Check “Local Echo”
  • Try command “AT”, the modem should respond “OK”, then it’s alive!
Try AT COMMAND

Try AT COMMAND

CONCLUSION

We have “new” E1750 device ready for do its job. In the next episode I will show you the most usefull AT COMMAND for configuring the modem and make and receive  a voice call.

See you soon, and happy hacking!

Post Navigation

%d bloggers like this: